Всё об искусственном интеллекте за 60 минут - Питер Дж. Бентли
Шрифт:
Интервал:
Закладка:
НЬЮЭЛЛ, САЙМОН И ШОУ
Аллен Ньюэлл, ученый-программист и когнитивный психолог в корпорации RAND и Университете Карнеги – Меллона, работал с Саймоном и Шоу над программой «Логический теоретик», и вместе они стали авторами многих фундаментальных изобретений в области ИИ. Ньюэлл также создал концепцию обработки списков, которая впоследствии превратилась в важный язык ИИ – LISP. А программисту Джону Шоу принадлежит идея связанного списка – способа связывания данных, который с тех пор используется в языках программирования во всем мире. Помимо разработки «Универсального решателя задач» Герберт Саймон участвовал также в подготовке программ ИИ для игры в шахматы и оказал заметное влияние на развитие экономики и психологии. Он даже написал одну из первых работ по эмоциональному познанию, которое он описывал как стимулы и потребности, способные возникать параллельно, прерывая и изменяя поведение программы. Ньюэлл и Саймон создали лабораторию ИИ в Университете Карнеги – Меллона и достигли немалых успехов в области символического ИИ в конце 1950 – 1960-х годах.
В 1959 году появилось несколько других версий «Теоретика», одну из которых назвали «Универсальный решатель задач». Он смог проводить также логические и физические манипуляции и к тому же обладал очень важной особенностью, благодаря которой так хорошо работал: он отделял знания (символы) от метода, используемого для манипулирования этими знаниями. Манипулирование символами производилось с помощью программного обеспечения, названного «решатель», который использовал поиск, чтобы найти правильное решение.
Представьте, что вы робот и вам нужно переместить пирамидку из дисков разного размера с одного стержня на другой, сохраняя их в порядке уменьшения размера. Эта головоломка, называется «Ханойские башни». Вы можете перемещать лишь по одному диску за раз и брать диск только сверху. Нельзя положить диск большего размера поверх меньшего. И есть всего три стержня. Каким образом нужно перекладывать диски? В рамках каждого хода, учитывая текущее состояние стержней, возможны два или больше перемещений. Какой же диск выбрать? На какой стержень его перенести? После того как вы перенесете диск, у вас появится больше доступных ходов, и после очередного принятого решения их количество будет расти. Игра подобна дереву возможностей, каждая ветвь которого ведет вас к решению, если вы сделали верный ход. Но как с таким множеством вариантов выбрать правильный?
Решение – это поиск. ИИ представляет, что, делая выбор за выбором, он движется по дереву возможностей вниз и выносит суждение: в этот момент, если бы я сделал такой ход, я бы стал ближе к решению? Рассмотрев достаточное количество комбинаций вариантов, ему удается найти правильный путь, а значит, теперь можно принять следующее решение – я положу этот диск туда. После этого ИИ находит новое дерево возможностей, на один шаг дальше, и ищет следующий ход.
Поиск в сочетании с символическим представлением знаний стал стандартным подходом в ИИ. Независимо от того, ищет ли ИИ способ, как выиграть партию в шахматы или го, пытается доказать формулу или планирует маршрут, позволяющий роботу избежать препятствия на пути, он, вероятно, ищет среди тысяч, миллионов, а возможно, и триллионов вариантов. Размер пространства поиска быстро стал ключевым ограничивающим фактором в основанном на поиске символическом ИИ, поэтому было разработано много умных алгоритмов для удаления маловероятных областей «деревьев» или деления большой проблемы на более мелкие задачи. В меньшем пространстве и вариантов для поиска тоже меньше.
Все, что дает нам новые знания, дает нам возможность быть более рациональными.
Но размер пространства (его комбинаторика) все же оставался проблемой. По иронии судьбы выяснилось, что программы вроде «Универсального решателя задач» непригодны для решения общих задач – пространство возможностей оказывалось слишком большим, что делало поиск невозможным в обозримом временном промежутке. Хотя эти программы могли справиться с проблемой вроде головоломки «Ханойские башни», они пасовали перед сложностями реального мира. Как оказалось, большего успеха можно достичь, если каждый ИИ сосредоточить на определенной задаче. Создайте набор правил о соответствии медицинских симптомов и различных заболеваний. Тогда компьютер сможет задать ряд вопросов, например «вы чувствуете боль?», «это острая боль или тупая?», «где локализуется боль?» и так далее, которые выявят симптомы, и в результате предложить одну или несколько версий вероятных заболеваний.
Подобные версии ИИ известны как экспертные системы, и на какое-то время они стали чрезвычайно популярны (возможно, даже слишком, как вы поняли по предыдущей главе). Хотя у крупных экспертных систем есть проблемы с техническим обслуживанием, они продолжают использоваться в медицине для диагностики, системах поддержки для автомобильных инженеров, системах обнаружения мошенничества и интерактивных сценариях для продавцов.
Многие идеи символического ИИ связаны с тем, как лучше всего представлять и использовать информацию. Правила и структурированные фреймы (формы представления знаний) слились с объектно ориентированными языками программирования, и сегодня существует множество способов хранения знаний: например, вкладывание, при котором родительский объект «дерево» содержит дочерние элементы «дуб» и «береза», или передача сообщений, при которой объект «продавец» может отправить аргумент «скидка 10 %», чтобы вызвать действие с объектом «цена». Были созданы языки для представления всех знаний, иногда называемые онтологическими, со своими сложными структурами и правилами. Все они основаны на логике и могут быть объединены с автоматизированными системами формирования рассуждений, для того чтобы логически выводить новые факты, которые затем могут быть добавлены к их знаниям, или проверять соответствие существующих фактов.
Например, ИИ узнал, что «велосипед» – это вид «транспорта с педальным приводом», имеющий «два колеса». Если «тандем» – это вид «транспорта с педальным приводом», который тоже имеет «два колеса», то ИИ легко может вывести новый факт: «тандем – это разновидность велосипеда». Но другой вид «транспорта с педальным приводом», имеющий «ноль колес», не соответствует этому правилу, поэтому ИИ придет к выводу, что «катамаран» не является «велосипедом».
С развитием интернета компилировать обширный набор фактов становится все проще и проще. И одно из основных направлений при разработке общего искусственного интеллекта – это объединение достаточного объема знаний, чтобы ИИ мог начать помогать нам во многих областях. Cyc – один из таких проектов, который в течение нескольких десятилетий собирал факты и взаимосвязи, формируя гигантскую базу.
Уильям Тунсталл-Педо развил эту идею. Он создал True Knowledge («Подлинное знание») – программу, сформировавшую обширную сеть знаний, предоставляемых пользователями интернета. Она насчитывает более 300 миллионов фактов. В 2010 году Тунсталл-Педо решил, поскольку ИИ уже знает так много, задать ему вопрос, на который не сможет ответить ни один человек: «Нам пришло в голову, что, имея дело с более чем 300 миллионами фактов, большой процент которых связывает события, людей и места с определенными точками во времени, мы сможем вычислить объективный ответ на вопрос “Какой день в истории был самым скучным?”».