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

advertisement
1
Введение
Основы искусственного интеллекта 144
Основные направления исследований в области искусственного
интеллекта. Система знаний. Модели представления знаний: логическая,
сетевая, фреймовая, продукционная.
Понятие о экспертной системе (ЭС). Общая характеристика ЭС.
Виды ЭС и типы решаемых задач. Структуры и режимы использования ЭС.
Классификация инструментальных средств ЭС и организация знаний в ЭС.
Интеллектуальные информационные ЭС.
Представление о логическом программировании. Представление
знаний о предметной области в виде фактов и правил базы знаний пролога.
Дескриптивный, процедурный и машинный смысл программы на прологе.
Рекурсия и структуры данных в программах на Прологе. Представление о
функциональном программировании.
18 лекции 32 часов практика
Лекция №1
Основные
направления
исследований
в
области
искусственного интеллекта.
1.Основные направления исследований в области искусственного
интеллекта.
2.Система знаний.
3.Модели представления знаний: логическая, сетевая, фреймовая,
продукционная.
1.Основные направления исследований в области искусственного
2
интеллекта.
По времени возникновения это направление в информатике — самое
молодое. Время его появления как научной дисциплины — начало 70-х гг.
нашего столетия.
Термин artificial intelligence был впервые применен в 1956 году на
семинаре в одном из американских высших учебных заведений (по одним
данным в Стенфордском университете, по другим в Дартсутском колледже). В
Советском Союзе начало развития этого направления связывают с семинаром
профессора А. А. Ляпунова в МГУ — "Мышление и автоматы", который начал
работу в 1954 году.
Искусственный
интеллект
тесно
связан
с
теоретической
информатикой, откуда он заимствовал многие модели и методы, например
активное использование логических средств для преобразования знаний. Столь
же прочны связи этого направления с кибернетикой. Математическая и
прикладная лингвистика, нейрокибернетика и гомеостатика теснейшим образом
связаны с развитием искусственного интеллекта. И конечно, работы в области
создания
интеллектуальных
систем
(чем,
собственно,
и
занимаются
специалисты, работающие в области искусственного интеллекта) немыслимы
без развитых систем программирования. Последняя связь столь тесна, что
бытует даже мнение, что работы в области проектирования и создания
интеллектуальных
систем
есть
новая
ступень
работ
в
области
программирования.
Основная цель работ в области искусственного интеллекта —
стремление проникнуть в тайны творческой деятельности людей, их
способности к овладению навыками, знаниями и умениями. Для этого
необходимо раскрыть те глубинные механизмы, с помощью которых человек
способен научиться практически любому виду деятельности. Если суть этих
механизмов будет разгадана, то есть надежда реализовать их подобие в
3
искусственных системах, т. е. сделать их по-настоящему интеллектуальными.
Такая цель исследований в области искусственного интеллекта тесно
связывает их с достижениями психологии — науки, одной из задач которой
является изучение интеллекта человека. В психологии сейчас активно
развивается особое направление — когнитивная психология, исследования в
котором направлены на раскрытие тех закономерностей и механизмов, которые
интересуют специалистов в области искусственного интеллекта.
Создателей интеллектуальных систем интересует не только проблема
автоматизации способности к рассуждениям и умозаключениям, т. е.
моделирование рассуждений, но и способности к восприятию окружающего
мира, которой весьма успешно пользуются живые существа (и конечно, люди).
Поэтому
кроме
достижений
когнитивной
психологии
в
работах
по
искусственному интеллекту используются и результаты, полученные в
психологии восприятия информации разного типа.
Кроме
психологических
исследований,
в
сферу
интересов
специалистов в области искусственного интеллекта входят те лингвистические
исследования, которые тесно связаны с психологией. Эту пограничную область
активно исследует психолингвистика. Ее результаты касаются моделирования
общения не только с помощью естественного языка, но и с использованием
иных средств (жестов, мимики, интонации и т. п.).
Как мы уже говорили, математическая и прикладная лингвистика
также тесно взаимодействуют с исследованиями в области искусственных
систем общения на естественном языке. Компьютерная лингвистика — еще
одно из лингвистических направлений, с которым тесно смыкаются интересы
искусственного интеллекта.
Существует много способов описать и представить разнообразные
знания о мире. И естественный язык лишь один из них.
Например — язык математики, способный выразить своими
средствами многие законы и закономерности окружающего нас мира.
4
Существует специальная наука, называемая семиотикой, которая
изучает общие свойства различных систем, способных описывать явления
окружающего мира и его законы. Понятно, что к семиотике специалисты по
искусственному интеллекту проявляют не меньший интерес, чем к психологии
или лингвистике.
И конечно, достижения математической логики вносят свой весомый
вклад в развитие наших представлений о человеческом интеллекте и о
возможных путях формализации человеческих рассуждений.
Искусственный интеллект — наука не чисто теоретическая. Она
занимается и прикладными вопросами, связанными с построением реально
действующих интеллектуальных систем, например роботов. Но робототехника
— наука о роботах — не исчерпывает всех типов интеллектуальных систем.
Например, экспертные системы гораздо менее известны, чем роботы, но они
активно входят в нашу жизнь.
Исследования в области ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
включают:
Формальные задачи (математика, игры)
Общезначимые задачи (восприятие, робототехника, естественный
язык,
рассуждения на основе здравого смысла)
Экспертные задачи (анализ финансового состояния, медицинская
диагностика, научный анализ, и другие области)
С точки зрения перспектив развития ИСКУССТВЕННЫЙ
ИНТЕЛЛЕКТ - это набор очень мощных инструментальных средств и методов,
которые используются в качестве инструментальных средств для решения
практических проблем.
Типичные методы ИИ сосредоточены
методах обработки информации, чем на числовой.
скорее на символьных
5
2. Система знаний.
Любая
предметная
область
(будь
то
кардиология,
автомобилестроение или органическая химия) характеризуется своим набором
понятий и связей между ними, своими законами, связывающими между собой
объекты данной предметной области, своими процессами и событиями. И
конечно, каждая предметная область имеет свои, специфические методы
решения задач. Знания о предметной области и способах решения в ней задач
весьма разнообразны. Возможны различные классификации этих знаний, выбор
которых зависит от конкретных целей классификации. Наиболее часто знания
подразделяются на декларативные и процедурные.
Процедурные знания описывают последовательности действий,
которые могут использоваться при решении задач. Это, например, программы
для ЭВМ, словесные записи алгоритмов, инструкция по сборке некоторого
изделия.
Декларативные знания — это все знания, не являющиеся
процедурными, например, статьи в толковых словарях и энциклопедиях,
формулировки законов в физике, химии и других науках, собрание
исторических фактов и т. п. В отличие от процедурных знаний, отвечающих на
вопрос: "Как сделать X?", декларативные знания отвечают, скорее, на вопросы:
"Что есть X?" или "Какие связи имеются между X и У?", "Почему X?" и т. д.
Интеллектуальные системы — это сложные программно-аппаратные
комплексы, обязательно включающие в свой состав ЭВМ. Чтобы ввести знания
о предметной области в память ЭВМ, необходимо представить их в такой
форме, которая была бы понятна машине. Иными словами, знания надо
записать на языке, понятном ЭВМ, как понятны ей записи на языках
программирования.
Для этого существуют специальные языки представления знаний. Их
6
можно разделить на типы по тем формальным моделям представления знаний,
которые лежат в их основе.
Известно четыре модели: логическая, сетевая,
продукционная и
фреймовая
3. Модели представления знаний
Логическая модель представляет собой формальную систему —
некоторое логическое исчисление, как правило, исчисление предикатов первого
порядка. Все знания о предметной области описываются в виде формул этого
исчисления или правил вывода. Описание в виде формул дает возможность
представить декларативные знания, а правила вывода — процедурные знания.
Рассмотрим в качестве примера знание: "Когда температура в печи достигает
120° и прошло менее 30 мин с момента включения печи, давление не может
превосходить критическое. Если с момента включения печи прошло более 30
мин, то необходимо открыть вентиль №2". Логическая модель представления
этого знания имеет вид:
Р(р = 120) T(t < 30)  (D<DKp);
Р(р = 120) T(t >30) =>F(№2).
В этой записи использованы следующие обозначения:
Р(р = 120) — предикат, становящийся истинным, когда температура
достигает 120°;
T(t < 30) — предикат, остающийся истинным в течение 30 мин с начала
процесса;
T(t > 30) — предикат, становящийся истинным по истечении 30 мин с
начала процесса;
D < DKp — утверждение о том, что давление ниже критического;
F(№2) — команда открыть вентиль №2.
Кроме того, в этих записях использованы типовые логические связки
7
конъюнкции ( V), импликации () и логического следования ( =>).
Первая строчка в записи представляет декларативные знания, а вторая
— процедурные.
Языки
представления
знаний
логического
типа
широко
использовались на ранних стадиях развития интеллектуальных систем, но
вскоре были вытеснены (или, во всяком случае, сильно потеснены) языками
других типов. Объясняется это громоздкостью записей, опирающихся на
классические логические исчисления. При формировании таких записей легко
допустить ошибки, а поиск их очень сложен. Отсутствие наглядности,
удобочитаемости (особенно для тех, чья деятельность не связана с точными
науками) затрудняло распространение языков такого типа.
Куда более наглядными оказались языки, опирающиеся на сетевую
модель представления знаний. В основе такой модели лежит идея о том, что
любые знания можно представить в виде совокупности объектов (понятий) и
связей (отношений) между ними. Рассмотрим, например, текст, содержащий
некоторые декларативные знания: "Слева от станка расположен приемный
бункер. Расстояние до него равно 2 м. Справа от станка — бункер готовой
продукции. Он находится рядом со станком. Робот перемещается параллельно
станку и бункерам на расстоянии 1м".
Понятия и объекты, встречающиеся в тексте, представлены в виде
вершин сети, а отношения — в виде дуг, связывающих соответствующие
вершины.
Известно, что любой текст, описывающий конкретные ситуации в
реальном
мире,
всегда
можно
представить
в
виде
совокупности
взаимосвязанных понятий. Причем число базовых отношений не может быть
бесконечным (оно
заведомо
меньше
300);
все остальные отношения
выражаются через базовые в виде их комбинаций. Эта гипотеза служит основой
утверждения о том, что семантические сети являются универсальным
средством для представления знаний в интеллектуальных системах.
8
Семантические
представления
знаний.
сети
являются
Однако
для
них
весьма
мощным
характерны
средством
неоднозначность
представлений знаний и неоднородность связей. И при автоматизации процесса
использования
неоднородность
и
представления
заметно
знаний
усложняют
такая
процессы,
неоднозначность
протекающие
и
в
интеллектуальных системах. Поэтому вполне естественно желание как-то
унифицировать форму представлений знаний, сделать ее максимально
однородной. Одним из способов решения этой задачи в искусственном
интеллекте послужил переход к специальному представлению вершин в сети и
унификация связей между вершинами.
Все понятия, входящие в сеть, описываются в виде фреймов. Фрейм
— это минимально возможное описание сущности какого-либо явления,
события, ситуации, процесса или объекта. (Минимально возможное означает,
что при дальнейшем упрощении описания теряется его полнота, оно перестает
определять ту единицу знаний, для которой оно предназначено.)
Фрейм имеет почти однородную структуру и состоит из стандартных
единиц, называемых слотами. Каждая такая единица — слот — содержит
название и свое значение. В качестве примера рассмотрим фрейм для понятия
"взятие":
"Взятие":
(Субъект, XI);
(Объект, Х2);
(Место, ХЗ);
(Время, Х4);
(Условие, Х5).
В этом фрейме указаны имена слотов (субъект, объект и т. д.), но
вместо их значений стоят переменные (XI, Х2 и т. д.). Такой фрейм называется
фреймом-прототипом, или протофреймом.
Протофреймы хранят знание о самом понятии. Например, понятие
9
"взять" связано с наличием слотов с указанными именами. Взятие осуществляет
XI в месте ХЗ во время Х4, если выполнено условие Х5. Берет XI нечто,
обозначенное как Х2. Подставляя вместо всех переменных конкретные
значения, получим конкретный факт-описание:
"Взятие":
(Субъект, Робот);
(Объект, Деталь);
(Место, Приемный бункер);
(Время, Х4);
(Условие, В бункере есть деталь, а у робота ее нет).
Такие конкретные описания представляют собой знания, которые
совпадают с тем, что в вычислительной технике называют данными. В
искусственном интеллекте фреймы, в которых означены все основные слоты
(они каким-либо образом помечаются в описании фрейма), называются
фреймами-экземплярами, или экзофреймами. В нашем примере, наверное,
основными для фрейма "взятие" можно считать слоты с именами "субъект" и
"объект". Поскольку в состав фрейма могут входить слоты с именами действий,
то фреймы годятся для представления как декларативных, так и процедурных
знаний.
Чтобы представить семантическую сеть в виде совокупности фреймов,
надо уметь представлять отношения между вершинами сети. Для этого также
используются слоты фреймов. Эти слоты могут иметь имена вида "Связь У",
где Y есть имя того отношения (его тип), которое устанавливает данный фреймвершина с другим фреймом-вершиной.
Заметим также, что в качестве значения слота может выступать
новый
фрейм,
что
позволяет
на
множестве
фреймов
осуществлять
иерархическую классификацию. Это очень удобное свойство фреймов, так как
человеческие знания, как правило, упорядочены по общности.
Четвертая
модель
представления
знаний
носит
название
10
продукционной. Основу модели составляют системы продукций. Каждая
продукция в наиболее общем виде записывается как стандартное выражение
следующего вида:
"Имя продукции":
Имя сферы;
Предусловие;
Условие для ядра;
Если А, то В;
Постусловие.
Основная часть продукции — ее ядро имеет вид: "Если А, то В", где
А и В могут иметь разные значения. Остальные элементы, образующие продукцию, носят вспомогательный характер. В наиболее простом виде продукция
может состоять лишь из имени (например, ее порядкового номера в системе
продукций) и ядра. Рассмотрим несколько примеров ядра.
"Если сверкает молния, то гремит гром".
"Если в доме вспыхнул пожар, то вызывайте по телефону 01 пожарную
команду".
"Если в путеводителе указано, что в городе есть театр, то надо пойти
туда".
Первый пример иллюстрирует тот случай, когда ядро продукции
описывает причинно-следственную связь явлений А и В. Во втором примере А
к В представляют собой некоторые действия. В третьем примере А — это
некоторые знания, а В — действие. Возможны и другие варианты ядра
продукции. Таким образом, при помощи ядер можно представлять весьма
разнообразные знания.
Условие для ядра определяет те необходимые предпосылки, при
выполнении которых надо проверять наличие или истинность А в ядре
продукции. Следующий пример иллюстрирует употребление условия для ядра:
а, Ь, с — стороны треугольника; если , то треугольник является прямо-
11
угольным. Ясно, что при другой интерпретации а, b и с не имеет никакого
смысла использовать данное ядро продукции.
Имя сферы указывает ту предметную область, к которой относятся
знания, зафиксированные в данной продукции. В интеллектуальной системе
может
храниться
совокупность
знаний
(ее
называют
базой
знаний),
относящихся к разным областям (например, знания о различных заболеваниях
человека или знания из различных разделов математики). Ясно, что если в
данный момент решается задача из области физики твердого тела или из геометрии треугольника, то надо использовать знания, относящиеся именно к этой
области. Сферы и выделяют такие подобласти знаний.
Когда речь шла о различных А и В в ядрах продукций, то практически
было показано, что в такой форме можно представлять как декларативные
знания, так и процедурные, хотя сама форма продукций весьма удобна для
задания именно процедурных знаний.
Рассмотренные модели представления знаний широко используются в
современных интеллектуальных системах и прежде всего в экспертных системах. Каждая из форм представлений знаний может служить основой для
создания языка программирования, ориентированного на работу со знаниями.
Такими, например, языками являются язык ФРЛ (Frame Representation
Language), основанный на фреймовых представлениях, и язык Пролог,
опирающийся на модель представления в виде продукций. Однако разные
модели представления знаний имеют свои преимущества и свои недостатки.
Языки представления знаний, основанные на них, наследуют эти преимущества
и
недостатки.
Поэтому
в
80-х
гг.
наметилась
тенденция
создавать
комбинированные языки представления знаний. Чаще всего комбинируются
фреймовые и продукционные модели.
Достаточно богатая предметная область содержит большое количество
декларативных и процедурных знаний. Создание баз знаний большого размера
— дело весьма сложное. Ведь необходимо не только накапливать знания,
12
представляя их выбранным способом, но и проверять полноту знаний и их
непротиворечивость. Источниками знаний могут быть книги, документы,
изобразительная продукция, устные тексты, получаемые от специалистов, и т.
п. Эти различные источники знаний надо уметь объединять между собой, что
приводит к сложным, интегрированным базам знаний. Отдельные базы знаний,
территориально разнесенные между собой, могут совместно использоваться
при решении задач. Так возникают распределенные базы знаний, образуются
сложные по конфигурации сети баз знаний. Уже сейчас такие сети хранения и
обработки
знаний
становятся
не
только
общенациональными,
но
и
международными, доступными любому специалисту.
Стремительное развитие баз знаний и процедур, связанных с их
заполнением, ведением и использованием, породило новую профессию, получившую название инженер по знаниям. Инженер по знаниям — специалист
высокого класса, владеющий системным программированием и методами
искусственного интеллекта. Без инженеров по знаниям практически нельзя
создать интеллектуальную систему. Как и программисты, инженеры по
знаниям становятся необходимой фигурой в эпоху новых информационных
технологий.
Продукция
Так называют один из распространенных в интеллектуальных системах
способов представления знаний (см. Представление знаний). Основная часть
продукции, называемая ядром продукции, имеет вид: "Если А, то В". Вместо А
и В могут стоять некоторые утверждения, факты, приказы и т. п. Примерами
ядер могут служить: "Если стало темно, то зажги электричество", "Если ты не
знаешь теоремы Пифагора, то найди ее в учебнике геометрии и выучи", "Если
нажать зеленую кнопку, то дверь откроется автоматически".
Как видно из этих примеров, ядро состоит из двух частей: посылки и
следствия. Если А (посылка) имеет место, то В (следствие) также реализуется
или может быть реализовано. Другими словами, знания, заключенные в ядрах
13
продукций, носят характер правил, описывающих некоторые процедуры.
Поэтому
продукции
часто
называют
продукционными
правилами,
а
интеллектуальные системы, в которых используются продукции, — системами,
основанными на правилах.
Download