Глубинные и поверхностные знания
Поскольку назначение компьютера наиболее полно выражает-
ся в терминах функций, которые он выполняет, функциональная
иерархия должна соответствовать наиболее глубокому уровню
представления знаний о предметной области. Глубинные знания -
это совокупность основных закономерностей, аксиом и фактов о
конкретной предметной области. В представлении же с помощью
поверхностных знаний структура предметной области выглядит как
иерархия составляющих ее физических компонентов. Содержание
как глубинных, так и поверхностных знаний полностью обусловли-
вается природой предметной области и видом решаемых задач.
Глубинные знания отражают наиболее общие принципы, в соответ-
ствии с которыми развиваются все процессы в предметной области,
и свойства этих процессов. Поверхностные знания представляют
собой эвристики и некоторые закономерности, устанавливаемые
опытным путем и используемые при отсутствии общих теорий и
методов.
Заметим, что человек в процессе мышления не различает упо-
мянутые выше виды иерархий и имеет равные возможности при-
менять как поверхностные, так и глубинные знания при решении
Упоминаемые здесь логики получили название псевдофизических. С их
применением для представления знаний и вывода решений можно ознакомиться по
кн.: Поспелов Д.А. Ситуационное управление. - М.: Наука, 1986. - Прим.
персе.
107
задач. Эксперт опирается в своей работе на все имеющиеся у него
знания, не отдавая себе отчета в том, к какому типу они отно-
сятся. При построении же базы знаний, напротив, нужно очень
четко представлять, какого типа знания и какого вида иерархию
вы в нее включаете.
Для того чтобы лучше уяснить различия между глубинными и
поверхностными знаниями, представьте себя в роли инженера зна-
ний, который работает вместе с врачом над созданием экспертной
системы, предназначенной для оказания помощи в постановке ме-
дицинского диагноза. Присутствуя при беседах врача с пациентами
(и просматривая затем видеозаписи таких бесед), вы проследили
связь между результатами лабораторных анализов, жалобами па-
циентов и различными видами заболеваний. Допустим, что вас не
интересует путь, которым врач пришел к тому или иному выводу,
вы лишь механически включаете в продукционные правила исход-
ные данные (посылки) и вытекающие из них заключения. Это обе-
спечивает возможность системе, основанной на знаниях, прини-
мать в одинаковых ситуациях идентичные решения. Однако при-
менять такую систему в медицинской практике будет весьма опас-
но, да и пациенты вряд ли будут ей доверять. Это объясняется тем,
что в ней содержатся только поверхностные знания, поскольку при
построении системы вы не включили в нее никаких теоретических
знаний, полученных врачом в институте, и не отразили его прак-
тический опыт.
Аналогичный эффект вы получите, если при построении экс-
пертой системы для игры в покер будете, наблюдая за действиями
опытного игрока, запоминать только решения, которые он прини-
мает при наличии той или иной комбинации карт с тем, чтобы
воспроизвести их в компьютере. Эти знания также являются по-
верхностными. Глубинные же знания, позволяющие игроку прини-
мать правильные решения, вновь остались " за кадром".
Для получения глубинных знаний эксперт должен понять вну-
тренние механизмы, действующие в предметной области, и прежде
всего основные закономерности, которые обусловливают возмож-
ность принятия правильных решений. Существуют предметные об-
ласти, где они до сих пор не выявлены. В таких случаях следует
прибегать к помощи эвристик, т.е. ограничиваться применением
поверхностных знаний.
Сопоставление методов представления
и реализации знаний
Инженер знаний очерчивает границы предметной области и
формализует знания о ней. Модель представления знаний необхо-
дима для реализации перехода от содержательного описания пред-
метной области к форме, допускающей его включение в базу зна-
ний экспертной системы (см. рис. 5.1). База знаний игры " Отгадай
108
животное", упоминавшейся в гл. 4, построена на основе продук-
ций. Для реализации данной базы знаний средствами языка Про-
лог потребуется другой тип представления - логика предикатов.
Это означает, что одно представление знаний может быть преобра-
зовано в другое. Запись содержания базы знаний средствами языка
Пролог называется ее реализацией.
Если вы будете применять какое-либо инструментальное сред-
ство для построения экспертной системы, то сможете уловить
различие между содержанием знаний (т.е. представлением знаний)
и формой хранения и использования знаний (т.е. реализацией).
При работе с системой Expert-Ease вы описываете знания в виде
матрицы, содержащей примеры исходных ситуаций (условий) и
соответствующих им решений. Затем соответствующая программа
системы компилирует эти данные во внутреннее представление и
загружает их в базу знаний, после чего систему можно исполь-
зовать для решения новых задач. Способ реализации базы знаний
в компьютере часто называют архитектурой системы, чтобы отли-
чать его от модели представления знаний.
ПРИОБРЕТЕНИЕ ЗНАНИЙ
Заключительным этапом построения экспертной системы яв-
ляется собственно приобретение знаний и загрузка их в базу
знаний. Этот этап начинается с разбиения задачи на максимально
возможное число подзадач. Инженер знаний должен выяснить у
эксперта, каким образом лучше всего произвести такое разбиение,
а также выявить основные приемы, которые эксперт применяет
при анализе и решении задач.
В своей деятельности эксперт обычно использует профессио-
нальный язык, лексика которого определяется спецификой пред-
метной области. Этот язык часто оказывается непригодным для
описания способа решения задачи в терминах, позволяющих его
реализовать в экспертной системе. Но тем не менее не следует зас-
тавлять эксперта изучать модели представления знаний, принципы
построения экспертных систем или какие-нибудь другие элементы
искусственного интеллекта, что входит в компетенцию инженера
знаний. От эксперта же требуется лишь умение решать проблем-
ные задачи из соответствующей предметной области.
Процесс приобретения знаний носит скорее циклический, чем
линейный характер и структурирован хуже, чем любая другая дея-
тельность, выполняемая при построении экспертной системы. Вна-
чале инженер должен получить от эксперта как можно больше
знаний о каком-либо фрагменте или свойстве предметной области.
Затем знания подвергаются анализу, в ходе которого в них может
выявиться много несогласованностей. В таком случае знания моди-
фицируются и расширяются, после чего опять проверяется их не-
109
противоречивость. Таким образом поэтапно наращиваются возмож-
ности экспертной системы в решении проблемных задач.
Разработку системы, основанной на знаниях, следует
проводить в следующей последовательности:
1. Выберите задачу, характер которой дает возможность
применить для ее решения технологию экспертных систем.
2. Определите точно цель решения задачи.
3. Вникните как можно глубже в существо задачи.
4. Установите подцели, разбив задачу на подзадачи.
5. Выявите специфические особенности предметной области.
6. Найдите эксперта, специализирующегося в выбранной пред-
метной области, и заручитесь его согласием оказать вам помощь в
разработке системы, основанной на знаниях.
7. Участвуя вместе с экспертом в решении нескольких прикла-
дных задач, выявите приемы, которые он применяет. Подробно их
опишите.
8. Выберите программные средства, необходимые вам для соз-
дания системы. Этот выбор будет зависеть от типа решаемой зада-
чи, ваших финансовых возможностей и сложности предметной об-
ласти. Выберите технические средства, на которых будет работать
ваш программный инструментарий.
9. Постройте лабораторный прототип экспертной системы,
позволяющий успешно справиться с примерами тех задач, которые
вы решили совместно с экспертом.
10. Приступите к созданию базы знаний. Выявите объекты
предметной области, взаимосвязи между ними, виды иерархий,
разбейте объекты на классы. Структурируйте базу знаний в соот-
ветствии с представлением эксперта о строении предметной об-
ласти.
11. Выполните необходимое число циклов по наращиванию
базы знаний, каждый из которых включает добавление знаний,
проверку их непротиворечивости и модификацию с целью
устранения обнаруженных несогласованностей.
12. Определите, какие инструментальные средства вам следует
использовать для создания системы, и приобретите их.
13. Разработайте документацию на систему.
14. С первых шагов реализации проекта стремитесь к тому,
чтобы построить хотя и ограниченную по своим возможностям, но
правильно работающую модель, что позволит вам завоевать дове-
рие эксперта, для чего используйте при разработке модульный
подход.
При опросе эксперта инженер знаний должен исключить из
диалога такие обороты, как ЕСЛИ - ТО, поскольку их применение
предполагает, что инженер строит примеры задач, а затем запоми-
нает выданные экспертом решения. Однако такой способ дает воз-
можность получить только поверхностные знания. Более продук-
тивным считается подход, основанный на построении модели пред-
110
метной области. Если это ваш первый опыт разработки экспертной
системы, то вам следует выбрать задачу, сущность которой абсо-
лютно ясна, и вы легко определите, являются ли достаточными
имеющиеся у вас технические и финансовые средства. Лучше не-
дооценить возможности эксперта, чем обмануться в своих ожида-
ниях. Если вы разработали предложения по созданию экспертной
системы, то воспользуйтесь решенными ранее задачами для оценки
вероятной стоимости и времени, необходимых для реализации ва-
ших предложений. Постройте прототип системы, который абсолют-
но правильно решает задачи в небольшой предметной области, -
это расположит к вам эксперта, а затем постепенно раздвигайте ее
границы.
УПРАЖНЕНИЯ
1. Предположим, что вы решаете прикладную задачу поиска неисправностей
в автомобиле.
а) Какую стратегию следует применять эксперту для приобретения знаний,
необходимых для решения этой задачи?
б) Какие способы следует применять инженеру знаний для приобретения
необходимых сведений и разработки экспертной системы?
2. В чем способ построения экспертной системы совпадает со способом
разработки обычных программ? Чем они различаются?
3. Как можно развивать возможности экспертной системы? Определите пути
развития экспертной системы, предназначенной для поиска неисправностей в
автомобиле. Что в данной задаче поддается измерению, а что - нет?
4. Можете ли вы привести пример прикладной задачи, для решения которой в
экспертную систему достаточно заложить лишь поверхностные знания? Как
вопросы соотношения глубинных и поверхностных знаний связаны с проблемой
обучения системы? Может ли обучение системы начинаться с уровня поверхностных
знаний? Для обоснования ответа приведите конкретный пример.
Глава 6
ЯЗЫК ФОРТ - МОЩНОЕ СРЕДСТВО
ПОСТРОЕНИЯ ЭКСПЕРТНЫХ С И СТЕМ
ЧАСТЬ 2