logo search
inform / Лекция 31

Лекция № 31. Экспертные системы

Введение

    1. Организация знаний

    2. Классификация и виды экспертных систем

    3. Область применения экспертных систем

    4. Структура и функционирование экспертных систем

      1. Типовая структура экспертных систем

      2. Интерфейс пользователя

      3. Подсистема приобретения знаний

      4. База знаний

      5. База данных

      6. Механизм логического вывода

      7. Объяснение решений

      8. Функционирование экспертных систем

    5. Технология разработки

      1. Стадии создания экспертных систем

      2. Этапы разработки экспертных систем

      3. Разработка прототипа экспертной системы

      4. Сценарий построения БЗ

      5. Стадии приобретения знаний

      6. Формализация знаний

      7. Реализация базы знаний

      8. Критерии оценки ЭС

      9. Методы оценки

    6. Оболочки экспертных систем

    7. Оболочка ДИЭКС

      1. Модель представления знаний

      2. Сеть продукционных правил

      3. Логический вывод

      4. Язык консультаций

      5. Синтаксис консультаций

      6. Посылки цели и правила

      7. Вероятностные посылки

      8. Числовые посылки

      9. Типы «Вопрос» и «Константа»

      10. Состав базы знаний ДИЭКС

      11. Редактор базы знаний

      12. Компилятор базы знаний

      13. Редактор базы фактов

      14. Система консультаций

Введение

В середине семидесятых годов в исследованиях по искусственному интеллекту сформировалось самостоятельное направление, получившее название экспертные системы. Цель исследований по экспертным системам состоит в разработке программ (устройств), которые при решении задач, трудных для эксперта-человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом. В большинстве случаев экспертные системы решают трудно формализуемые задачи или задачи, не имеющие алгоритмического решения.

Рассмотрим несколько определений.

Экспертная система - программно-техническое средство, позволяющее пользователю в диалоговом режиме получать от компьютера консультационную помощь в конкретной предметной области, где сконцентрированы опыт и знания людей-экспертов (специалистов в данной области).

Экспертные системы – программы для компьютера, которые могут воспроизводить процесс решения проблемы человеком-экспертом.[2]

Эспертная система - программа, которая использует знания специалистов (экспертов) о некоторой конкретной узкоспециализированной предметной области и в пределах этой области срособна принимать решения на уровне эксперта-профессилнала. [13] 

Экспертные системы - прикладные программы ИИ, в которых база знаний представляет собой формализованные эмпирические знания высококвалифицированных специалистов (экспертов) в какой-либо узкой предметной области.[14] 

Экспертная система - программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.[14] 

В основе функционирования ЭС лежит использование знаний, а манипулирование ими осуществляется на базе эвристических правил, сформулированных экспертами. ЭС выдают советы, проводят анализ, выполняют классификацию, дают консультации и ставят диагноз. Они ориентированы на решение задач, обычно требующих проведения экспертизы человеком-специалистом. В отличие от машинных программ, использующий процедурный анализ, ЭС решают задачи в узкой предметной области (конкретной области экспертизы) на основе дедуктивных рассуждений. Главное достоинство экспертных систем - возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации от наличия в ней квалифицированных специалистов.[1]

Определение

Экспертная система (ЭС)  – это компьютерная система, состоящая из (1) естественно-языкового интерфейса, (2) базы знаний и (3) универсального интерпретатора, реализующего логический вывод на знаниях, в которой база знаний формируется специалистом в предметной области - экспертом.

С разработкой и использованием экспертных систем тесно связаны такие понятия, как знания и базы знаний. Особая роль знаний в экспертных системах обусловлена, прежде всего, областью их применения. Экспертные системы предназначены для решения трудно формализуемых задач или задач, не имеющих алгоритмического решения в узкоспециализированных предметных областях деятельности человека. Экспертные системы позволяют аккумулировать, воспроизводить и применять знания, которые сами по себе обладают определенной ценностью.

Переход от данных к знаниям является закономерным следствием развития и усложнения информационных структур, обрабатываемых на компьютерах. В настоящее время нет общепризнанного формального определения понятия Знание. Однако знания обладают рядом специфических признаков, позволяющих определить соотношение понятий Знание и База знаний с понятиями Данные и База данных. Сопоставление данных и знаний приводит к неизбежному выводу, что данные – составная часть знаний.

Наличие базы знаний и относительно универсального интерпретатора делает принципиально возможным создание новых экспертных систем для новых приложений путем разработки новой базы знаний без изменения интерпретатора. Процесс разработки экспертной системы, таким образом, можно свести (при наличии готового интерпретатора) к процессу разработки базы знаний. Такая технология получила название технологии «пустых оболочек», когда однажды разработанная экспертная система используется в качестве оболочки для новых знаний. Как правило, различные предметные области знаний существенно различаются, и поэтому для реализации экспертной системы (и, следовательно, конкретной базы знаний) необходимо иметь большой набор оболочек с различными моделями представления знаний и различными механизмами логического вывода.

Для разработки ЭС используются те же языки и системы программирования, что и для обычных программ, но наличие таких специфических для научного направления Искусственный интеллект структурных частей, как логический вывод, естественно-языковый интерфейс, делает предпочтительным использование для разработки ЭС специализированных языков, таких как ЛИСП, Пролог и специальных средств поддержки разработки, что позволяет отделить логику программы от управления ходом вычислений, и что делает процесс создания программы более прозрачным.

Целью поддержки разработки является облегчение творческого и интеллектуального пути от идеи к ее описанию в доступной компьютеру форме. Специфика средств, языков программирования и пользовательских интерфейсов оказывает существенное влияние на технологию создания ЭС: разработчику приходится тратить больше времени на перевод идеи на машинный язык, чем на доводку самой идеи. Поддержка разработки должна освободить пользователя от как можно большего числа деталей и позволить ему сосредоточиться на идее.

Эволюция средств разработки ЭС

Эволюция средств разработки ЭС может быть разбита на четыре этапа:

Для этой эволюции характерны две тенденции: увеличение степени охвата этапов жизненного цикла ЭС; движение от использования дискретных средств ко все более интегрированным целостным системам.

Дискретные средства разработки экспертных систем

Существуют различные средства поддержки разработки программ. (1) Трансляторы языков программирования и отладчики для контроля за состоянием программ во время выполнения были в числе первых таких средств. (2) Отладчики наряду с (3) экранными редакторами и в настоящее время остаются наиболее часто используемыми средствами, к другим популярным средствам относятся (4) программы «красивой» печати, (5) поддержка управления конфигурацией, (6) программа перекрестных программных ссылок и (7) трассировщик выполнения.

Перечисленные средства являются дискретными и независимыми. Программист мог работать только с одним средством. Например, во время отладки надо было воспользоваться отладчиком для определения ошибки, затем окончить отладку, чтобы вызвать редактор для исправления ошибки. После этого надо было компилировать программу и вызывать отладчик для дальнейшей отладки (цикл редактирования –компилирования – прогона). Программист вынужден был вводить дополнительные команды и терять время на запуск и окончание работы системных средств. Прерывание процесса отладки на редактирование, повторную компиляцию и повторный запуск программы серьезно затрудняло процесс обдумывания задачи программистом.

Интегрированный набор средств - Инструментальный ящик

Следующим шагом в развитии средств разработки был интегрированный набор средств, названный Инструментальным ящиком. Каждое средство проектировалось с учетом остальных, поэтому система обеспечивала возможность обращения к другим средствам.

Например, такие системы, как Turbo-Prolog, Interlisp-D, позволяют программисту запустить программу сразу после ввода ее в систему. В ответ на ошибку системой вызывается отладчик, чтобы дать возможность программисту изучить причину сбоя. Программист может затем отредактировать программу и продолжить ее выполнение. Этот подход сокращает время на исправление мелких ошибок в программе для экспериментального программирования (метод проб и ошибок), обычно применяемого специалистами по искусственному интеллекту.

Проектирование больших программных систем является сложной проблемой. Разбиение жизненного цикла на несколько этапов (анализ требований, спецификации, проектирование, реализация, тестирование и отладка, работа и сопровождение) направлено на уменьшение сложности проектирования путем изолирования и упорядочения важных задач в процессе разработки.

Этапы жизненного цикла

lnterlisp-D и Turbo Prolog поддерживают только этапы реализации и отладки. Исследования показывают, что наибольший вклад в стоимость жизненного цикла дает этап сопровождения. Не менее важное значение имеют средства этапа формирования требований и спецификаций, потому что любую ошибку в спецификациях очень трудно и дорого исправлять на позднейших этапах жизненного цикла. Таким образом, анализ жизненного цикла важен для любой части программного обеспечения, которая предназначена для использования конечными пользователями на заметном интервале времени.

Успех методов искусственного интеллекта в различных областях мотивировал их применение в разработке программного обеспечения. Показательными системами являются проект «Помощник программиста» в Массачусетском технологическом институте, проект «Пси» в Стэнфордском университете. В этих проектах осуществляется попытка моделировать знания, которыми пользуется программист для понимания, проектирования, реализации и сопровождения программы. Эти знания могут быть использованы экспертными системами для частичной автоматизации процесса разработки программ.

В заключение отметим некоторые особенности этапов жизненного цикла экспертных систем. Тестирование экспертных систем отличается от тестирования обычных систем.

Во-первых, экспертные системы часто обладают недетерминированным поведением, потому что стратегия разрешения конфликтов может зависеть от параметров времени выполнения. Это делает поведение невоспроизводимым, и, следовательно, более сложным для отладки.

Во-вторых, для правил, в отличие от процедур в традиционном программном обеспечении, нет никаких точных отношений ввода-вывода. Это затрудняет применение для тестирования анализа ввода-вывода.

В-третьих, число способов, которыми могут быть активизированы правила, слишком велико, чтобы пользоваться средствами покрытия ветвей и путей.

Макетирование является единственным эффективным способом тестирования экспертной системы. Сопровождение и модификация  – важная часть разработки экспертных систем, правила базы знаний эволюционируют с накоплением опыта их применения, и, следовательно, модифицируются чаще, чем алгоритмы. Правила могут также зависеть от времени, поэтому их достоверность может также изменяться со

3.1.Организация знаний

Большая часть задач инженерии знаний включает получение знаний от экспертов в виде фактов и правил и преобразование этой информации в форму, которая может быть эффективно использована машинной программой. Рассмотрение экспертных знаний как обязательного элемента, определяющего успех функционирования экспертной системы, приводит к тому, что процесс приобретения и представления знаний становится решающим аспектом разработки этих систем.

Процесс создания, ведения и модификации баз знаний экспертных систем включает:

Определение состава представляемых знаний производится в зависимости от предметной области и структуры экспертной системы. При этом учитывается:

Зависимость состава знаний от структуры экспертной системы проявляется в необходимости знаний, определяющих функционирование системы:

Знания о языке общения зависят от требуемого уровня понимания и определяются интерфейсом экспертной системы.

Пользователь, исходя из целей и круга решаемых задач, предъявляет свои требования к составу знаний. Им определяются:

Решение вопроса организации знаний в значительной степени зависит от выбранной модели представления знаний. С точки зрения организации знания целесообразно рассматривать:

База знаний экспертной системы может быть представлена как:

Это разбиение отражает различные уровни представления знаний.

Усложнение функциональных возможностей экспертной системы происходит за счет того, что она должна уметь не только использовать свои знания о проблемной области (объектный уровень знаний), но и обладает способностью исследовать их – экспертная система должна иметь знания о том, как представлены ее знания о проблемной области (метауровневые знания).

Метазнания (знания метауровня) не содержат ссылок к знаниям объектного уровня и не зависят от проблемной области. Основная цель организации метазнаний (многоуровневая организация знаний) заключается в следующем:

Использование метазнаний при разработке и выборе стратегий доказательств связано с возможностью определения на метауровне новых правил поиска результатов объектного уровня. Метазнания в виде стратегических метауровневых правил:

Область управления выводом является той областью, в которой использование метауровневых знаний получило наибольшее распространение, это связано с тем, что управление выводом можно считать частным случаем определения стратегий доказательств. Основная идея заключается в возможности определения как зависящих, так и не зависящих от проблемной области стратегий принятия решений с помощью знаний об управлении (эвристик). Выбранные стратегии позволяют сократить число вариантов поиска и тем самым увеличить его эффективность.

В области представления знаний наблюдается многообразие языков и формализмов, разработанных для конкретных потребностей представления. Комбинирование представления знаний на объектном уровне и метауровне оказалось очень полезным механизмом абстрагирования, благодаря которому решаются многие проблемы представления знаний, такие как:

Метазнания выполняют также ряд вспомогательных функций:

Распределение знаний по уровням представления обеспечивает расширение области применения ЭС, значительно улучшает качественный и количественный показатели системы.

Выделение уровней детальности позволяет рассматривать знания с различной степенью подробности. Количество уровней детальности определяется спецификой решаемых задач, объемом знаний и способом их представления. Введение нескольких уровней детальности обеспечивает дополнительную гибкость системы. Можно выделить три уровня детальности, отражающих:

Вопрос организации знаний в базе знаний связан с проблемой доступа к знаниям, для того чтобы значительно ускорить процесс поиска решений, необходимо упорядочить и структурировать знания вокруг наиболее важных понятий предметной области.

Такой признак знаний, как связность, позволяет представлять знания, характеризующие конкретный объект, в виде отдельных блоков и устанавливать:

Конкретная реализация базы знаний будет разобрана на примере системы Диэкс.