Способность давать ответы на поставленные вопросы зиждется на знаниях. Если нет достаточных знаний, то "ответчик" - будь то человек или компьютер - не может дать правильный ответ.
Что же такое знания? Чем они отличаются от информации? Как представить знания в компьютере?
Информация - это конкретные данные, которые могут быть закодированы с помощью двоичных символов. Предложенная в 1940 г. К. Шенноном мера количества информации определяется числом бит (двоичных символов), необходимых для кодирования данных, несущих эту информацию. Такая формальная трактовка понятия "информация", учитывающая вероятности появления каждого символа, плохо согласуется с нашими интуитивными представлениями.
В самом деле, информационную ценность поступающих данных мы связываем с их неожиданностью и новизной. Если же мы получаем данные, которыми уже располагаем, то они фактически не несут никакой информации. Кроме того, шенноновская мера информации ничего не говорит о содержании (смысле) данных и том интересе, которые они могут для нас представлять.
"Что посеешь, то и пожнешь" - гласит пословица. Ее смысл многие скептики переносят и на возможности компьютеров в отношении обработки информации. Однако, вообще говоря, это неверно. В принципе, ничто не мешает компьютеру не только обрабатывать знания, но и создавать новые. Этот факт лежит в основе многих систем искусственного интеллекта и, в частности, экспертных систем.
Задолго до появления компьютеров английский ученый А. Тьюринг в своем докладе на Лондонском математическом обществе в 1947 г. пророчески заявил: "Предположим, мы снабдили компьютер некоторым начальным набором таблиц команд, построенных таким образом, чтобы в случае необходимости таблицы можно было модифицировать. Нетрудно представить, что, после того как компьютер поработает некоторое время, команды изменятся до неузнаваемости, но тем не менее следует считать, что компьютер по-прежнему выполняет необходимые вычисления. Возможно, это будут те результаты, на которые мы рассчитывали, запуская компьютер, но полученные гораздо более эффективным способом. Тогда придется признать, что такое достижение компьютера не было предусмотрено, когда мы закладывали в него первоначальные команды. Он - как ученик, который многое взял от своего наставника, но еще больше познал, работая самостоятельно. Когда произойдет такое, я думаю нам придется признать за машиной интеллект".
Возможности частичного изменения команд и программ закладываются во многие современные компьютеры. Благодаря этому они могут обучаться на опыте и модифицировать свою базу знаний.
Из чего же складываются знания? Обрабатывая данные, компьютер может путем преобразования информации формировать понятия и генерировать знания. Последние представляют собой определенным образом структурированную информацию, понятную человеку. Это может быть таблица, логическое описание данных или алгоритмическая модель. Обычно база знаний компьютера организуется в виде системы таблиц или понятий.
Примером может служить база знаний на основе "консультационной таблицы", созданная югославским ученым И. Братко для анализа и игры в шахматы в эндшпиле. Введя эту таблицу, автор (сам он шахматный мастер) с удивлением обнаружил, что компьютер в результате преобразований сформировал шесть новых правил. Они оказались простыми, совершенно оригинальными и более удобными, чем те, которые изложены в шахматных учебниках. Тем самым доказано, что компьютер может генерировать новые знания.
Еще раньше этот факт был установлен при моделировании на компьютере процесса доказательства теорем из различных разделов математики. При этом компьютер не только находил новые способы доказательства известных теорем, но и доказывал новые. Для автоматического доказательства теорем использовались различные стратегии поиска логического вывода.
Главный вывод, который вытекает из этих примеров, заключается в том, что компьютер может создавать знания не только для себя, но и для использования их человеком. Кроме того, и человек может закладывать знания в компьютер с целью автоматизации решения интеллектуальных задач. Эти принципиально новые возможности работы со знаниями нашли воплощение в экспертных системах. В качестве "сырья", подаваемого в такие системы, выступают знания экспертов, т. е. специалистов в той или иной области.
Когда создавались первые экспертные системы, то казалось, что они будут просто консультантами по определенным вопросам. Однако вскоре выяснилось, что из них можно извлечь больше знаний, чем в них было заложено. В частности, оказалось возможным уточнять и систематизировать экспертные знания, которые зачастую носят нечеткий, обрывочный и непоследовательный характер.
Экспертные системы обычно работают в двух режимах: идет формирование базы знаний и поиск ответов на вопросы.
В первом режиме центральную роль играет эксперт и алгоритмист - инженер по знаниям. При этом эксперт выступает в качестве "учителя" экспертной системы, а инженер по знаниям формализует и вводит в компьютер знания и опыт эксперта.
Во втором режиме с экспертной системой работает пользователь, извлекая из нее необходимые знания.
Обработка знаний и экспертные системы
В обоих режимах диалог с компьютером должен вестись на понятийном уровне, удобном для человека. Для этого нужны диалоговый интерфейс и специальные средства, позволяющие "культивировать" базу знаний, приспосабливая ее к нуждам и интересам пользователя.
Среди них могут быть разного рода разъяснения, подсказки и т. п. Эти средства, реализуемые системой объяснений, являются отличительной чертой экспертных систем. Для расширения базы знаний в процессе решения задач служит система обучения. Ее часто называют также системой накопления знаний.
Структура экспертной системы представлена на рис. на с. 110. Ее важнейшие компоненты - база знаний, автоматический ответчик (или советчик) и система объяснений. Кроме того, в нее входят диалоговый интерфейс и система обучения.
Рассмотрим основные функции этих компонент.
База знаний содержит факты в форме утверждений и правила вывода. В утверждениях реализуются знания эксперта. Для их представления в компьютере часто используется исчисление предикатов, семантические сети и графы. Правила вывода служат для порождения из имеющихся утверждений новых. Этим определяется принципиальное отличие "интеллектуальной" базы знаний от обычной базы данных.
Автоматический ответчик формирует ответ на поставленный пользователем вопрос или дает ему совет. Для этого зачастую используют средства поиска логического вывода или их модификации. Такие средства позволяют при необходимости воспроизвести способ "рассуждений" компьютера при формировании ответа.
Эта возможность используется в системе объяснения. Последняя призвана разъяснить пользователю, КАК и ПОЧЕМУ получен данный ответ. Ее функционирование обычно сводится к повторному прослеживанию тех шагов вывода, которые привели к данному ответу. Легкость, с которой это достигается, является веским аргументом в пользу экспертных систем, основанных на средствах поиска логического (или правдоподобного) вывода. Необходимость системы объяснения подчеркивают многие специалисты.
Исходя из сказанного, принцип действия экспертной системы можно условно представить в виде формулы:
Знания $ вывод --- ответ V объяснение
Эта формула отражает интеллектуальный характер экспертных систем. Для их "логического программирования" наиболее приспособлен язык ПРОЛОГ, включающий в себе исчисление предикатов и логический вывод.
Диалоговый интерфейс обеспечивает удобство общения эксперта, алгоритмиста или пользователя с системой. Система обучения накапливает знания в процессе решения задач. Это позволяет реализовать в экспертных системах давнюю мечту А. Тьюринга, выраженную в его словах: "Нам бы хотелось создать компьютер, который мог учиться на собственном опыте".
Подводя итог сказанному, уместно спросить: что же представляет собой экспертная система? Вот как отвечает на этот вопрос группа специалистов из Британского компьютерного общества: "Экспертная система рассматривается как результат создания в компьютере компоненты, основанной на знаниях и навыках эксперта в такой форме, которая позволяет системе дать разумный совет или принять разумное решение о функции обработки данных. Желательной дополнительной компонентой, которую многие считают фундаментальной, является способность системы по требованию объяснить свой способ рассуждений в виде, непосредственно понятном тому, кто задал вопрос. Достижение таких свойств обеспечивается самим методом программирования с использованием правил".
К прототипам современных экспертных систем можно отнести систему распознавания и прогнозирования градоопасности облаков (РПГО), разработанную автором в 1971 г. Эта система является частью действующей автоматизированной системы управления активными воздействиями на градоопасные облака. Она предназначена для автоматической классификации градоопасных и ливневых облаков с приблизительным прогнозом времени выпадения града. Результаты распознавания и прогноза используются далее для "расстрела" градоопасных облаков специальными снарядами или ракетами. Это делается с целью превращения градовых облаков в ливневые, для предотвращения ущерба охраняемым сельскохозяйственным территориям.
База знаний этой экспертной системы включает адаптивные решающие правила логико-вероятностного типа. Они формируются из предикатов, описывающих метеосиноптические и радиолокационные признаки облаков (температура, радиолокационная отражаемость, высота границ радиоэха и т. п.). Примером правила может служить утверждение вида
ЕСЛИ у исследуемого облака Р2<π2, Р6≥π6, Р3<π3, P4<π4, ТО (с вероятностью 1) это облако градоопасно.
Здесь Р1 - значения измеряемых признаков, πi - пороговые значения. Пороги назначаются экспертом или вычисляются по обучающему материалу, включающему 600 наблюдений облаков на Северном Кавказе и в Закавказье.
Метод синтеза решающих правил обеспечивает их полноту и непротиворечивость (в смысле безошибочности распознавания обучающего материала), минимальную сложность и робастность (способность принимать правильные решения при неточных измерениях параметров облаков). Предлагаемый подход приводит к простым, естественно интерпретируемым алгоритмам принятия классификационных решений, которые близки "логике" экспертов". Эти логические алгоритмы легко адаптируются к новым наблюдениям путем автоматического дообучения.
Удобная форма представления адаптивных решающих правил (например, на экране графического дисплея) - распознающие графы типа "дерево решений". Каждый узел на этом графе подсказывает, измерение каких признаков облаков нужно произвести на следующем шаге для быстрого принятия правильного решения.
Следует отметить, что именно медицина стала одной из первых и важнейших областей применения экспертных систем. Примерами могут служить система МИЦИН для диагностики некоторых инфекционных заболеваний и система ПАФФ для диагностики легочных заболеваний, созданные в США в середине 70-х гг. Практическое использование этих медицинских экспертных систем показало, что они надежно работают на уровне врачей-клиницистов.
Сегодня экспертные системы широко используются в различных областях знаний. Среди них - автоматизация программирования и проектирования, консультации и обучение, техническая диагностика, анализ и интерпретация химических, геологических и других данных, синтез систем планирования и управления, анализ риска в политике и военном деле, предупреждение аварийных ситуаций в атомных реакторах и т. п.
Интересно, что все большее внимание уделяется созданию экспертных систем для проектирования прикладных экспертных систем. Их можно назвать метасистемами. Доля экспертных систем в общем объеме прикладных систем искусственного интеллекта, по прогнозам специалистов, может составить в ближайшем будущем 90%.
Нам привычен афоризм "Знание - сила". Он имеет глубокий смысл и в компьютерной информатике. На примере экспертных систем мы видим, что компьютерная база знаний превращается в производительную силу, обеспечивая решение многих интеллектуальных задач.
Нас окружают колоссальные запасы знаний. Они сосредоточены в книгах, учебниках, журналах и других средствах "бумажной" информатики. Результаты многовековой интеллектуальной деятельности пылятся на книжных полках. Эти знания пассивны. Они нуждаются в анализе, систематизации и упорядочении. Для этого могут служить информационно-справочные и экспертные системы по различным отраслям знаний. Специалисты по компьютерной информатике предсказывают, что в скором времени появится компьютерная индустрия знаний. Она позволит создавать многие базы знаний, содержащие достоверные и точные знания.