Работа, связанная с получением знаний, имеющихся у конкретного лица, называется извлечением знаний, в инженерии знаний эта работа имеет немаловажное значение. Необходимостью извлечения знаний специалиста разработчиком экспертной системы нельзя пренебрегать не только из-за того, что полностью автоматизировать этот процесс необычайно сложно, но и из теоретических соображений. Рассмотрим проблемы извлечения знаний, исходя из этой точки зрения, и некоторые методы, предложенные к настоящему времени для извлечения знаний.
ИНЖЕНЕРИЯ ЗНАНИЙ
Приобретение знаний в узком смысле слова — это работа по наполнению баз знаний. В этом случае данными являются форма представления знаний и методы их использования (например, формулы выводов).
Приобретение знаний в этом смысле сложная работа, на практике в ходе этой работы часто выявляются недостатки базового понимания проблемной области, в которой будет применяться система, недостатки формы представления знаний и методов их использования. Это также следствие отсутствия теории. Поэтому на основе существующих баз данных осуществляют пересмотр понятий проблемных областей и повторное изучение систем, включая базы знаний. Эту работу, выполняемую в дополнение к приобретению знаний в узком смысле, можно назвать приобретением знаний в широком смысле слова. На практике эта работа тесно связана со всем процессом разработки экспертных систем — от возникновения замысла до ее реализации и совершенствования. Процесс организации знаний в базу и построения экспертных систем называют также инженерией знаний.
УРОВНИ ПРИОБРЕТЕНИЯ ЗНАНИЙ
Существует по меньшей мере три уровня методов оснащения программ экспертными знаниями.
Первый уровень (наиболее простой). Это этап создания алгоритма, взятого из литературы или придуманного специалистом или проектировщиком системы, и преобразование его в программу самими проектировщиками. На практике трудноосуществим.
Второй уровень. Программа может заполнить пробелы в знаниях, например из литературы, описывая объекты или формируя этапы (план) работ.
Третий уровень. Программа самостоятельно приобретает алгоритмические знания, «читая» книги. Разумеется, способность «чтения» книг, как мы увидим из примеров систем второго уровня, подразумевает несовершенство того, что мы называем книгой. Это интеллектуальные способности высокого уровня, которые позволят не только каким-то образом усвоить содержание книг, подобно тому как загружаются программы в компьютер, но и использовать информацию как подсказку или совет.
В настоящее время большинство компьютерных программ—это программы первого уровня. Например, в случае программ численных расчетов или диагностических систем, базирующихся на логических операциях, проектировщики программ, включая тех, кого называют системными аналитиками, должны путем изучения теорий в проблемной области, анализа работ или через разговоры со специалистами сами преобразовывать знания в программы.
Наиболее просто программировать то, что заранее систематизировано и для чего определены правила обработки, например, коммерческие расчеты на предприятиях.
Для того, что не систематизировано, не поддается описанию, например для стратегии игр на досках (шахматы, го и др.), невозможно заранее определить алгоритм, гарантирующий решение. Поэтому проектировщик программ должен представить разрозненные знания в виде программы, которую можно выполнить. Стратегию игры в шахматы, как и других игр на доске, часто представляют в виде дерева, но такой алгоритм основан на способности человека к перебору вариантов, и для его реализации в программе проектировщику придется интерпретировать и детализировать описания этих вариантов. К первому уровню принадлежит также программа Dendral для интерпретации масс-спектрограмм.
Усовершенствованная программа Meta Dendral относится ко второму уровню, поскольку она расширяет теорию стабильности молекулярных соединений, осуществляя открытие конкретных соединений. Но если бы программа сама изучала учебники по химии и развивалась, оперируя новыми группами химических соединений, то она принадлежала бы к третьему уровню.
Процесс получения знаний от человека с целью их передачи программам первого уровня называется извлечением знаний. Что считать извлечением знаний на втором и третьем уровне? Что такое знания? Что значит «хорошо знать»? Эти вопросы—одни из основных в теории мышления.
ИЗВЛЕЧЕНИЕ ЗНАНИЙ
В чем же особенность извлечения знаний для экспертных систем? Ответ можно получить, ответив на другой вопрос: «Откуда, что и как извлекать?». Источниками знаний в общем случае можно считать эксперта, разработчика системы и пользователя. На практике один и тот же человек может играть несколько ролей. Вопрос «Что извлекать и откуда?» трудно отделить от вопроса «Как?», но для того, чтобы извлечение знаний не было сведено к простой процедуре, прежде всего необходимо ответить на первый вопрос. Ответ на второй вопрос должна дать соответствующая техника, моделирование и планирование всего процесса извлечения знаний.
