Copycat не была ни символической программой на основе правил, ни нейронной сетью, но включала аспекты символического и субсимволического ИИ. Она решала задачи на аналогию с помощью постоянного взаимодействия между своими перцептивными процессами (выявляющими признаки в конкретной задаче на аналогию с алфавитными последовательностями) и первоначальными заложенными в нее понятиями (например, “буква”, “группа букв”, “следующая буква”, “предыдущая буква”, “такой же” и “противоположный”). Понятия программы были структурированы таким образом, чтобы имитировать ментальные модели, описанные в предыдущей главе. В частности, они были основаны на идее Хофштадтера об “активных символах” человеческого познания
[353]. Я не стану описывать сложную архитектуру Copycat (но дам некоторые ссылки в примечаниях
[354]). В конце концов, хотя Copycat умела решать многие задачи на аналогию с алфавитными последовательностями (включая приведенные выше примеры и множество их вариаций), она лишь поверхностно изучила свою огромную сферу. Вот, например, две задачи, с которыми она не справлялась:
Задача 4. Если azbzczd меняется на abcd, на что меняется pxqxrxsxt?
Задача 5. Если abc меняется на abd, на что меняется ace?
Для решения обеих задач необходимо формировать новые концепции на ходу, а Copycat этого не умела. В задаче 4 все z и x играют одинаковую роль “лишних букв, которые необходимо удалить, чтобы увидеть алфавитную последовательность”, и это дает ответ pqrst. В задаче 5 последовательность ace подобна последовательности abc, но образована буквами, которые следуют друг за другом не по порядку, а через одну, а потому ответом будет acg. Мне не составило бы труда наделить Copycat способностью считать количество букв, скажем, между a и c и c и e, но мне не хотелось встраивать в программу специфические способности для работы с алфавитными последовательностями. Copycat должна была стать экспериментальной площадкой для проверки общих идей о построении аналогий, а не полноценным “построителем аналогий для алфавитных последовательностей”.
Метапознание в мире алфавитных последовательностей
Важный аспект человеческого разума, которому сегодня уделяют не слишком много внимания в сообществе ИИ, – способность человека воспринимать и анализировать собственное мышление. В психологии ее называют способностью к метапознанию. Случалось ли вам, тщетно пытаясь решить задачу, вдруг понять, что вы повторяете одни и те же неэффективные мыслительные процессы? Со мной такое случается постоянно, но затем, заметив это, я порой нахожу способ разорвать замкнутый круг. Copycat, как и остальные программы ИИ, описанные на страницах этой книги, не имела механизмов самовосприятия, и это ограничивало ее работу. Иногда программа буксовала, снова и снова пытаясь решить задачу неверным способом, и не могла понять, что уже проходила по этому пути, но ни к чему не пришла.
Будучи аспирантом в группе Хофштадтера, Джеймс Маршалл поставил перед собой задачу научить Copycat анализировать собственное “мышление”. Он создал программу Metacat, которая не только решала задачи на аналогию с алфавитными последовательностями, как Copycat, но и пыталась выявлять закономерности в собственных действиях. Программа сопровождала свою работу комментариями, сообщая, какие концепции она узнает в ходе решения задачи
[355]. Как и Copycat, Metacat показала любопытные результаты, но сумела развить лишь примитивные способности к самовосприятию, не сравнимые с человеческими.
Распознавание визуальных ситуаций
В настоящее время я занимаюсь разработкой системы ИИ, которая использует аналогии для гибкого распознавания визуальных ситуаций – визуальных сюжетов, включающих несколько объектов и их взаимодействие. Например, каждый снимок на рис. 48 представляет собой пример визуальной ситуации “прогулка с собакой”. Людям легко это понять, но системам ИИ очень тяжело узнавать примеры визуальных ситуаций, даже если ситуации совсем просты. Распознавать ситуации гораздо сложнее, чем отдельные объекты.
Мы с коллегами разрабатываем программу Situate, которая комбинирует способности глубоких нейронных сетей к распознаванию объектов с активно-символьной архитектурой Copycat, чтобы распознавать примеры конкретных ситуаций путем построения аналогий. Мы хотели бы, чтобы наша программа распознавала не только очевидные примеры вроде тех, что приведены на рис. 48, но и нестандартные примеры, которые требуют концептуальных переходов. В типовой ситуации “прогулка с собакой” задействованы человек (который гуляет с собакой), собака и поводок. Человек держит поводок, поводок прикреплен к собаке, и собака и человек при этом идут. Верно? Да, именно это мы видим в примерах на рис. 48. Но люди, понимающие концепцию прогулки с собакой, также узнают ее на всех изображениях с рис. 49, хотя и отметят, что каждое из них лишь “с натяжкой” можно считать вариацией типовой ситуации. Программа Situate, разработка которой только началась, должна стать платформой для проверки гипотез о построении аналогий человеком и продемонстрировать, что идеи, лежащие в основе Copycat, могут успешно работать за пределами микромира задач на аналогию с алфавитными последовательностями.
Рис. 48. Четыре очевидных примера ситуации “прогулка с собакой”
Рис. 49. Четыре нестандартных примера ситуации “прогулка с собакой”
Copycat, Metacat и Situate – лишь три из нескольких программ для построения аналогий, основанных на активно-символьной архитектуре Хофштадтера
[356]. Кроме того, активно-символьная архитектура не единственный метод, который используется в ИИ-сообществе для создания программ, умеющих строить аналогии. И все же, хотя построение аналогий играет фундаментальную роль на всех уровнях человеческого познания, пока ни одна программа ИИ не демонстрирует в этой сфере способностей, сравнимых с человеческими.