Структура экспертной системы
База знаний (БЗ) – ядро ЭС. БЗ представляет собой совокупность знаний предметной области (правил или эвристик), записанную на машинный носитель в форме, понятной эксперту и пользователю (обычно на некотором языке, приближенном к естественному).
Параллельно представлению знаний в виде, доступном пониманию человека, БЗ существует во внутреннем «машинном» представлении. Построение ЭС по модульному принципу позволяет постепенно наращивать их базы знаний. Качество ЭС в целом определяется размером и качеством базы знаний.
Блок логического вывода (синонимы: интерпретатор, решатель, дедуктивная машина, машина вывода) – это программа, моделирующая ход рассуждений эксперта на основании знаний, имеющихся в БЗ.
Подсистемы объяснений – программа, позволяющая пользователю получить ответы на вопросы: «Как была получена та или иная рекомендация?», «Почему система приняла такое решение?». Ответ на вопрос «как» – это представление всех шагов цепи умозаключений, приведших к данному решению, с указанием использованных фрагментов БЗ. Ответ на вопрос «почему» – ссылка на умозаключение, непосредственно предшествующее полученному решению, т. е. возвращение на один шаг назад. Развитые подсистемы объяснений поддерживают оба типа вопросов.
Интеллектуальный редактор базы знаний(подсистемы приобретения знаний) – программа, предоставляющая инженеру по знаниям возможность создавать БЗ в диалоговом режиме.
Интеллектуальный редактор БЗ включает в себя подсистему вложенных меню, шаблонов языка представления знаний, подсказок и других сервисных средств, облегчающих работу с базой.
Коллектив разработчиков экспертной системы.Особое внимание в процессе разработке ЭС следует уделить формированию коллектива разработчиков – группы специалистов, ответственных за создание системы. Как видно из рисунка, в состав коллектива разработчиков входят как минимум три категории участников – пользователи, эксперты и инженеры по знаниям. Кроме того, в создании ЭС принимают участие программисты. Таким образом, минимальный состав коллектива разработчиков включает четыре человека, в реальности же он объединяет 8-10 и более человек. Численное увеличение коллектива разработчиков связано с тем, что возникает необходимость учета мнений нескольких пользователей, помощи нескольких экспертов. При этом увеличивается потребность как в проблемных, так и в системных программистах. На Западе в этот коллектив дополнительно традиционно включают менеджера и технического помощника. При отсутствии профессионального менеджера руководителем коллектива разработчиков, участвующим во всех стадиях разработки, является инженер по знаниям, поэтому к его квалификации предъявляются самые высокие требования. В целом уровень и численность группы зависят от характеристик поставленных задач.
Как показал опыт многих разработок, активная работа всех категорий специалистов команды разработчиков требуется на этапе первоначального приобретения знаний. Этот этап может длиться от нескольких недель до нескольких месяцев. На этапе приобретения знаний возможно возникновение трудностей чисто психологического порядка: при создании БЗ системы эксперт может препятствовать передаче своих знаний, опасаясь, что впоследствии его функции будут переданы «машине». Но эти страхи безосновательны, поскольку ЭС не способны обучаться, они не обладают «здравым смыслом» и интуицией, хотя в настоящее время ведутся разработки ЭС, реализующих идею самообучения. ЭС «уверенно» работает лишь в типовых ситуациях. Она также удобна в случаях, когда человек находится в состоянии стресса. В наиболее сложных ситуациях, требующих нестандартных рассуждений и оценок, эксперт-человек пока еще незаменим.
Таким образом, при подборе группы разработчиков ЭС необходимо учитывать не только те знания и навыки, которыми обладают ее члены, но и их психологические свойства. Психологическая совместимость членов группы во многом определяет ту атмосферу, которая складывается в процессе групповой работы. Успешность выбора и подготовки коллектива разработчиков ЭС определяет эффективность и продолжительность всего процесса разработки.
Экспертная система содержит три существенных компонента: базу знаний, процедуру вывода и интерфейс между пользователем и системой. Ядром экспертной системы служит база знаний и процедура вывода. Их следует рассматривать вместе, ибо знания, на основе которых нельзя сделать выводы, не имеют смысла. В экспертных системах обычно проводится работа с небольшой частью знаний человека, ограниченной областью профессиональных знаний. Однако при этом возникает множество вопросов, а именно:
1. Как получить знания от экспертов, понятные программисту?
2. Как представить их в структурированном виде?
3. Как реализовать выбранные виды представления знаний на компьютере?
4. Как обеспечить доступ к знаниям внутри системы?
5. Каким образом модифицировать знания по мере накопления опыта?
Процесс извлечения знаний, которыми обладает эксперт, еще недостаточно разработан. Обычно это происходит различными способами и определяется экспертом и инженером по знаниям. Наиболее популярная методика включает следующие этапы:
1) структурирование предметной области путем построения «простой» модели знаний и извлечение из нее ответов;
2) создание на основе «простой» модели знаний уже работающей модели – прототипа экспертной системы с целью ее усовершенствования;
3) следование циклу «усовершенствования» и «отладки» до тех пор, пока система не станет работать удовлетворительно.
Эта методика исходит из тезиса: экспертам легче критиковать, чем более четко сформулировать цель, а инженеры заинтересованы в быстрейшем доведении до работоспособного состояния существующего прототипа.