Термин фрейм (кадр, группа данных) сейчас в моде среди специалистов по искусственному интеллекту; его можно определить, как численное представление данного контекста. Этот термин, как и многие идеи о фреймах, обязан своим происхождением Марвину Минскому, хотя само это понятие витало в воздухе уже несколько лет. Можно сказать, что мысленные представления о ситуациях включают фреймы, вложенные один в другой. Каждый из аспектов ситуации обладает собственным фреймом. Такие вложенные фреймы напоминают мне множество комодов. Выбирая фрейм, вы выбираете определенный комод. В него может быть вставлено несколько ящиков — «подфреймов». При этом каждый из этих ящиков, в свою очередь, является комодом. Как можно вставить целый комод в отверстие для одного-единственного ящика? Проще простого — надо уменьшить и деформировать второй комод. В конце концов, он ведь не физический предмет, а воображаемый! Во внешнем комоде может быть несколько разных гнезд, куда должны быть вставлены ящики; затем мы начинаем вставлять ящики в гнезда внутренних комодов (или подфреймов). Этот процесс может продолжаться рекурсивно.
Живая сюрреалистическая картина того, как комод сплющивают и сгибают, чтобы запихать его в гнездо любой величины, очень важна, так как она намекает на то, что наши понятия сплющиваются и сгибаются в зависимости от контекстов, в которые мы их запихиваем. Что происходит с вашим представлением о «человеке», когда вы думаете о футболистах? Безусловно, это искаженное представление, навязанное вам общим контекстом. Вы засунули фрейм «человек» в гнездо фрейма «футбольный матч». Теория представления знаний в форме фреймов опирается на идею, что мир состоит из почти закрытых подсистем, каждая из которых может служить контекстом для других, при этом они не слишком прерываются и почти не причиняют перебоев в процессе.
Одна из основных идей, касающихся фреймов, состоит в том, что каждый фрейм ожидает некоего определенного содержания. Этому образу соответствуют комоды, в каждом гнезде которых есть по встроенному, но непрочно закрепленному ящику под названием значение по умолчанию. Если я попрошу вас представить себе берег реки, у вас в голове появится некая картина; однако большинство ее черт могут быть изменены, если я добавлю какие-либо детали: «во время засухи», или «в Бразилии», или «без пляжа». Благодаря значениям по умолчанию рекурсивный процесс заполнения гнезд может быть завершен. В самом деле, вы можете сказать: «Я заполню гнезда на трех уровнях, а дальше буду пользоваться значениями по умолчанию.» Взятый вместе с этими значениями фрейм содержит информацию о собственных границах и эвристику для переключения на другие фреймы в том случае, если эти границы нарушаются.
Многоуровневая структура фрейма дает возможность увидеть его крупным планом и рассмотреть все его детали с какого угодно приближения. Для этого надо только сосредоточить внимание на соответствующем фрейме, затем на одном из его подфреймов и так далее, пока вы не получите всех требуемых деталей. Это похоже на дорожный атлас России, в котором кроме карты страны на первой странице есть карты областей, областных центров и даже некоторых небольших городов, если вам понадобится больше сведений. Можно вообразить себе атлас с каким угодно количеством деталей, включая кварталы, дома, комнаты и так далее — словно вы смотрите в телескоп с линзами разной мощи, каждая из которых имеет свое предназначение. Важно то, что можно свободно выбирать между различными масштабами; детали часто бывают неважны и только мешают.
Поскольку сколь угодно разные фреймы можно засунуть в гнезда других фреймов, возможны конфликты и «столкновения». Схема аккуратно организованного всеобщего множества слоев «постоянных», «параметров» и «переменных» — всего лишь упрощение. На самом деле, у каждого фрейма есть собственная иерархия изменяемости. Именно поэтому анализ нашего восприятия такой сложной игры как футбол, со множеством подфреймов, подподфреймов и так далее, представляется весьма запутанной операцией. Каким образом все эти фреймы взаимодействуют между собой? Как разрешаются конфликты, когда один фрейм утверждает: «Это постоянная», а другой в то же время говорит: «Это переменная»? Я не могу дать ответа на эти глубокие и сложные вопросы теории фреймов. Пока еще не достигнуто соглашение по поводу того, что в действительности представляют из себя фреймы и как можно использовать их в программах ИИ. Некоторые из моих предположений на этот счет вы найдете в следующем разделе, в котором говорится о некоторых задачах в области узнавания зрительных структур — я называю их «задачами Бонгарда».
Задачи Бонгарда (ЗБ) — это проблемы, подобные тем, которые предложил в своей книге «Проблема узнавания» русский ученый Михаил Моисеевич Бонгард. На рис. 119 показана типичная ЗБ — #51 из ста задач, приведенных в книге.
Рис. 119. Задача Бонгарда #51. (Из книги М. Бонгарда «Проблема узнавания».)
Эти интереснейшие задачи могут быть предложены людям, компьютерам или даже представителям внеземных цивилизаций. Каждая задача состоит из двенадцати фигур, взятых в рамку (они так и называются рамками): шесть левых рамок составляют класс I, шесть правых — класс II. Рамки можно пронумеровать следующим образом:
I-А I-Б II-А II-Б
I-В I-Г II-В II-Г
I-Д I-Е II-Д II-Е
Задача состоит в том, чтобы обнаружить, чем рамки класса I отличаются от рамок класса II.
В программе для решения задач Бонгарда было бы несколько ступеней, на которых первичные данные постепенно превращались бы в описания. Ранние ступени относительно негибки; гибкость последующих ступеней увеличивается. Последние ступени обладают свойством, которое я называю «экспериментальностью». Это означает, что на этой стадии представление о картине всегда пробное. Описание высшего уровня может быть переделано в любой момент при помощи приемов, используемых на последних ступенях. Идеи, представленные ниже, также экспериментальны. Сначала я попытаюсь дать общие идеи, не останавливаясь на трудностях; затем постараюсь объяснить все тонкости, трюки и так далее. Таким образом, ваше понимание того, как это все работает, может изменяться по мере того, как вы читаете дальше. Это будет как раз в духе нашей дискуссии!
Представьте себе, что дана некая задача Бонгарда. Прежде всего, телекамера считывает первичные данные. Затем эти данные проходят предварительную обработку. Это значит, что в них выделяются наиболее важные черты. Названия этих черт составляют «мини-словарь» задачи; они выбираются из общего «словаря выдающихся черт». Вот некоторые типичные термины из этого словаря:
отрезок, поворот, горизонтальный, вертикальный, черный, белый, маленький, большой, остроконечный, круглый…
На второй стадии предварительной обработки используются некоторые знания об элементарных фигурах; если таковые обнаруживаются, их названия также включаются в мини-словарь. Здесь могут быть выбраны такие термины:
треугольник, круг, квадрат, углубление, выступ, прямой угол, вершина, точка пересечения, стрелка…
Приблизительно в этот момент в человеческом интеллекте встречаются сознательное и бессознательное. Что же происходит потом?
После того, как ситуация до некоторой степени «понята» в знакомых нам терминах, программа «оглядывается кругом» и предлагает пробное описание одной или нескольких рамок. Эти описания весьма просты. Например: