Фрейм (искусственный интеллект) - Frame (artificial intelligence)

Кадры являются искусственный интеллект структура данных используется для разделения знание на подструктуры, представляя "стереотипный ситуаций ". Они были предложены Марвин Мински в его статье 1974 г. «Структура представления знаний». Фреймы - это основная структура данных, используемая в искусственном интеллекте. язык фреймов; они хранятся как онтологии из наборы.

Рамки также являются важной частью представление знаний и рассуждения схемы. Первоначально они были получены из семантических сетей и поэтому являются частью структурных представлений знаний. Согласно книге Рассела и Норвига «Искусственный интеллект: современный подход», структурные представления собирают «[...] факты о конкретных объектах и ​​типах событий и упорядочивают типы в большую таксономическую иерархию, аналогичную биологической систематике».

Структура кадра

Фрейм содержит информацию о том, как использовать фрейм, чего ожидать дальше и что делать, если эти ожидания не оправдываются. Некоторая информация в кадре обычно не изменяется, тогда как другая информация, хранящаяся в «терминалах», обычно изменяется. Терминалы можно рассматривать как переменные. Кадры верхнего уровня несут информацию, которая всегда относится к рассматриваемой проблеме, однако терминалы не обязательно должны соответствовать действительности. Их ценность может измениться с появлением новой информации. Разные кадры могут использовать одни и те же терминалы.

Каждая часть информации о конкретном кадре хранится в слоте. Информация может содержать:

  • Факты или данные
    • Ценности (называемые фасетами)
  • Процедуры (также называемые процедурными приложениями)
    • ЕСЛИ НЕОБХОДИМО: отложенная оценка
    • IF-ADDED: обновляет связанную информацию
  • Значения по умолчанию
    • Для данных
    • Для процедур
  • Другие кадры или подкадры

Особенности и преимущества

Терминалы кадра уже заполнены значениями по умолчанию, которые основаны на том, как работает человеческий разум. Например, когда человеку говорят «мальчик бьет по мячу», большинство людей визуализируют определенный мяч (например, знакомый футбольный мяч ), а не воображать какой-то абстрактный шар без атрибутов.

Одна из сильных сторон представлений знаний на основе фреймов состоит в том, что, в отличие от семантических сетей, они допускают исключения в определенных случаях. Это дает фреймам определенную гибкость, позволяющую более точно отражать представления явлений реального мира.

Нравиться семантические сети, кадры можно запрашивать с помощью активации распространения. Следуя правилам наследования, любое значение, присвоенное слоту, которое наследуется подкадрами, будет обновлено (IF-ADDED) до соответствующих слотов в подкадрах, и любые новые экземпляры конкретного кадра будут иметь это новое значение по умолчанию.

Поскольку фреймы основаны на структурах, можно сгенерировать семантическую сеть с учетом набора фреймов, даже если в нем отсутствуют явные дуги. Ссылка на Ноам Хомский и его порождающая грамматика 1950 г. вообще отсутствует в Минский публикации. Однако семантическая сила исходит от этой концепции.

Упрощенные структуры фреймов позволяют легко проводить аналогичные рассуждения, что очень ценно для любого интеллектуального агента. Процедурные присоединения, обеспечиваемые фреймами, также обеспечивают определенную степень гибкости, которая обеспечивает более реалистичное представление и дает естественные возможности для программирования приложений.

Пример

Здесь стоит обратить внимание на простые аналогичные рассуждения (сравнение), которые можно провести между мальчиком и обезьяной, просто имея слоты с одинаковыми названиями.

Также обратите внимание, что Alex, экземпляр мальчика, наследует значения по умолчанию, такие как «Sex», от более общего родительского объекта Boy, но мальчик также может иметь разные значения экземпляра в виде исключений, таких как количество ног.

СлотЦенитьТип
АЛЕКС_(Этот кадр)
ИМЯАлекс(ключевое значение)
ЭТОМальчик(родительский фрейм)
СЕКСМужской(значение наследования)
ВОЗРАСТЕСЛИ НЕОБХОДИМО: вычесть (текущий, ДАТА РОЖДЕНИЯ);(процессуальное приложение)
ДОМА100 Main St.(значение экземпляра)
ДАТА РОЖДЕНИЯ8/4/2000(значение экземпляра)
ЛЮБИМОЕ БЛЮДОСпагетти(значение экземпляра)
ПодъемыДеревья(значение экземпляра)
ТЕЛОСЛОЖЕНИЕWiry(значение экземпляра)
NUM_LEGS1(исключение)
СлотЦенитьТип
МАЛЬЧИК_(Этот кадр)
ЭТОЧеловек(родительский фрейм)
СЕКСМужской(значение экземпляра)
ВОЗРАСТДо 12 лет.(процедурная привязка - устанавливает ограничение)
ДОМАМесто(Рамка)
NUM_LEGSПо умолчанию = 2(по умолчанию, унаследовано от кадра Person)
СлотЦенитьТип
ОБЕЗЬЯНА_(Этот кадр)
ЭТОПримас(родительский фрейм)
СЕКСOneOf (мужчина, женщина)(процессуальное приложение)
ВОЗРАСТцелое число(процедурная привязка - устанавливает ограничение)
СРЕДА ОБИТАНИЯПо умолчанию = Джунгли(дефолт)
ЛЮБИМОЕ БЛЮДОПо умолчанию = бананы(дефолт)
ПодъемыДеревья_
ТЕЛОСЛОЖЕНИЕПо умолчанию = Wiry(дефолт)
NUM_LEGSПо умолчанию = 2(дефолт)

Язык рамки

А язык фреймов это технология, используемая для представление знаний в искусственный интеллект. Они похожи на иерархии классов в объектно-ориентированные языки хотя их основные цели дизайна различны. Фреймы ориентированы на явное и интуитивно понятное представление знаний, а объекты - на инкапсуляция и скрытие информации. Фреймы возникли в результате исследований ИИ, а объекты в основном программная инженерия. Однако на практике методы и возможности фреймового и объектно-ориентированного языков существенно пересекаются.

Пример

Простым примером концепций, смоделированных на языке фреймов, является Онтология Друг друга (FOAF) определяется как часть семантической паутины как основа для социальных сетей и календарных систем. Первичная рамка в этом простом примере - это Человек. Примеры слотов - личные электронное письмо, домашняя страница, телефон, и др. Интересы каждого человека могут быть представлены дополнительными фреймами, описывающими пространство деловой и развлекательной сфер. Слот знает связывает каждого человека с другими людьми. Значения по умолчанию для интересов человека могут быть выведены из сети людей, с которыми он дружит.[1]

Реализации

Самые ранние языки на основе Frame были специально разработаны для конкретных исследовательских проектов и не были упакованы в качестве инструментов для повторного использования другими исследователями. Так же, как с экспертная система механизмы вывода исследователи вскоре осознали преимущества извлечения части базовой инфраструктуры и разработки фреймовых языков общего назначения, которые не были связаны с конкретными приложениями. Одним из первых языков фреймов общего назначения был KRL.[2] Одним из самых влиятельных языков ранних фреймов был KL-ONE[3] KL-ONE породил несколько последующих языков фреймов. Одним из наиболее широко используемых преемников KL-ONE был Язык ткацкого станка разработан Робертом МакГрегором в Институт информационных наук.[4]

В 1980-х годах искусственный интеллект вызвал большой интерес в деловом мире, подпитываемый экспертными системами. Это привело к разработке многих коммерческих продуктов для разработки систем, основанных на знаниях. Эти ранние продукты обычно разрабатывались на Лиспе и включали в себя такие конструкции, как правила IF-THEN для логических рассуждений с иерархиями фреймов для представления данных. Одним из самых известных из этих ранних инструментов базы знаний Lisp был Инженерная среда знаний (KEE) из Intellicorp. KEE предоставил полный фрейм язык с множественным наследованием, слотами, триггерами, значениями по умолчанию и механизмом правил, который поддерживает обратную и прямую цепочки. Как и большинство ранних коммерческих версий программного обеспечения ИИ, KEE изначально был развернут в Лисп на Лисп-машина платформ, но в конечном итоге был перенесен на ПК и рабочие станции Unix.[5]

Программа исследований Семантическая сеть возродили интерес к автоматической классификации и языкам фреймов. Примером может служить Язык веб-онтологий (OWL) стандарт описания информации в Интернете. OWL - это стандарт, обеспечивающий семантический слой поверх Интернета. Цель состоит в том, чтобы вместо организации сети с использованием ключевых слов, как сегодня делают большинство приложений (например, Google), сеть может быть организована с помощью концепций, организованных в онтологии.

Само название языка OWL является хорошим примером ценности семантической паутины. Если бы кто-то сегодня поискал "OWL" в Интернете, большая часть извлеченных страниц была бы на птице. Сова а не стандарт СОВА. С помощью семантической сети можно было бы указать понятие «язык веб-онтологий», и пользователю не нужно было бы беспокоиться о различных возможных акронимах или синонимах в рамках поиска. Точно так же пользователю не нужно беспокоиться о том, что омонимы переполняют результаты поиска нерелевантными данными, такими как информация о хищных птицах, как в этом простом примере.

Помимо OWL, различные стандарты и технологии, относящиеся к семантической паутине, на которые повлияли языки фреймов, включают МАСЛО и DAML. В Протеже Программный инструмент с открытым исходным кодом от Стэнфордского университета предоставляет возможность редактирования онтологий, основанную на OWL и обладающую всеми возможностями классификатора. Однако он перестал явно поддерживать фреймы, начиная с версии 3.5 (которая поддерживается для тех, кто предпочитает ориентацию фрейма), текущая версия в 2017 году - 5. Обоснованием перехода от явных фреймов является то, что OWL DL является более выразительным и «отраслевым стандартом». [6]

Сравнение рамок и предметов

Языки фреймов в значительной степени пересекаются с объектно-ориентированный языков. Терминология и цели двух сообществ были разными, но по мере того, как они переходили из академического мира и лабораторий в мир коммерции, разработчики, как правило, не заботились о философских вопросах и сосредотачивались в первую очередь на конкретных возможностях, беря лучшее из любого лагеря, независимо от того, где идея началось. Обе парадигмы объединяет желание сократить расстояние между концепциями реального мира и их реализацией в программном обеспечении. Таким образом, обе парадигмы пришли к идее представления основных программных объектов в таксономиях, начиная с очень общих типов и переходя к более конкретным типам.

В следующей таблице показана взаимосвязь между стандартной терминологией объектно-ориентированного и фреймового языковых сообществ:

Терминология фреймовОО терминология
РамкаКласс объекта
СлотСвойство или атрибут объекта
Спусковой крючокМетоды аксессора и мутатора
Метод (например, ткацкий станок, KEE)Метод

Основное различие между двумя парадигмами состояло в том, что инкапсуляция считалась основным требованием. Для объектно-ориентированной парадигмы инкапсуляция была одним из, если не самым важным требованием. Стремление уменьшить потенциальное взаимодействие между программными компонентами и, следовательно, управлять большими сложными системами было ключевым фактором объектно-ориентированной технологии. Для языкового лагеря фреймов это требование было менее важным, чем желание предоставить обширный набор возможных инструментов для представления правил, ограничений и логики программирования. В объектно-ориентированном мире все управляется методами и видимостью методов. Так, например, доступ к значению данных свойства объекта должен осуществляться через метод доступа. Этот метод управляет такими вещами, как проверка типа данных и ограничений на значение, которое извлекается или задается для свойства. В языках фреймов с этими же типами ограничений можно справиться разными способами. Можно определить триггеры для срабатывания до или после установки или получения значения. Могут быть определены правила, управляющие теми же типами ограничений. Сами слоты могут быть дополнены дополнительной информацией (называемой «фасетами» на некоторых языках), опять же, с тем же типом информации об ограничениях.

Другим основным отличием фрейм-языков от объектно-ориентированных языков было множественное наследование (позволяющее фрейму или классу иметь два или более суперкласса). Для языков фреймов множественное наследование было обязательным. Это следует из желания моделировать мир так, как это делают люди, человеческие представления о мире редко попадают в строго определенные неперекрывающиеся таксономии. Для многих объектно-ориентированных языков, особенно в последние годы объектно-ориентированного программирования, единственное наследование было либо настоятельно желательным, либо обязательным. Множественное наследование рассматривалось как возможный шаг на этапе анализа для моделирования домена, но то, что следует исключить на этапах проектирования и реализации во имя поддержания инкапсуляции и модульности.[7]

Хотя ранние языки фреймов, такие как KRL, не включали передачу сообщений, движимую требованиями разработчиков, большинство более поздних языков фреймов (например, Loom, KEE) включали возможность определять сообщения во фреймах.[8]

Что касается объектно-ориентированной стороны, также появились стандарты, которые обеспечивают по существу эквивалентную функциональность, предоставляемую языками фреймов, хотя и в другом формате и все стандартизированы для объектных библиотек. Например, Группа управления объектами имеет стандартизованные спецификации для таких возможностей, как связывание тестовых данных и ограничений с объектами (аналогично обычному использованию фасетов во фреймах и ограничениям в языках фреймов, таких как Loom), а также для интеграции механизмов правил.[9][10]

История

Ранняя работа над Frames была вдохновлена ​​психологическими исследованиями 1930-х годов, которые показали, что люди используют накопленные стереотипные знания для интерпретации и действий в новых когнитивных ситуациях.[11] Термин Frame был впервые использован Марвин Мински как парадигма для понимания визуального мышления и обработки естественного языка.[12] В этих и многих других типах проблем пространство потенциального решения даже для самой маленькой проблемы огромно. Например, извлечение фонем из необработанного аудиопотока или обнаружение краев объекта. Вещи, которые кажутся людям тривиальными, на самом деле довольно сложны. На самом деле, насколько они были сложными, вероятно, не было полностью понято до тех пор, пока исследователи ИИ не начали исследовать сложность получения компьютеров для их решения.

Первоначальное понятие фреймов или скриптов, как их еще называли, заключается в том, что они устанавливают контекст для проблемы и, таким образом, автоматически значительно сокращают возможное пространство поиска. Эту идею также переняли Шанк и Абельсон, которые использовали ее, чтобы проиллюстрировать, как система ИИ может обрабатывать обычные человеческие взаимодействия, такие как заказ еды в ресторане.[13] Эти взаимодействия были стандартизированы как фреймы со слотами, в которых хранилась соответствующая информация о каждом фрейме. Слоты аналогичны свойствам объекта в объектно-ориентированном моделировании и отношениям в моделях сущность-отношение. Слоты часто имели значения по умолчанию, но также требовали дальнейшего уточнения в рамках выполнения каждого экземпляра сценария. То есть выполнение такой задачи, как заказ в ресторане, контролировалось, начиная с базового экземпляра Frame, а затем создавая и уточняя различные значения по мере необходимости. По сути, абстрактный фрейм представлял класс объекта, а экземпляры фрейма - экземпляр объекта. В этой ранней работе основное внимание уделялось описанию статических данных Frame. Были разработаны различные механизмы для определения диапазона слота, значений по умолчанию и т. Д. Однако даже в этих ранних системах были процедурные возможности. Одним из распространенных приемов было использование «триггеров» (аналогично концепции базы данных триггеры ) прикреплены к слотам. Триггер - это просто процедурный код, прикрепленный к слоту. Триггер мог сработать до и / или после доступа к значению слота или его изменения.

Как и классы объектов, фреймы были организованы в подчинение иерархии. Например, базовую раму можно заказать в ресторане. Примером может служить то, что Джо идет в Макдональдс. Специализация (по сути подкласс ) каркаса ресторана будет каркасом для заказа в модном ресторане. Фрейм причудливого ресторана унаследует все значения по умолчанию из фрейма ресторана, но также либо добавит больше слотов, либо изменит одно или несколько значений по умолчанию (например, ожидаемый диапазон цен) для специализированного фрейма.[14][15]

Языки

Большая часть ранних исследований языка Фреймов (например, Шэнк и Абельсон) была основана на результатах экспериментальной психологии и попытках разработать инструменты представления знаний, соответствующие шаблонам, которые люди, как считалось, использовали для выполнения повседневных задач. Этих исследователей меньше интересовали математические формальности, поскольку они считали, что такие формализмы не обязательно были хорошими моделями того, как средний человек представляет себе мир. Например, то, как люди используют язык, часто далеко от истинной логики.

Точно так же и в лингвистике Чарльз Дж. Филмор в середине 1970-х начал работать над теорией семантика кадра, что позже привело бы к таким вычислительным ресурсам, как FrameNet.[16] Семантика фреймов была мотивирована размышлениями о человеческом языке и человеческом познании.

Такие исследователи, как Рон Брахман с другой стороны, хотел дать исследователям ИИ математический формализм и вычислительную мощность, которые были связаны с логикой. Их цель состояла в том, чтобы сопоставить классы, слоты, ограничения и правила Frame на языке Frame для теории множеств и логики. Одним из преимуществ этого подхода является то, что проверку и даже создание моделей можно автоматизировать с помощью средств доказательства теорем и других возможностей автоматизированного рассуждения. Недостатком было то, что было сложнее изначально указать модель на языке с формальной семантикой.

Эта эволюция также иллюстрирует классический разрыв в исследованиях ИИ, известный как "аккуратность против неопрятности "." Аккуратными "были исследователи, которые больше всего ценили математическую точность и формализм, которых можно было достичь с помощью Логика первого порядка и Теория множеств. «Беспорядки» больше интересовались моделированием знаний в представлениях, которые были интуитивно понятны и психологически значимы для людей.[17]

Наиболее заметным из более формальных подходов был KL-ONE язык.[18] KL-ONE позже породил несколько последующих языков фреймов. Формальная семантика таких языков, как KL-ONE, дала этим фрейм-языкам новый тип возможности автоматического мышления, известный как классификатор. Классификатор - это механизм, который анализирует различные объявления на языке фреймов: определение наборов, подмножеств, отношений и т. Д. Затем классификатор может автоматически выводить различные дополнительные отношения и определять, когда некоторые части модели несовместимы друг с другом. Таким образом, многие задачи, которые обычно выполняются с помощью прямой или обратной цепочки в механизме вывода, могут вместо этого выполняться классификатором.[19]

Эта технология особенно ценна при работе с Интернетом. Интересный результат заключается в том, что формализм таких языков, как KL-ONE, может быть наиболее полезным при работе с в высшей степени неформальными и неструктурированными данными, найденными в Интернете. В Интернете просто невозможно требовать от всех систем стандартизации одной модели данных. Терминология неизбежно будет использоваться во множестве противоречивых форм. Возможность автоматической классификации механизма классификатора предоставляет разработчикам ИИ мощный набор инструментов, помогающий упорядочить и согласовать очень непоследовательный сбор данных (например, Интернет). Концепция усовершенствованного Интернета, в котором страницы упорядочиваются не только по ключевым словам текста, но и по классификации концепций, известна как Семантическая сеть. Технология классификации, первоначально разработанная для языков фреймов, является ключевым фактором Семантической паутины.[20][21] Разделение «аккуратность и неопрятность» также проявилось в исследовании семантической паутины, кульминацией которого стало создание Связывание открытых данных сообщество - их внимание было сосредоточено на публикации данных в Интернете, а не на моделировании.

Смотрите также

Рекомендации

  1. ^ «ФОАФ». http://semanticweb.org. Архивировано из оригинал 10 февраля 2013 г.. Получено 7 июн 2014. Внешняя ссылка в | сайт = (помощь)
  2. ^ Bobrow, D.G .; Терри Виноград (1977). «Обзор KRL: язык представления знаний». Наука о мышлении. 1: 3–46. Дои:10.1207 / s15516709cog0101_2.
  3. ^ Брахман, Рон (1978). «Структурная парадигма представления знаний». Технический отчет Bolt, Beranek и Neumann (3605).
  4. ^ МакГрегор, Роберт (июнь 1991). «Использование классификатора описания для улучшения представления знаний». Эксперт IEEE. 6 (3): 41–46. Дои:10.1109/64.87683.
  5. ^ Меттри, Уильям (1987). «Оценка инструментов для построения больших систем, основанных на знаниях». Журнал AI. 8 (4). Архивировано из оригинал на 2013-11-10. Получено 2013-12-09.
  6. ^ Хорридж, Мэтью. "Protégé OWL Tutorial. Пошаговое руководство по моделированию в OWL с использованием популярных инструментов Protégé OWL". Манчестерский университет. Манчестерский университет. Архивировано из оригинал 13 декабря 2013 г.. Получено 9 декабря 2013.
  7. ^ «Единый язык моделирования». essentialstrategies.com. Essential Strategies Inc., 1999 г.. Получено 10 декабря 2013. По опыту вашего автора, почти все примеры, которые требуют множественного наследования или множественных иерархий типов, могут быть решены путем атаки на модель с другого направления.
  8. ^ Меттри, Уильям (1987). «Оценка инструментов для построения больших систем, основанных на знаниях». Журнал AI. 8 (4). Архивировано из оригинал на 2013-11-10. Получено 2013-12-09.
  9. ^ Макгрегор, Роберт (13 августа 1999 г.). «Ретроспектива на ткацком станке». isi.edu. Институт информационных наук. Архивировано из оригинал 25 октября 2013 г.. Получено 10 декабря 2013.
  10. ^ «Официальные спецификации OMG». omg.org. Группа управления объектами. Получено 10 декабря 2013.
  11. ^ Бартлетт, Ф. (1932). Воспоминание: исследование экспериментальной и социальной психологии. Кембридж, Англия: Издательство Кембриджского университета. Дои:10.1086/399084. S2CID  7992164.
  12. ^ Минский, Марвин (1975). «Основа для представления знаний» (PDF). В Пэт Уинстон (ред.). Психология компьютерного зрения. Нью-Йорк: Макгроу Хилл. С. 211–277.
  13. ^ Шэнк, Роджер; Р. П. Абельсон (1977). Сценарии, планы, цели и понимание. Хиллсдейл, Нью-Джерси: Лоуренс Эрлбаум.
  14. ^ Фейгенбаум, Эдвард; Аврон Барр (1 сентября 1986 г.). Справочник по искусственному интеллекту, том III. Эддисон-Уэсли. С. 216–222. ISBN  978-0201118117.
  15. ^ Bobrow, D.G .; Терри Виноград (1977). «Обзор KRL: язык представления знаний». Наука о мышлении. 1: 3–46. Дои:10.1207 / s15516709cog0101_2.
  16. ^ Лакофф, Джордж (18 февраля 2014 г.). «Чарльз Филмор, первооткрыватель семантики фреймов, умер в научной фантастике в возрасте 84 лет: он выяснил, как работает фрейминг». The Huffington Post. Получено 7 марта 2014.
  17. ^ Кревье, Даниэль (1993). AI: бурные поиски искусственного интеллекта. Нью-Йорк: Основные книги. п. 168. ISBN  978-0-465-02997-6.
  18. ^ Брахман, Рон (1978). «Структурная парадигма представления знаний». Технический отчет Bolt, Beranek и Neumann (3605).
  19. ^ МакГрегор, Роберт (июнь 1991). «Использование классификатора описания для улучшения представления знаний». Эксперт IEEE. 6 (3): 41–46. Дои:10.1109/64.87683.
  20. ^ Бернерс-Ли, Тим; Джеймс Хендлер; Ора Лассила (17 мая 2001 г.). «Семантическая сеть Web. Новая форма веб-контента, значимая для компьютеров, откроет революцию новых возможностей». Scientific American. 284 (5): 34–43. Дои:10.1038 / scientificamerican0501-34. Архивировано из оригинал на 24 апреля 2013 г.
  21. ^ Хорридж, Мэтью. "Protégé OWL Tutorial. Пошаговое руководство по моделированию в OWL с использованием популярных инструментов Protégé OWL". Манчестерский университет. Манчестерский университет. Архивировано из оригинал 13 декабря 2013 г.. Получено 9 декабря 2013.

Библиография

внешняя ссылка