Знаний. Модели представления знаний: логическая, сетевая, фреймовая, продукционная

Вид материалаЛекция

Содержание


2. Система знаний.
Модели представления знаний
Подобный материал:





Введение

Основы искусственного интеллекта  144

Основные направления исследований в области искусственного интеллекта. Система знаний. Модели представления знаний: логическая, сетевая, фреймовая, продукционная.

Понятие о экспертной системе (ЭС). Общая характеристика ЭС. Виды ЭС и типы решаемых задач. Структуры и режимы использования ЭС. Классификация инструментальных средств ЭС и организация знаний  в ЭС. Интеллектуальные информационные ЭС.

Представление о логическом программировании. Представление знаний о предметной области в виде фактов и правил базы знаний пролога. Дескриптивный, процедурный и машинный смысл программы на прологе. Рекурсия и структуры данных в программах на Прологе. Представление о функциональном программировании.

18 лекции 32 часов практика


Лекция №1


Основные направления исследований в области искусственного интеллекта.
  1. Основные направления исследований в области искусственного интеллекта.
  2. Система знаний.
  3. Модели представления знаний: логическая, сетевая, фреймовая, продукционная.

1.Основные направления исследований в области искусственного интеллекта.


По времени возникновения это направление в информатике — самое молодое. Время его появления как научной дисциплины — начало 70-х гг. нашего столетия.

Термин artificial intelligence был впервые применен в 1956 году на семинаре в одном из американских высших учебных заведений (по одним данным в Стенфордском университете, по другим в Дартсутском колледже). В Советском Союзе начало развития этого направления связывают с семинаром профессора А. А. Ляпунова в МГУ — "Мышление и автоматы", который начал работу в 1954 году.

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

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

Такая цель исследований в области искусственного интеллекта тесно связывает их с достижениями психологии — науки, одной из задач которой является изучение интеллекта человека. В психологии сейчас активно развивается особое направление — когнитивная психология, исследования в котором направлены на раскрытие тех закономерностей и механизмов, которые интересуют специалистов в области искусственного интеллекта.

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

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

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

Существует много способов описать и представить разнообразные знания о мире. И естественный язык лишь один из них.

Например — язык математики, способный выразить своими средствами многие законы и закономерности окружающего нас мира.

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

И конечно, достижения математической логики вносят свой весомый вклад в развитие наших представлений о человеческом интеллекте и о возможных путях формализации человеческих рас­суждений.

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


Исследования в области ИСКУССТВЕННОГО ИНТЕЛЛЕКТА включают:

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

С точки зрения перспектив развития ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ - это набор очень мощных инструментальных средств и методов, которые используются в качестве инструментальных средств для решения практических проблем.

Типичные методы ИИ сосредоточены  скорее на символьных методах обработки информации, чем на числовой.


2. Система знаний.

Любая предметная область (будь то кардиология, автомобилестроение или органическая химия) характеризуется своим набором понятий и связей между ними, своими законами, связывающими между собой объекты данной предметной области, своими процессами и событиями. И конечно, каждая предметная область имеет свои, специфические методы решения задач. Знания о предметной области и способах решения в ней задач весьма разно­образны. Возможны различные классификации этих знаний, выбор которых зависит от конкретных целей классификации. Наиболее часто знания подразделяются на декларативные и процедурные.

Процедурные знания описывают последовательности действий, которые могут использоваться при решении задач. Это, например, программы для ЭВМ, словесные записи алгоритмов, инструкция по сборке некоторого изделия.

Декларативные знания — это все знания, не являющиеся процедурными, например, статьи в толковых словарях и энциклопедиях, формулировки законов в физике, химии и других науках, собрание исторических фактов и т. п. В отличие от процедурных знаний, отвечающих на вопрос: "Как сделать X?", декларативные знания отвечают, скорее, на вопросы: "Что есть X?" или "Какие связи имеются между X и У?", "Почему X?" и т. д.

Интеллектуальные системы — это сложные программно-аппаратные комплексы, обязательно включающие в свой состав ЭВМ. Чтобы ввести знания о предметной области в память ЭВМ, необходимо представить их в такой форме, которая была бы понятна машине. Иными словами, знания надо записать на языке, понятном ЭВМ, как понятны ей записи на языках программирования.

Для этого существуют специальные языки представления знаний. Их можно разделить на типы по тем формальным моделям представления знаний, которые лежат в их основе.

Известно четыре модели: логическая, сетевая, продукционная и фреймовая


3. Модели представления знаний


Логическая модель представляет собой фор­мальную систему — некоторое логическое исчисление, как правило, исчисление предикатов первого порядка. Все знания о предметной области описываются в виде формул этого исчисления или правил вывода. Описание в виде формул дает возможность представить декларативные знания, а правила вывода — проце­дурные знания. Рассмотрим в качестве примера знание: "Когда температура в печи достигает 120° и прошло менее 30 мин с момента включения печи, давление не может превосходить критическое. Если с момента включения печи прошло более 30 мин, то необходимо открыть вентиль №2". Логическая модель представления этого знания имеет вид:

Р(р = 120) T(t < 30)  (D
Р(р = 120) T(t >30) =>F(№2).

В этой записи использованы следующие обоз­начения:

Р(р = 120) — предикат, становящийся истин­ным, когда температура достигает 120°;

T(t < 30) — предикат, остающийся истинным в течение 30 мин с начала процесса;

T(t > 30) — предикат, становящийся истинным по истечении 30 мин с начала процесса;

D < DKp — утверждение о том, что давление ни­же критического;

F(№2) — команда открыть вентиль №2.

Кроме того, в этих записях использованы ти­повые логические связки конъюнкции ( V), импли­кации () и логического следования ( =>).

Первая строчка в записи представляет декла­ративные знания, а вторая — процедурные.

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

Куда более наглядными оказались языки, опи­рающиеся на сетевую модель представления знаний. В основе такой модели лежит идея о том, что любые знания можно представить в виде совокупности объ­ектов (понятий) и связей (отношений) между ними. Рассмотрим, например, текст, содержащий некото­рые декларативные знания: "Слева от станка распо­ложен приемный бункер. Расстояние до него равно 2 м. Справа от станка — бункер готовой продукции. Он находится рядом со станком. Робот перемещается параллельно станку и бункерам на расстоянии 1м".

Понятия и объекты, встречающиеся в тексте, представлены в виде вершин сети, а отношения — в виде дуг, связывающих соответствующие вершины.

Известно, что любой текст, описывающий конкретные ситуации в реальном мире, всегда можно представить в виде совокупности взаимосвязанных понятий. Причем число базовых отношений не может быть бесконечным (оно заведомо меньше 300); все остальные отношения выражаются через базовые в виде их комбинаций. Эта гипотеза служит основой утверждения о том, что семантические сети являются универсальным средством для представления знаний в интеллектуальных системах.

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

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

Фрейм имеет почти однородную структуру и состоит из стандартных единиц, называемых сло­тами. Каждая такая единица — слот — содержит название и свое значение. В качестве примера рас­смотрим фрейм для понятия "взятие":

"Взятие":

(Субъект, XI);

(Объект, Х2);

(Место, ХЗ);

(Время, Х4);

(Условие, Х5).

В этом фрейме указаны имена слотов (субъект, объект и т. д.), но вместо их значений стоят пере­менные (XI, Х2 и т. д.). Такой фрейм называется фреймом-прототипом, или протофреймом.

Протофреймы хранят знание о самом понятии. Например, понятие "взять" связано с наличием слотов с указанными именами. Взятие осуществля­ет XI в месте ХЗ во время Х4, если выполнено ус­ловие Х5. Берет XI нечто, обозначенное как Х2. Подставляя вместо всех переменных конкретные значения, получим конкретный факт-описание:

"Взятие":

(Субъект, Робот);

(Объект, Деталь);

(Место, Приемный бункер);

(Время, Х4);

(Условие, В бункере есть деталь, а у робота ее нет).

Такие конкретные описания представляют собой знания, которые совпадают с тем, что в вычислительной технике называют данными. В искусственном интеллекте фреймы, в которых означены все основные слоты (они каким-либо образом помечаются в описании фрейма), назы­ваются фреймами-экземплярами, или экзофреймами. В нашем примере, наверное, основными для фрейма "взятие" можно считать слоты с именами "субъект" и "объект". Поскольку в состав фрейма могут входить слоты с именами действий, то фрей­мы годятся для представления как декларативных, так и процедурных знаний.

Чтобы представить семантическую сеть в виде совокупности фреймов, надо уметь представлять отношения между вершинами сети. Для этого также используются слоты фреймов. Эти слоты могут иметь имена вида "Связь У", где Y есть имя того отношения (его тип), которое устанавливает дан­ный фрейм-вершина с другим фреймом-вершиной.

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

Четвертая модель представления знаний носит на­звание продукционной. Основу модели составляют системы продукций. Каждая продукция в наиболее общем виде записывается как стандартное выраже­ние следующего вида:

"Имя продукции":

Имя сферы;

Предусловие;

Условие для ядра;

Если А, то В;

Постусловие.

Основная часть продукции — ее ядро имеет вид: "Если А, то В", где А и В могут иметь разные значения. Остальные элементы, образующие про­дукцию, носят вспомогательный характер. В наибо­лее простом виде продукция может состоять лишь из имени (например, ее порядкового номера в сис­теме продукций) и ядра. Рассмотрим несколько примеров ядра.

"Если сверкает молния, то гремит гром".

"Если в доме вспыхнул пожар, то вызывайте по телефону 01 пожарную команду".

"Если в путеводителе указано, что в городе есть театр, то надо пойти туда".

Первый пример иллюстрирует тот случай, ког­да ядро продукции описывает причинно-следствен­ную связь явлений А и В. Во втором примере А к В представляют собой некоторые действия. В третьем примере А — это некоторые знания, а В — действие. Возможны и другие варианты ядра продукции. Та­ким образом, при помощи ядер можно представлять весьма разнообразные знания.

Условие для ядра определяет те необходимые предпосылки, при выполнении которых надо про­верять наличие или истинность А в ядре продукции. Следующий пример иллюстрирует употребление условия для ядра: а, Ь, с — стороны треугольника; если , то треугольник является прямо­угольным. Ясно, что при другой интерпретации а, b и с не имеет никакого смысла использовать данное ядро продукции.

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

Когда речь шла о различных А и В в ядрах продукций, то практически было показано, что в такой форме можно представлять как деклара­тивные знания, так и процедурные, хотя сама фор­ма продукций весьма удобна для задания именно процедурных знаний.

Рассмотренные модели представления знаний широко используются в современных интеллекту­альных системах и прежде всего в экспертных си­стемах. Каждая из форм представлений знаний может служить основой для создания языка про­граммирования, ориентированного на работу со знаниями. Такими, например, языками являются язык ФРЛ (Frame Representation Language), осно­ванный на фреймовых представлениях, и язык Про­лог, опирающийся на модель представления в виде продукций. Однако разные модели представления знаний имеют свои преимущества и свои недостат­ки. Языки представления знаний, основанные на них, наследуют эти преимущества и недостатки. Поэтому в 80-х гг. наметилась тенденция создавать комбинированные языки представления знаний. Чаще всего комбинируются фреймовые и продук­ционные модели.

Достаточно богатая предметная область со­держит большое количество декларативных и процедурных знаний. Создание баз знаний большого размера — дело весьма сложное. Ведь необходимо не только накапливать знания, представляя их выбранным способом, но и проверять полноту зна­ний и их непротиворечивость. Источниками знаний могут быть книги, документы, изобразительная продукция, устные тексты, получаемые от специа­листов, и т. п. Эти различные источники знаний на­до уметь объединять между собой, что приводит к сложным, интегрированным базам знаний. Отдель­ные базы знаний, территориально разнесенные между собой, могут совместно использоваться при решении задач. Так возникают распределенные ба­зы знаний, образуются сложные по конфигурации сети баз знаний. Уже сейчас такие сети хранения и обработки знаний становятся не только общенаци­ональными, но и международными, доступными любому специалисту.

Стремительное развитие баз знаний и проце­дур, связанных с их заполнением, ведением и использованием, породило новую профессию, по­лучившую название инженер по знаниям. Инженер по знаниям — специалист высокого класса, владе­ющий системным программированием и методами искусственного интеллекта. Без инженеров по зна­ниям практически нельзя создать интеллектуаль­ную систему. Как и программисты, инженеры по знаниям становятся необходимой фигурой в эпоху новых информационных технологий.                                                                                                                              Продукция

Так называют один из распространенных в интел­лектуальных системах способов представления зна­ний (см. Представление знаний). Основная часть продукции, называемая ядром продукции, имеет вид: "Если А, то В". Вместо А и В могут стоять некоторые утверждения, факты, приказы и т. п. Примерами ядер могут служить: "Если стало темно, то зажги электричество", "Если ты не знаешь тео­ремы Пифагора, то найди ее в учебнике геометрии и выучи", "Если нажать зеленую кнопку, то дверь откроется автоматически".

Как видно из этих примеров, ядро состоит из двух частей: посылки и следствия. Если А (посылка) имеет место, то В (следствие) также реализуется или может быть реализовано. Другими словами, знания, заключенные в ядрах продукций, носят характер правил, описывающих некоторые про­цедуры. Поэтому продукции часто называют про­дукционными правилами, а интеллектуальные системы, в которых используются продукции, — си­стемами, основанными на правилах.