Фреймы для представления знаний - Марвин Минский
Шрифт:
Интервал:
Закладка:
Фрейм начинает процесс согласования с проверки любых сведений, которыми он уже располагает и которые могли быть получены в процессе его активации или проверки предыдущих гипотез. После этого, если разрабатываемая гипотеза еще не принята, но и не отклонена, фрейм начинает задавать вопросы, чтобы получить больше сведений о текущей ситуации. Характер этих вопросов будет меняться в зависимости от проблемной среды: программа, работающая в области медицины, может потребовать проведения некоторых лабораторных исследований, визуальная программа — дать указание более внимательно изучить некоторую область пространства. Иногда один вопрос может положить начало целому процессу распознавания: «Это может быть коровой — посмотреть, есть ли у нее вымя».
Последовательность, в которой задаются вопросы, определяется дополнительной информацией, хранящейся во фрейме. Эта информация указывает, какие основные черты следует выявлять в рамках данной проверки, каким образом на нее может повлиять уже имеющаяся информация и во что обойдется ответ на каждый вопрос. При выявлении каждой новой черты ее описание добавляется к пакету информации вместе с указанием на то, откуда получена эта информация и насколько она надежна. Этот пакет может быть использован и при переходе к другой гипотезе. Когда встречается незатребованная информация, она проверяется и пускается в дело.
Конечно, на практике невозможно добиться для такой системы идеального согласования. Для каждого возможного вида нарушений в дополнительных данных фрейма содержатся указания на то, следует ли это нарушение рассматривать как тривиальное, серьезное или фатальное (т.е. отклоняющее возможность использования этого фрейма). Такие индивидуальные черты, как размер обуви, пропорции тела или давление крови будут иметь перечни с указанием диапазона своего нормального изменения, а также данные других возможных значений с указанием на возможные последствия. Иногда какая-то черта может не способствовать ни принятию, ни опровержению выдвинутой гипотезы, но сама она может быть объяснена с помощью этой гипотезы; это также должно быть отмечено во фрейме. Если анализируемая ситуация содержит нечто необычное, не предусмотренное текущим фреймом (например, оленьи рога), то система будет рассматривать этот факт как серьезное нарушение, а сами невписывающиеся в обычную схему данные будут оцениваться в соответствии с информацией того пакета, который связан с этими данными, ибо ясно, что фрейм гипотезы не может содержать сведений о том, что делать со всякими не вписывающимися в него деталями.
Изредка какая-либо деталь будет получать для себя сильное подтверждение: если подобный факт удается заметить, то не нужно будет волноваться относительно правильности выбранного пути. Однако подобное случается крайне редко, поэтому обычная процедура состоит в том, чтобы выявленные детали накапливать до тех пор, пока либо не будет достигнут некоторый уровень приемлемости и гипотеза сможет перейти в разряд принятых, либо пока какое-то явное нарушение или совокупность более мелких нарушений не укажут на необходимость поиска другой гипотезы. (В настоящий момент я представляю себе уровень приемлемости в виде простой «копилки»: каждая согласованная черта увеличивает счет в этой «копилке», а каждая не согласованная, но тривиальная — его уменьшает. Возможно, что здесь может понадобиться и более сложная схема, но пока я не вижу для этого причин). В зависимости от ситуации уровень приемлемости может колебаться в значительных пределах: лишь один беглый взгляд может убедить меня в том, что стол по-прежнему находится на своем месте, тогда как счет в тысячу долларов заслуживает тщательной проверки, прежде чем его следует оплатить.
Иногда может случиться так, что, за исключением двух-трех серьезных нарушений, вся собранная нами модель довольно хорошо согласуется с реальной ситуацией. В таком случае система должна попытаться объяснить имеющиеся разногласия. Возможно, корова красная потому, что ее кто-то вымазал краской. Возможно, у больного не наблюдается высокое давление, какое обычно бывает при подобных заболеваниях, поскольку он принимает соответствующие лекарства. Если какое-то несоответствие может, в конце концов, получить удовлетворительное объяснение, то данную гипотезу следует принять. Иногда две модели будут настолько близки друг к другу, что их можно различить только с помощью особого теста или по ряду малозначительных деталей. Наиболее простым выходом из положения будет включение в оба родственных фрейма сведений о подобии, а также инструкций для правильного выбора нужного фрейма. В медицине подобное тестирование именуется дифференциальным диагнозом.
Отметим, что такое использование фреймов придает системе значительную гибкость, особо ценную в путаных и непредвиденных ситуациях. Формально корова может быть представлена как крупное четвероногое, но наша система не встретит особых затруднений, если у коровы не будет одной ноги, хотя во всем остальном эта корова достаточно хорошо вписывается в свой образ. (Заметим, что отсутствие ноги объяснить легко, а вот присутствие лишней — намного труднее.) Если такой системе предъявить нечто, не вписывающееся ни в одно из известных ей понятий, то она может, по крайней мере, указать, к чему близко это нечто, а также его основные отличия от понятия, предложенного в качестве первого приближения. Визуальная система, организованная в соответствии с этими принципами, может легко сориентироваться при встрече с такими высказываниями, как, например, «похожий на человека, только ростом 25 метров и зеленый». При определенных обстоятельствах такие описания могут образовывать ядра новых фреймов распознавания, представляющих собой законные, хотя и не имеющие наименования, концепты.
Важной чертой фреймов распознавания (и тех категорий, которые они представляют) является то, что они могут образовывать иерархические структуры. Благодаря этому система может вырабатывать гипотезы на многих уровнях, от весьма общих до очень конкретных, например: животное некоторого вида, четвероногое средних размеров, собака, колли, кличка Лесси. Каждому уровню соответствует свой фрейм распознавания, однако фреймы, с помощью которых порождаются конкретные гипотезы, включают в себя пакеты фреймов более высоких уровней; так, например, если в системе активирован фрейм «собака», то ей доступна информация фрейма «животное». Конечно, конкретный фрейм может содержать такие сведения, которые будут исключать из рассмотрения некоторые более общие данные: фрейм «утконос» будет включать в себя информацию фрейма «млекопитающее», но должен исключить сведения о живородящем варианте появления своего потомства. Часто общий фрейм будет использовать в качестве образца одно из своих конкретных проявлений; фрейм «млекопитающее» может скорее призвать на помощь фреймы «собака» или «корова», а не пытаться обеспечить соответствие входной фразы некоторой схематической модели идеального, но неконкретного животного. В подобном случае единственное различие между использованием понятий «млекопитающее» и «корова» будет заключаться в том, что во втором варианте переход к какому-либо иному конкретному представлению будет более сложным; в целом же проверке будут подвергаться одни и те же признаки.
Отметим, что подобная организация системы допускает существование большего числа различных иерархических сетей, которые могут перекрывать друг друга в самых различных (и интересных!) сочетаниях; так, например, с точки зрения зоосистематики дракон «комодо» должен быть пресмыкающимся, однако у него имеется четыре ноги и по своим повадкам он ближе к повадкам собаки, а не змеи. Чтобы решить, как представлять эти запутанные ситуации и что с ними делать, требуются дальнейшие изыскания. Некоторые фреймы следует считать фреймами-«паразитами», поскольку единственное их назначение состоит в том, чтобы прикрепиться к другим фреймам и тем самым изменить эффект от их применения. (Может быть, здесь более подходит термин «вирусный фрейм».) К фрейму «корова» может прикрепиться фрейм «статуя» и тем самым исключить такую его черту, как способность двигаться, изменить вид материала (мясо, скажем, на гипс), а формы оставить нетронутыми. Можно к животному добавить понятие «мифический» и сделать более правдоподобными его возможности самостоятельно летать, перевоплощаться, рассказывать сказки на латинском языке и менее правдоподобным его физическое существование. Тот же механизм может использоваться для более практических целей, например, чтобы учесть возможные осложнения для различных видов болезней. И еще одно замечание: нет ничего необычного в том, если к одному фрейму прикрепятся несколько фреймов-паразитов, взаимно не исключающих друг друга; например, вполне может существовать изваяние мифического животного.