Архитектура экспертных систем
Экспертной системой называется программная система, имитирующая деятельность эксперта-человека при решении ограниченного числа (как правило, одной) слабоструктурированных задач на основе логической обработки формализованных знаний о данной предметной области. Экспертные системы - один из немногих видов систем искусственного интеллекта, которые получили широкое распространение и нашли практическое применение.
Под слабоструктурированными будем понимать задачи, которые обладают одним или несколькими из следующих свойств.
1. Невозможна строгая математическая постановка задачи.
2. Не существует алгоритмического решения задачи или оно существует, но ограничения ресурсов (время, память) не позволяют получать его за приемлемые сроки.
3. Неполнота и противоречивость данных и знаний о предметной области.
Программная система, обеспечивающая накопление экспертных знаний в ЭС в виде формализованных описаний, называется инструментом для создания ЭС.
Формализованное описание (ФО) - это совокупность описаний эвристик (правил), свойств и закономерностей предметной области на языке, понятном конечному пользователю, пригодная для хранения и обработки на ЭВМ [6]. ФО строятся в соответствии со строгими правилами, соблюдение которых гарантирует возможность извлечения из них алгоритма решения задачи и выполнение этого алгоритма на ЭВМ с помощью универсальной (для заданного класса задач) процедуры.
От других программ ЭС отличаются по следующим признакам:
1) компетентность - в конкретной предметной области ЭС должна достигать того же уровня, что и эксперты - люди, при этом она должна пользоваться теми же эвристическими приемами, также глубоко и широко отражать предметную область;
2) символьные рассуждения - знания, на которых основана ЭС, представляют в символьном виде понятия реального мира, рассуждения также происходят в виде преобразований символьных наборов;
3) глубина - экспертиза должна решать глубокие, нетривиальные задачи, отличающиеся сложностью либо в плане сложности знаний, которые экспертная система использует, либо в плане их обилия, это не позволяет использовать полный перебор вариантов как метод решения задачи и заставляет прибегать к эвристическим, творческим, неформальным методам;
4) самосознание - ЭС должна включать в себя механизм объяснения того, каким образом она приходит к решению задачи.
ЭС, являясь специфическим программным продуктом, нашли широкое применение при решении многих частных задач в различных сферах управления. Существуют ЭС по военному делу, геологии, инженерному делу, информатике, космической технике, математике, медицине, метеорологии, промышленности, сельскому хозяйству, управлению, физике, химии, электронике, юриспруденции и т.д.
Экспертные системы, осуществляющие прогноз, определяют вероятные последствия заданных ситуаций. Примерами служат прогноз ущерба урожаю от некоторого вида вредных насекомых, оценивание спроса на нефть на мировом рынке, прогнозирование места возникновения следующего вооруженного конфликта на основании данных разведки. Системы прогнозирования иногда используют имитационное моделирование, т.е. программы, которые отражают причинно-следственные взаимосвязи в реальном мире, чтобы сгенерировать ситуации или сценарии, которые могут возникнуть при тех или иных входных данных. Эти возможные ситуации вместе со знаниями о процессах, порождающих эти ситуации, образуют предпосылки для прогноза. Специалисты по искусственному интеллекту пока что разработали сравнительно мало прогнозирующих систем, возможно потому, что очень трудно взаимодействовать с имитационными моделями и создавать их.
Экспертные системы выполняют диагностирование, используя описания ситуаций, характеристики поведения или знания о конструкции компонентов, чтобы установить вероятные причины неправильного функционирования диагностируемой системы. Примерами служат определение причин заболевания по симптомам, наблюдаемым у пациентов; локализация неисправностей в электронных схемах и определение неисправных компонентов в системе охлаждения ядерных реакторов. Диагностические системы часто являются консультантами, которые не только ставят диагноз, но и помогают в отладке. Они могут взаимодействовать с пользователем, чтобы оказать помощь при поиске неисправностей, а затем предложить порядок действий по их устранению. Медицина представляется вполне естественной областью для диагностирования, и действительно, в медицинской области было разработано больше диагностических систем, чем в любой другой отдельно взятой предметной области. Однако в настоящее время многие диагностические системы разрабатываются для приложений к инженерному делу и компьютерным системам.
Экспертные системы, выполняющие проектирование, разрабатывают конфигурации объектов с учетом набора ограничений, присущих проблеме. Примерами могут служить генная инженерия, разработка СБИС и синтез сложных органических молекул.
Экспертные системы, занятые планированием, проектируют действия; они определяют полную последовательность действий, прежде чем начнется их выполнение. Примерами могут служить создание плана применения последовательности химических реакций к группам атомов с целью синтеза сложных органических соединений или создание плана воздушного нападения, рассчитанного на несколько дней, с целью нейтрализации определенного фактора боеспособности врага.
Экспертные системы, выполняющие наблюдение, сравнивают действительное поведение с ожидаемым поведением системы. Примерами могут служить слежение за показаниями измерительных приборов в ядерных реакторах с целью обнаружения аварийных ситуаций или оценка данных мониторинга больных, помещенных в блоки интенсивной терапии. Наблюдающие экспертные системы подыскивают наблюдаемое поведение, которое подтверждает их ожидания относительно нормального поведения или их предположения о возможных отклонениях. Наблюдающие экспертные системы по самой своей природе должны работать в режиме реального времени и осуществлять зависящую как от времени, так и от контекста интерпретацию поведения наблюдаемого объекта.
Экспертные системы, выполняющие обучение, подвергают диагностике, «отладке» и исправлению (коррекции) поведение обучаемого. В качестве примеров приведем обучение студентов отысканию неисправностей в электрических цепях, обучение военных моряков обращению с двигателем на корабле и обучение студентов-медиков выбору антимикробной терапии. Обучающие системы создают модель того, что обучающийся знает и как он эти знания применяет к решению проблемы. Системы диагностируют и указывают обучающемуся его ошибки, анализируя модель и строя планы исправлений указанных ошибок. Они исправляют поведение обучающихся, выполняя эти планы с помощью непосредственных указаний обучающимся.
Экспертные системы, осуществляющие управление, адаптивно руководят поведением системы в целом. Примером служит управление производством и распределением компьютерных систем. Управляющие экспертные системы должны включать наблюдающие компоненты, чтобы отслеживать поведение объекта на протяжении времени, но они могут нуждаться и в других компонентах для выполнения любых или всех из уже рассмотренных типовзадач: интерпретации, прогнозирования, диагностики, проектирования, планирования, отладки, ремонта и обучения. Типичная комбинация задач состоит из наблюдения, диагностики, отладки, планирования и прогноза.
Можно сделать следующие выводы из накопленного к настоящему времени опыта применения ЭС.
1. Эффективность ЭС при решении задач в первую очередь определяется составом знаний, которыми она обладает, и только во вторую очередь - используемыми ею процедурами логической обработки знаний. Поэтому инструмент для создания ЭС должен предоставлять разработчикам возможность приобретать знания.
2. Знания, закладываемые в ЭС, отражают субъективное восприятие предметной области экспертом-человеком и являются в основном эвристическими, неполными и противоречивыми. Следовательно, ЭС должна обладать способностью эффективно использовать экспертные знания.
3. В силу специфики решаемых задач и методов их решения обеспечить доверие к полученным результатам (и следовательно, добиться реального применения ЭС на практике) можно только путём разъяснения пользователям в доступной форме причин, на основании которых получены данные результаты. Говоря другими словами, ЭС должна обладать способностью объяснять свои действия, отвечая на вопросы пользователя.
Отмеченные обстоятельства предопределяют общую архитектуру построения ЭС. Рассмотрим архитектуру ЭС в функциональном аспекте (с точки зрения декомпозиции системы на функционально независимые подсистемы). Архитектура ЭС, с точки зрения функционального аспекта, представлена на рис. 5.1.
Рис. 5.1. Архитектура экспертной системы (функциональный аспект)
Подсистема общения (ПОщ) предназначена для обеспечения диалогового взаимодействия пользователей (операторов, инженера по знаниям (когнитолога), администратора системы, экспертов) с системой на языке профессиональной лексики. Это достигается, например, средствами разработки сценариев диалога и организацией связи между сценариями и областью информационных запросов или более сложными способами. В ПОщ производятся как трансляция предложений естественного языка (или другого проблемно-ориентированного языка непроцедурного типа) на внутренний язык представления знаний (ЯПЗ) в данной ЭС, так и обратные преобразования. В качестве внутренних языков в ЭС чаще всего используются языки продукционного типа, реже - логические языки (например, Пролог) и языки семантических систем.
Описание задачи (запроса) пользователя на выбранном ЯПЗ поступает в подсистему логического вывода (ПЛВ или решатель), которая, используя формализованные знания и данные, генерирует рекомендации по решению искомой задачи. Основу базы знаний ЭС составляют правила. В ПЛВ реализуется некоторая стратегия выбора актуальных правил, тесно связанная с методом представления знаний в ЭС и характером решаемых задач.
Подсистема объяснения (ПОн) обеспечивает формирование ответов на запросы пользователей о том, почему и как получен тот или иной результат решения. Все объяснения даются (подсистемой общения) на языке профессионального общения. Поэтому основу подсистемы объяснения составляют процедуры интерпретации известных ЭС данных (фактов) и использованных (в процессе логического вывода решения) правил на внутренний ЯПЗ.
Функция подсистемы приобретения знаний (ППЗ) состоит в программной поддержке процесса извлечения знаний о предметной области. Как правило, эти знания отсутствуют в специальной литературе и приобретаются экспертом в результате длительного опыта. Процесс передачи знаний от эксперта системе является наиболее узким местом при проектировании ЭС.
Подсистема управления базой знаний (ПУБЗ) является основным информационно-преобразующим элементом системы, обеспечивающим доступ остальных подсистем к знаниям и данным.
5.3. Модели представления знаний, применяемые
в экспертных системах
Основной особенностью интеллектуальных систем является то, что они основаны на знаниях, а вернее, на некотором их представлении.Подзнаниями будем понимать хранимую (с помощью ЭВМ) информацию, формализованную в соответствии с некоторыми правилами, которую ЭВМ может использовать при логическом выводе по определенным алгоритмам. Наиболее фундаментальной и важной проблемой является описание смыслового содержания проблем самого широкого диапазона, т.е. должна использоваться такая форма описания знаний, которая гарантировала бы правильную обработку их содержимого по некоторым формальным правилам. Эта проблема называется проблемой представления знаний.
К типичным моделям представления знаний относятся следующие: логическая модель, продукционная модель, семантическая сеть, фреймовая модель и др.
Логическая модель представляет собой систему логических утверждений, набор аксиом, выражающих закономерности некоторой предметной области и составляющих логические знания.
Продукционная модель содержит в себе: рабочую память (хранилище данных), базу правил (программу), механизм вывода (управление). Продукционные правила - наиболее простой способ, представления знаний. Он основан на представлении знаний в форме правил, структурированных в соответствии с образцом «ЕСЛИ - ТО». Часть правила «ЕСЛИ» называется посылкой, а «ТО» - выводом или действием. Правило в общем виде записывается так:
ЕСЛИ A1, A2, ...,An, ТО В.
Такая запись означает, что «если все условия от A1 до Аn являются истинными, то В также истинно» или «когда все условия от А1 до Аn выполняются, то следует выполнить действие В».
Например, рассмотрим следующее правило
ЕСЛИ (1) у является отцом х
(2) z является братом у
ТО z является дядей х
В данном случае число условий п = 2.
В случае п = 0 продукция описывает знание, состоящее только из вывода, т.е. факт. Примером такого знания является факт «атомная масса железа 55,847 а.е.м».
Переменные х, у и z показывают, что правило содержит некое универсальное, общее знание, абстрагированное от конкретных значений переменных. Одна и та же переменная, использованная в выводе и различных посылках, может получать различные конкретные значения.
Механизм вывода позволяет на основе знаний, имеющихся в базе знаний, получать новые знания. Рассмотрим следующий пример. Положим, что в базе знаний вместе с описанным выше правилом содержатся и такие знания:
ЕСЛИ (1) z является отцом х
(2) z является отцом у
(3) х и у не являются одним и тем же человеком
ТО х и у являются братьями
Иван является отцом Сергея
Иван является отцом Павла
Сергей является отцом Николая
Из представленных знаний можно формально вывести заключение, что Павел является дядей Николая. При этом считается, что одинаковые переменные, входящие в разные правила, независимы; объекты, имена которых эти переменные могут получать, никак не связаны между собой. Формализованная процедура, использующая сопоставление (при котором устанавливается, совпадают ли между собой две формы представления, включая подстановку возможных значений переменных), поиск в базе знаний, возврат к исходному состоянию при неудачной попытке решения, представляет собой механизм вывода.
Простота и наглядность представления знаний с помощью продукций обусловила его применение во многих системах, которые называются продукционными.
Семантическая сеть представляет собой ориентированный граф, в котором вершины соответствуют понятиям, объектам, действиям, ситуациям и сложным отношениям, а дуги - свойствам и элементарным отношениям. Семантические сети способны отображать структуру знаний во всей сложности их взаимосвязей, увязать в единое целое объекты и их свойства. В качестве примера может быть приведена часть семантической сети, относящейся к понятию «фрукты» (рис. 5.2).
Рис. 5.2. Пример семантической сети
Формально фреймовая модель является частным случаем семантической сети, в которой вместо вершин используются фреймы. Слово «фрейм» в переводе с английского языка означает «рамка». Фрейм является единицей представления знаний об объекте, которую можно описать некоторой совокупностью понятий и сущностей. В отличие от вершины фрейм не описывает элементарный объект, а является фрагментом знаний о свойствах типового объекта или ситуации.
Фрейм имеет определенную внутреннюю структуру, состоящую из множества элементов, называемыхслотами. Каждый слот, в свою очередь, представляется определенной структурой данных, процедурой, или может быть связан с другим фреймом. Например,
Фрейм: человек | ||
Класс | : | Животное |
Структурный элемент | : | Голова, шея, руки, ноги,... |
Рост | : | 30-220 см |
Масса | : | 1 - 200 кг |
Хвост | : | Нет |
Фрейм аналогии | : | Обезьяна |
Несмотря на различия в моделях представления знаний, они могут сочетаться друг с другом и часто используются как гибридные представления. Для представления знаний разработаны специальные языки: ALICE, APES, APLICOT, FIT, DUCK, LISP, PROLOG и ряд других.
Перечислим главные особенности машинного представления данных.
1. Внутренняя интерпретируемость. Обеспечивается наличием у каждой информационной единицы своего уникального имени, по которому система находит ее для ответа на запросы, в которых это имя упомянуто.
2. Структурированность. Информационные единицы должны обладать гибкой структурой, для них должен выполняться «принцип матрешки», т.е. вложенности одних информационных единиц в другие, должна существовать возможность установления соотношений типа «часть - целое», «род - вид», «элемент - класс» между отдельными информационными единицами.
3. Связность. Должна быть предусмотрена возможность установления связей различного типа между информационными единицами, которые бы характеризовали отношения между информационными единицами. Эти отношения могут быть как декларативными (описательными), так и процедурными (функциональными).
4. Семантическая метрика. Позволяет устанавливать ситуационную близость информационных единиц, т.е. величину ассоциативной связи между ними. Такая близость позволяет выделять в знаниях некоторые типовые ситуации, строить аналогии.
5. Активность. Выполнение действий в интеллектуальной системе должно инициироваться не какими-либо внешними причинами, а текущим состоянием представленных в системе знаний. Появление новых фактов или описание событий, установление связей должны стать источником активности системы.