узнавание лиц (неизменность лиц при возрастных изменениях, различных выражениях, разном освещении, разном расстоянии, под другим углом зрения и так далее);
узнавание тропинок в лесах и в горах — почему-то это всегда казалось мне одним из наиболее удивительных случаев узнавания схем. Однако это умеют делать и животные…
прочтение текста, написанного сотней, если не тысячей различных шрифтов.
Одним из способов решения проблемы узнавания структур и других сложных проблем ИИ является так называемый «актерский» формализм Карла Хьюитта, подобный языку «Smalltalk», разработанному Аланом Кэйем и другими. Он заключается в том, что программа пишется в виде набора взаимодействующих актеров, которые могут обмениваться сложными сообщениями. Это чем-то напоминает гетерархическое собрание процедур, вызывающих друг друга. Основное различие состоит в том, что процедуры передают друг другу небольшое количество информации, в то время как сообщения, которыми обмениваются актеры, могут быть сколь угодно длинными и сложными.
Благодаря своему умения передавать сообщения, актеры становятся в каком-то смысле автономными агентами — их можно даже сравнить с самими компьютерами, а сообщения — с программами. Каждый актер может интерпретировать данное сообщение по-своему; таким образом, значение сообщения будет зависеть от актера, его получившего. Это объясняется тем, что в актерах есть часть программы, которая интерпретирует сообщения; поэтому интерпретаторов может быть столько же, сколько и актеров. Разумеется, интерпретаторы многих актеров могут оказаться идентичными; в действительности, это может быть большим преимуществом (так же важно, чтобы в клетке было множество плавающих в цитоплазме идентичных рибосом, каждая из которых будет интерпретировать сообщение — в данном случае, мессенджер ДНА — одинаковым образом).
Интересно подумать, как можно соединить понятие фреймов с понятием актеров. Давайте назовем фрейм, способный создавать и интерпретировать сложные сообщения, символом:
фрейм + актер = символ
Мы будем говорить здесь о том, как можно представить те неуловимые активные символы, которые обсуждались в главах XI и XII; поэтому в данной главе «символ» будет иметь то же значение. Не расстраивайтесь, если вы не сразу поймете, каким образом может произойти этот синтез. Это, действительно, неясно, — но это одно из самых многообещающих направлений исследований в ИИ. Более того, несомненно, что даже наилучшие синтетические представления будут менее мощными, чем символы человеческого мозга. В этом смысле, пожалуй, еще рановато называть объединения фреймов с актерами «символами», но это — оптимистический взгляд на вещи.
Давайте вернемся к темам, связанным с передачей сообщений. Должно ли данное сообщение быть направлено на определенный символ, или же оно должно быть брошено наугад, так же как мРНК брошен наугад в цитоплазму, где он должен найти свою рибосому? Если у сообщений есть предназначение, то у каждого символа должен быть адрес, по которому будут посланы соответствующие сообщения. С другой стороны, может существовать некая центральная «станция» для получения сообщений, где каждое сообщение будут храниться, как письмо до востребования, пока оно не понадобится какому-либо символу. Это — альтернатива доставке писем адресатам. Возможно, наилучшее решение — сосуществование обоих типов сообщений и возможность разных степеней срочности: сверхсрочное, срочное, обычное и так далее. Система почтовой связи — богатый источник идей для языков, передающих сообщения; она включает такие возможности как письмо с оплаченным ответом (сообщения, чьи отправители хотят срочно получить ответ), бандероли (очень длинные послания, которые могут быть посланы несрочным путем) и тому подобное. Когда вы исчерпаете запас почтовых идей, вашему воображению может дать толчок система телефонной связи.
Другой источник идей для передачи сообщений — и обработки информации вообще — это, разумеется, клетка. Некоторые объекты клетки можно сравнить с актерами — в частности, эту роль выполняют энзимы. Активный центр каждого энзима работает как фильтр, который узнает только определенные типы субстратов (сообщений). Можно сказать, что у энзима есть «адрес». Благодаря своей третичной структуре, энзим «запрограммирован» так, чтобы провести некоторые операции с этим «сообщением» и затем снова выпустить его «в мир». Таким образом, путем передачи сообщения химическим путем от энзима к энзиму можно сделать очень многое. Мы уже описали сложные способы обратной связи в клетке (путем торможения или подавления). Эти механизмы показывают, что сложный контроль процессов может возникнуть из клеточного типа передачи сообщений.
Один из самых удивительных фактов, касающихся энзимов. — это то, что они бездействуют в ожидании нужного субстрата. Когда субстрат появляется, энзим внезапно начинает действовать, наподобие венериной мухоловки — насекомоядного растения. Подобная программа-триггер была использована в ИИ, где она получила название демона. Здесь важна идея наличия многих различных «семейств» подпрограмм, ожидающих активации. В клетке все сложные молекулы и органоиды строятся постепенно, шаг за шагом. Некоторые из этих новых структур сами являются энзимами и участвуют в построении новых энзимов — которые, в свою очередь, начинают строить другие типы энзимов и так далее. Подобные рекурсивные каскады энзимов очень сильно влияют на то, что делается в клетке. Было бы хорошо перенести подобный простой, ступенчатый процесс в ИИ — в построение полезных подпрограмм. Например, повторение — это способ вмонтировать некие структуры в аппаратуру нашего мозга, так что часто повторяемое поведение становится закодировано на подсознательном уровне. Было бы полезно найти аналогичный способ создания эффективных кусочков кода, которые могли бы производить такую же последовательность операций, как и нечто, выученное на высшем уровне «сознания». Каскады энзимов могут служить моделью того, как это может быть сделано. (Программа под названием «Hacker», написанная Геральдом Суссманом, создает и отлаживает небольшие подпрограммы способом, не слишком отличным от каскада энзимов.) Детектор сходства в программе, решающей задачи Бонгарда, мог бы сыграть роль такой энзимообразной подпрограммы. Подобно энзиму, этот детектор бродит вокруг, иногда натыкаясь на небольшие фрагменты данных. Когда пара его «активных центров» заполняется схожими структурами, детектор посылает сообщение другим частям программы (актерам). Пока программы соединены последовательно, иметь несколько копий детектора сходства не имеет смысла; однако в параллельном компьютере регулировка количества копий подпрограммы была бы способом регулировки также и предполагаемого времени до конца программы. Таким же образом, регулировка количества копий данного энзима в клетке регулирует скорость данного процесса. Создание новых детекторов было бы сравнимо с просачиванием обнаружения структур на низшие уровни нашего разума.
Две интересные дополнительные идеи, касающиеся взаимодействия символов, — это расщепление и синтез. Расщепление — это постепенное отделение нового символа от символа-родителя (то есть символа, послужившего эталоном для создания нового символа). Синтез — это то, что происходит, когда два ранее не связанных символа участвуют в «совместной активации», передавая сообщения между собой так интенсивно, что они становятся слитными; после чего эта комбинация начинает действовать как один символ. Расщепление — процесс более или менее неизбежный. Как только новый символ произведен на основе старого, он становится автономным, и его взаимодействие с окружающим миром отражается в его собственной внутренней структуре. Таким образом, то, что началось как совершенная копия, вскоре становится неточным, и все меньше и меньше походит на первоначальный символ. Синтез — вещь более тонкая. Когда два понятия сливаются в одно? Можно ли указать точный момент, когда это происходит? Понятие совместной активации открывает Пандорин ящик вопросов. Например, слышим ли мы отдельно слова «пар» и «ход», когда говорим о пароходе? Когда немец думает о перчатках («Handschuhe»), слышит ли он слова «Hand» и «Schuhe» («рука» и «обувь»)? А как насчет китайцев, чье слово «донг-хи» («восток-запад») означает «вещь»? Эта проблема переходит в область политики, когда некоторые люди высказывают мысль, что слова типа «медсестра» выражают недостаток уважения к женщинам. То, в какой степени в целом звучат отдельные части, варьируется, скорее всего, в зависимости от человека и от обстоятельств.