13. Экспертные системы: технология, этапы создания, применение

Экспертные системы

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

В общем виде все системы, основанные на знаниях, можно разделить на

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

Состав команды разработки экспертной системы:

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

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

База знаний – ядро экспертной системы; совокупность знаний предметной области, представленная в форме, понятной эксперту и пользователю. Обычно на некотором языке, близком к естественному.

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

Подсистема объяснений – программа, позволяющая пользователю получить ответы на вопросы, как была получена та или иная рекомендация, почему машина приняла именно такое решение. Ответ на вопрос «как?» – трассировка всего процесса получения решения с указанием использованных фрагментов базы знаний. Ответ на вопрос «почему?» - ссылка на умозаключение, предшествовавшее полученному решению

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

Классификация экспертных систем:

  • По задаче:
    • Интерпретация данных – определение смысла данных, результаты которого должны быть согласованными (осмысленными) и корректными. Обычно предусматривается многовариантный анализ данных.
    • Диагностика – процесс соотнесения объекта с некоторым классом объектов и/или обнаружение неисправностей в некоторой системе. Неисправность – отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправности оборудования в технических системах, и заболевания живых организмов, и природные аномалии, и пр.
    • Проектирование – подготовка спецификаций на создание объектов с заранее определёнными свойствами.
      • Спецификация – весь набор необходимых документов. Основная проблема – получение чёткого структурного описания знаний об объекте. Для организации эффективного проектирования и, особенно, перепроектирования, необходимо формировать не только проектные решения, но и мотивы их принятия. В задачах такого класса тесно связаны процессы вывода и объяснения решения.
    • Прогнозирование – позволяет предсказывать последствия событий или явлений на основании анализа имеющихся данных. Прогнозирующие системы обычно логически выводят вероятные следствия из заданных ситуаций. Является комбинированной задачей.
    • Мониторинг – непрерывная интерпретация данных в реальном масштабе времени и сигнализация о выходе параметров за допустимые пределы. Проблемы: пропуск тревожной ситуации и ложное срабатывание. Сложность этих проблем в размытости симптомов тревожной ситуации. Является комбинированной задачей.
    • Планирование – нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В экспертных системах используются реальные модели поведения объектов, чтобы логически вывести последствия планируемой деятельности.
    • Обучение (дисциплине или предмету) – системы обучения диагностируют ошибки при изучении дисциплины и подсказывают правильные решения. Они аккумулируют знания о гипотетическом ученике, его характерных ошибках и затем в работе способны диагностировать слабости в познаниях и находить соответствующие средства для их ликвидации. Кроме того, они планируют акт общения с учеником в зависимости от его успехов. Является комбинированной задачей.
    • Управление – функция организованной системы, поддерживающая определённый режим деятельности. Такого рода экспертные системы осуществляют управление поведением сложных систем в соответствии с заданными спецификациями.
    • Поддержка принятия решений – совокупность процедур, обеспечивающих лицо, принимающее решение (ЛПР), необходимой информацией и рекомендациями, облегчающими процесс принятия решений. Такие экспертные системы помогают специалистам выбрать и/или сформировать нужную альтернативу среди множества выборов при принятии ответственных решений.
  • По связи с реальным временем:
    • Статические – разрабатываются в предметных областях, в которых база знаний и интерпретируемые данные не меняются во времени.
      • Пример: диагностика неисправностей в автомобиле.
    • Квазидинамические – интерпретируют ситуации, которые меняются с некоторым фиксированным интервалом времени.
      • Пример: микробиологические экспертные системы, в которых снимаются лабораторные измерения с технологического процесса. Полученные показатели и их динамика анализируются.
    • Динамические – работают в сопряжении с датчиками объектов в реальном времени с непрерывной интерпретацией поступающих в систему данных. Пример: мониторинг в реанимационных палатах.
  • По типу ЭВМ:
    • На супер-ЭВМ
    • На ЭВМ средней производительности (мейнфреймы)
    • На символьных процессорах
    • На рабочих станциях
    • На ПК
  • По степени интеграции:
    • Автономные – работают непосредственно в режиме консультации с пользователем для специфических экспертных задач. В них не требуется привлекать традиционные методы обработки данных.
    • Гибридные – программный комплекс, агрегирующий стандартные пакеты прикладных программ и средства манипулирования знаниями. Разработка таких систем гораздо сложнее автономных систем.
      • Пример: интеллектуальная надстройка над пакетом прикладных программ.

Требования к команде разработки экспертной системы:

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

Эксперт. Основное требование – готовность поделиться знаниями. Остальные требования: умение объяснять, заинтересованность, высокий профессионализм в своей области.

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

Аналитик. Основное требование – владение эффективными навыками грамотного извлечения, формализации и концептуализации знаний: Z1 - Z5. Должен владеть двумя механизмами вывода (ассоциативный и психологический) и извлечения знаний (мозговой штурм и т.п.). Аналитик должен владеть методологией разработки системы; одним из языков программирования.

  • Z1 – знания в памяти
  • Z2 – знания в книгах
  • Z3 – поле знаний (методология представления знаний)
  • Z4 – модель знаний
  • Z5 – база знаний

Технологии проектирования и разработки промышленных экспертных систем

Стадии разработки:

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

Технологии быстрого прототипирования

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

Стадии прототипирования:

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

Развитие прототипа до промышленной экспертной системы

Стадии развития:

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

Оценка системы

Проводится тестирование системы в отношениях критериев эффективности. Для этого привлекаются другие эксперты, дабы проверить работоспособность системы на других примерах.

Классификация критериев оценки:

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

Стыковка системы

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

Поддержка системы

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

Topics:

13. Экспертные системы: технология, этапы создания, применение

Экспертные системы

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

В общем виде все системы, основанные на знаниях, можно разделить на

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

Состав команды разработки экспертной системы:

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

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

База знаний – ядро экспертной системы; совокупность знаний предметной области, представленная в форме, понятной эксперту и пользователю. Обычно на некотором языке, близком к естественному.

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

Подсистема объяснений – программа, позволяющая пользователю получить ответы на вопросы, как была получена та или иная рекомендация, почему машина приняла именно такое решение. Ответ на вопрос «как?» – трассировка всего процесса получения решения с указанием использованных фрагментов базы знаний. Ответ на вопрос «почему?» - ссылка на умозаключение, предшествовавшее полученному решению

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

Классификация экспертных систем:

  • По задаче:
    • Интерпретация данных – определение смысла данных, результаты которого должны быть согласованными (осмысленными) и корректными. Обычно предусматривается многовариантный анализ данных.
    • Диагностика – процесс соотнесения объекта с некоторым классом объектов и/или обнаружение неисправностей в некоторой системе. Неисправность – отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправности оборудования в технических системах, и заболевания живых организмов, и природные аномалии, и пр.
    • Проектирование – подготовка спецификаций на создание объектов с заранее определёнными свойствами.
      • Спецификация – весь набор необходимых документов. Основная проблема – получение чёткого структурного описания знаний об объекте. Для организации эффективного проектирования и, особенно, перепроектирования, необходимо формировать не только проектные решения, но и мотивы их принятия. В задачах такого класса тесно связаны процессы вывода и объяснения решения.
    • Прогнозирование – позволяет предсказывать последствия событий или явлений на основании анализа имеющихся данных. Прогнозирующие системы обычно логически выводят вероятные следствия из заданных ситуаций. Является комбинированной задачей.
    • Мониторинг – непрерывная интерпретация данных в реальном масштабе времени и сигнализация о выходе параметров за допустимые пределы. Проблемы: пропуск тревожной ситуации и ложное срабатывание. Сложность этих проблем в размытости симптомов тревожной ситуации. Является комбинированной задачей.
    • Планирование – нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В экспертных системах используются реальные модели поведения объектов, чтобы логически вывести последствия планируемой деятельности.
    • Обучение (дисциплине или предмету) – системы обучения диагностируют ошибки при изучении дисциплины и подсказывают правильные решения. Они аккумулируют знания о гипотетическом ученике, его характерных ошибках и затем в работе способны диагностировать слабости в познаниях и находить соответствующие средства для их ликвидации. Кроме того, они планируют акт общения с учеником в зависимости от его успехов. Является комбинированной задачей.
    • Управление – функция организованной системы, поддерживающая определённый режим деятельности. Такого рода экспертные системы осуществляют управление поведением сложных систем в соответствии с заданными спецификациями.
    • Поддержка принятия решений – совокупность процедур, обеспечивающих лицо, принимающее решение (ЛПР), необходимой информацией и рекомендациями, облегчающими процесс принятия решений. Такие экспертные системы помогают специалистам выбрать и/или сформировать нужную альтернативу среди множества выборов при принятии ответственных решений.
  • По связи с реальным временем:
    • Статические – разрабатываются в предметных областях, в которых база знаний и интерпретируемые данные не меняются во времени.
      • Пример: диагностика неисправностей в автомобиле.
    • Квазидинамические – интерпретируют ситуации, которые меняются с некоторым фиксированным интервалом времени.
      • Пример: микробиологические экспертные системы, в которых снимаются лабораторные измерения с технологического процесса. Полученные показатели и их динамика анализируются.
    • Динамические – работают в сопряжении с датчиками объектов в реальном времени с непрерывной интерпретацией поступающих в систему данных. Пример: мониторинг в реанимационных палатах.
  • По типу ЭВМ:
    • На супер-ЭВМ
    • На ЭВМ средней производительности (мейнфреймы)
    • На символьных процессорах
    • На рабочих станциях
    • На ПК
  • По степени интеграции:
    • Автономные – работают непосредственно в режиме консультации с пользователем для специфических экспертных задач. В них не требуется привлекать традиционные методы обработки данных.
    • Гибридные – программный комплекс, агрегирующий стандартные пакеты прикладных программ и средства манипулирования знаниями. Разработка таких систем гораздо сложнее автономных систем.
      • Пример: интеллектуальная надстройка над пакетом прикладных программ.

Требования к команде разработки экспертной системы:

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

Эксперт. Основное требование – готовность поделиться знаниями. Остальные требования: умение объяснять, заинтересованность, высокий профессионализм в своей области.

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

Аналитик. Основное требование – владение эффективными навыками грамотного извлечения, формализации и концептуализации знаний: Z1 - Z5. Должен владеть двумя механизмами вывода (ассоциативный и психологический) и извлечения знаний (мозговой штурм и т.п.). Аналитик должен владеть методологией разработки системы; одним из языков программирования.

  • Z1 – знания в памяти
  • Z2 – знания в книгах
  • Z3 – поле знаний (методология представления знаний)
  • Z4 – модель знаний
  • Z5 – база знаний

Технологии проектирования и разработки промышленных экспертных систем

Стадии разработки:

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

Технологии быстрого прототипирования

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

Стадии прототипирования:

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

Развитие прототипа до промышленной экспертной системы

Стадии развития:

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

Оценка системы

Проводится тестирование системы в отношениях критериев эффективности. Для этого привлекаются другие эксперты, дабы проверить работоспособность системы на других примерах.

Классификация критериев оценки:

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

Стыковка системы

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

Поддержка системы

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