- •1.1. Данные и знания
- •Классификация по глубине
- •1.3. Этапы разработки экспертных систем
- •Выбор подходящей проблемы
- •Разработка прототипной системы
- •Доработка прототипа до промышленной экспертной системы
- •Поддержка системы
- •1.4. Коллектив разработчиков
- •Эксперт
- •Программист
- •Глава 2. Теоретические аспекты извлечения знании
- •Процедурный слои
- •Когнитивный слой
- •Понятийная структура
- •Словарь пользователя
- •Внутренняя согласованность
- •Системность
- •Объективность
- •Историзм
- •Описание и обобщение фактов
- •Установление связей и закономерностей
- •Глава 3. Когнитивная психология в инженерии знании
- •3.2. Семантическая репрезентация знании
- •О множественной репрезентации понятий
- •3.4. Восприятие информации
- •Перцептивные процессы
- •Семантическое кодирование
- •3.5. Организация памяти
- •Глава 4. Методы извлечения знаний Кто скажет, тот не знает,
- •4.2. Пассивные методы
- •Наблюдения
- •Анализ протоколов “мыслей вслух”
- •6. Расшифруйте записи лекции в тот же день.
- •8. Рационально используйте перерывы в лекции для 'подытоживания про-длущанного.
- •12. Считаете ли Вы, что для лечения ангины эффективен эритромицин?
- •13. Какие дозы эритромицина Вы обычно рекомендуете? При отрицательном ответе на 12-й вопрос 13-й является лишним. Его можно избежать, усложнив вопрос.
- •12. Применяете ли Вы эритромицин для лечения ангины и если да, то в
- •4.5. Экспертные игры
Гл а ва 1. ОСНОВЫ ИНЖЕНЕРИИ ЗНАНИЙ
Что такое знания? Не что иное, как записанный опыт.
Т. Карлейль
1.1. Данные и знания
Инженерия знаний — молодая ветвь теории искусственного интеллекта, изучающая процессы и методы получения, представления и формализации знаний для разработки экспертных систем (ЭС). Что такое “знание”, как его формализовать и представить в ЭВМ? Эти вопросы с середины 70-х годов становятся центральными в проблеме искусственного интеллекта (ИИ). Если проследить за сменой парадигм в этой области [163]: нейронные сети (50-е годы), эвристический поиск (б0-е годы), представление знаний плюс логическое рассуждение (70—80-е годы), то увидим, что последняя прочно удерживается уже почти 15 лет, и именно благодаря ей ИИ из академической науки превратился в одно из наиболее перспективных направлений коммерческой информатики.
За эти годы специалистами предложены десятки различных толкований понятия “знание”. Попытаемся обобщить различные представления и дать рабочее определение именно в контексте разработки ЭС. Определение знаний вне контекста ИИ звучит следующим образом: “Проверенный практикой результат познания действительности, верное её отражение в мышлении человека”. Это определение, однако, не проясняет особенностей знаний, отличающих компьютерные системы, основанные на знаниях, от традиционных прикладных программ.
Один из видных специалистов ИИ Ньюэлл [199] считает, что сейчас мы ступили на принципиально новый уровень общения с ЭВМ — уровень знаний. Исторически сложилась следующая последовательность уровней общения с ЭВМ. В 50-е годы для того чтобы решить задачу на ЭВМ, необходимо было написать программу в цифровых машинных кодах, т. е. максимально приблизиться к машинному представлению о данных и операциях над ними. Затем, в 60-е годы, появились языки программирования или алгоритмические языки, которые позволяли вводить информацию о задаче и способе ее решения на некотором более “читаемом”, т.е. символьном, языке. И наконец, в конце 70-х годов, благодаря успехам ИИ и программирования, появилась возможность вводить в машину непосредственно знания о предметной области и исходные условия задачи, а машина стала способна сама находить необходимые решения. Знания вводятся в этом случае на естественном языке (точнее, на его ограниченном подмножестве).
--7 --
Рис. 1.1. Формы знаний при разработке ЭС
Сложность понятия “знание” заключена в множественности и многообразии его материального носителя. Можно выделить пять форм знаний:
Z1 —знания в памяти человека;
Z2—материализованные знания (монографии, статьи учебники, и т. п.);
Z3 — поле знаний (полуформализованное описание Zi и Za);
Z4—знания на языках представления знаний (формализация Z3);
Z5 — база знаний в ЭВМ (на машинных носителях информации).
Предлагаемую концепцию иллюстрирует рис. 1.1. Человек часто решает трудные интересные проблемы, используя не четкие алгоритмы, а исключительно свой опыт в форме натопленных знании (Zi); часть своего опыта человечество материально запечетлевает в форме книг, статей, заметок, таблиц (Zz). Совокупность Zi и Za образует знания о предметной области, не связанные с машинной обработкой. Существуют разные определения Zi и Za. Можно называть Zg канонизированными знаниями [30] поскольку это признанная специалистами часть Zi, можно — концептуальными (как в [68]).
В целом в ЭС используется “экстракт” того, что удалось извлечь из Zi и Za, Zi и Zz. При этом соотношение извлеченного эмпирического опыта Zi и его формализованной теоретической основы из книг Z'z .в разных областях различно.
-- 8 --
Принято считать, что чем больше вес Zi в 'процессе принятия решения, тем 'более •пригодна для внедрения ЭС предметная область. Для разработки Э'С принципиально важным оказывается разработка поля знаний 2з, когда создается 'некоторое полуформализованное описание основных понятий предметной области и связей между ними. Это описание может иметь форму рисунка, таблицы, схемы, сети, диаграммы и т. д. (см. гл. 5). В дальнейшем ноле знаний переписывается на некотором языке представления знаний — так получают модель знаний Zi,.
Современные теории ИИ предоставляют разработчикам много возможностей для описания базы знаний на стадии Zi. математическая логика 1-го порядка [83, 116, 153]; продукционные языки типа OPS5 [71, 202]; семантические сети и волновые языки [139, 152]; фреймы и языки типа FRL [8, 169]; объектно-ориентированные язьжи, 'например SMALLTALK [148] 'и др.
После того как разработчики ЭС создали модель 2.^ на некотором ЯПЗ, можно переходить к реализации базы знаний (БЗ) с помощью соответствующих программных средств. Так возникает форма Z5 — БЗ.
Следует сразу ограничить сферу предметных областей, где имеет смысл .выделять знания. Это области с преобладанием эмпирического знания, где накопление фактов опережает развитие теории (медицина, геология, юриспруденция, финансы и т. д.). Такие хорошо 'структурированные области, как 'математика, физика, теоретическая ^механика, имеют 'в осно.ве 'богатый математический аппарат для описания своих закономерностей, .который позволяет проводить машинное 'моделирование с использованием традиционного алгоритмического программирования (без выделения уровня знаний). Знания важны там, где определения 'размыты, понятия 'меняются, ситуации зависят от множества контекстов, где велика неопределенность, нечеткость информации.
В качестве рабочего примем 'следующее определение. Знания — это основные закономерности предметной области, позволяющие человеку решать конкретные производственные, научные и другие задачи, т. с. факты, понятия, взаимосвязи, оценки, правила, эвристики (иначе фактические знания}, а также стратегии принятия решения в этой области ('иначе стратегические знания).
Чем же знания отличаются от данных? По аналогии можно выделить ряд форм данных:
Di — результат наблюдений над объектами (например, взгляд на термометр и фиксация температуры воздуха) или данные в памяти (например, дата рождения);
Да — фиксация данных на материальном носителе — таблицы, графики и т. д. (например, данные о температуре воздуха в дневнике наблюдений);
ds—модель данных—некоторая схема описания, связывающая несколько объектов (например, “t° воздуха—дата измерения”);
-- 9 --
Dt — данные на языке описания данных;
Ds—база. данных на машинных 'носителях информации. Традиционно выделяют только три уровня, например, [138J:
“внешний — логический — физический”: Di—Ds—D^. Аналогичная триада для знаний: Zi—Zs—Zs.
Таким образом, у знаний и данных 'много общего, однако знания обычно имеют 'более сложную 'структуру. Их иногда называют хорошо структурированными данными или 'метаданными или данными о данных,
Можно отметить еще один аспект, отражающий различие данных и знаний '[113]. Любое понятие, используемое человеком” имеет как 'бы две 'стороны — экстенсиоиал и ннтенсионал. Экстен-сионал — набор конкретных фактов, 'соответствующих данному понятию. Интенсионал — определение или описание некоторого понятия через его свойства. Например, для понятия “поликлиника” экстенсионал есть набор типа: “детская поликлиника, взрослая поликлиника, служебная поликлиника, поликлиника № 85 и т. я.”, а инсенсионал .'выглядит, например, так: “медицинское учреждение для оказания амбулаторной помощи по 'месту жительства или работы”.
Интенсионал отделяет знания от данных, которые всегда задаются экстенсионально. Сила интенсионала в его точности, выразительности и правильно выделенных свойствах. Широко известно высказывание Платома, определившего человека как “животное на двух ногах, лишенное 'перьев”. И -его конфуз, когда в ответ Диоген 'принес ему ощипанного 'петуха...
В [113] выделены еще пять свойств, отличающих знания:
1) внутренняя интерпретируемость, 2) рекурсивная структурируе-мость, 3) взаимосвязь единиц, 4) наличие семантического пространства с метрикой, 5) активность. Эти свойства касаются уровня 7.\ •И связаны со 'сложной природой знания, 'изучение которой происходит на стыке психологии, философии, лингвистики, кибернетики и физиологии ('см. гл. 3).
Для того чтобы знакомство читателя с терминологией инженерии з'нан”й было более 'полным, необходимо упомянуть о способах классификации знаний (табл. 1.1).
Таблица 1.1
|
Знания |
|||
Модель представлений знаний |
Классификация по “глубине” |
Классфикзция по “жесткости” |
||
|
Глубинные |
поверхностные |
мягкие жесткие |
|
Логика |
|
|
|
|
Продукции Фреймы Семантические сети Объектно-ориентированнпые |
+ + |
+ + |
; + + |
+ + + |
Языки |
+ |
— |
+ |
• + |
-- 10 --
