Системы искусственного интеллекта. Тематический план
Скачать 1.4 Mb.
|
ТЕМА 1.4 ЭКСПЕРТНЫЕ СИСТЕМЫ План лекции: 1.4.1 Структура экспертной системы 1.4.2 Разработка и использование экспертных систем 1.4.3 Классификация экспертных систем 1.4.4 Представление знаний в экспертных системах 1.4.5 Инструментальные средства построения экспертных систем 1.4.6 Технология разработки экспертной системы 1.4.1 Структура экспертной системы В начале 1980-х гг. в исследованиях по искусственному интеллекту сформировалось самостоятельное направление, получившее название «экспертные системы». Экспертные системы (ЭС) — это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для оказания консультаций менее квалифицированным пользователям. Исследователи в области ЭС для названия своей дисциплины часто используют также термин «инженерия знаний», введенный Е. Фейгенбаумом и означающий «привнесение принципов и инструментария исследований из области искусственного интеллекта в решение трудных прикладных проблем, требующих знаний экспертов». Программные средства, базирующиеся на технологии экспертных систем, или инженерии знаний, получили значительное распространение в современном мире. Экспертные системы отличаются от систем обработки данных тем, что в них в основном используются символьный (а не числовой) способ представления, символьный вывод и эвристический поиск решения (а не исполнение известного алгоритма). Экспертные системы способны пополнять свои знания в ходе взаимодействия с экспертом. В настоящее время технология экспертных систем используется для решения различных типов задач (интерпретация, предсказание, диагностика, планирование, конструирование, контроль, отладка, инструктаж, управление) в самых разнообразных прикладных областях, таких как финансы, нефтяная и газовая промышленность, энергетика, транспорт, фармацевтическое производство, космос, металлургия, горное дело, химия, образование, целлюлозно-бумажная промышленность, телекоммуникации и связь и др. Типичная статическая ЭС состоит из следующих основных компонентов (рис. 1.5): - решатель (интерпретатор); - рабочая память (РП), называемая также базой данных (БД); - база знаний (БЗ); - компоненты приобретения знаний; - объяснительный компонент; - диалоговый компонент. База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. База знаний (БЗ) в ЭС предназначена для хранения долгосрочных данных (а не текущих), описывающих рассматриваемую область, и правил, описывающих целесообразные преобразования данных этой области. Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи. Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем экспертом. Рисунок 1.5 - Структура статической ЭС Объяснительный компонент расшифровывает, как система получила решение задачи (или почему она не получила решения) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату. Диалоговый компонент ориентирован на организацию дружественного общения с пользователем как в ходе решения задач, так и в процессе приобретения знаний и объяснения результатов работы. 1.4.2 Разработка и использование экспертных систем В разработке ЭС обычно участвуют представители следующих специальностей: - эксперт в проблемной области, задачи которой будет решать ЭС; - инженер по знаниям — специалист по разработке ЭС (используемую им технологию (методы) называют технологией (методами) инженерии знаний); - программист по разработке инструментальных средств (ИС), предназначенных для ускорения разработки ЭС. Эксперт определяет знания (данные и правила), характеризующие проблемную область, обеспечивает полноту и правильность введенных в ЭС знаний. Инженер по знаниям помогает эксперту выявить и структурировать знания, необходимые для работы ЭС, осуществляет выбор инструментальных средств, которые наиболее подходят для данной проблемной области, и определяет способ представления знаний в этом инструментарии, выделяет и программирует (традиционными средствами) стандартные функции, типичные для данной проблемной области, которые будут использоваться в правилах, вводимых экспертом. Программист разрабатывает ИС (если инструментарий разрабатывается заново), содержащие все основные компоненты ЭС, и осуществляет их сопряжение с той средой, в которой они будут использованы. Необходимо отметить, что отсутствие среди участников разработки инженеров по знаниям (т. е. их замена программистами) чаще всего приводит к неудаче процесса создания ЭС либо значительно удлиняет его. Экспертная система может работать в двух режимах: в режиме приобретения знаний и в режиме решения задачи (называемом также «режимом консультации» или «режимом использования ЭС»). В режиме приобретения знаний общение с ЭС осуществляет (через посредничество инженера по знаниям) эксперт. Он, используя компонент приобретения знаний, наполняет систему знаниями, которые позже позволят ЭС в режиме решения самостоятельно (уже без эксперта) решать задачи из определенной проблемной области. Эксперт описывает проблемную область в виде совокупности данных и правил, где данные определяют объекты, их характеристики и значения, существующие в области экспертизы, а правила определяют способы манипулирования с данными, характерные для рассматриваемой области. В режиме консультации общение с ЭС осуществляет конечный пользователь, которого интересует результат и (или) способ его получения. При этом данные о задаче пользователя после их обработки диалоговым компонентом поступают в рабочую память. Решатель на основе входных данных из рабочей памяти, общих данных о проблемной области и правил из БЗ формирует решение задачи. Заметим, что ЭС при решении задачи не только исполняет предписанную последовательность операции, но и предварительно формирует ее. 1.4.3 Классификация экспертных систем Класс «экспертные системы» сегодня объединяет несколько тысяч различных программных комплексов, которые можно классифицировать по различным критериям (рис. 1.6). Классификация по решаемой задаче Интерпретация данных — это одна из традиционных задач для экспертных систем. Под интерпретацией понимается определение смысла данных, результаты которого должны быть согласованными и корректными. Обычно предусматривается многовариантный анализ данных, например, обнаружение и идентификация различных типов океанских обитателей, определение основных свойств личности по результатам психодиагностического тестирования и др. Диагностика Под диагностикой понимается обнаружение неисправности в некоторой системе, где неисправность — это некоторое отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправность оборудования в технических системах, и заболевания живых организмов, и всевозможные природные аномалии. Например, это может быть диагностика ошибок в аппаратуре или математическом обеспечении ЭВМ и др. Мониторинг Основная задача мониторинга — непрерывная интерпретация данных в реальном масштабе времени и сигнализация о выходе тех или иных параметров за допустимые пределы. Главные проблемы при этом — пропуск тревожной ситуации и «инверсная» проблема ложного срабатывания. Примерами являются контроль за работой электростанции, помощь диспетчерам атомного реактора, контроль аварийных датчиков на химическом заводе и др. Проектирование Проектирование — состоит в подготовке спецификаций на создание объектов с заранее определенными свойствами. Под спецификацией здесь понимается весь набор необходимых документов, включая чертежи, пояснительные записки и т. д. Для организации эффективного проектирования (и в еще большей степени — перепроектирования) необходимо формировать не только сами проектные решения, но и мотивы их принятия. Таким образом, в задачах проектирования тесно связаны два основных процесса, выполняемых в рамках соответствующей ЭС: процесс вывода решения и процесс объяснения. Примером может являться проектирование конфигураций ЭВМ, синтез электрических схем и др. Прогнозирование Прогнозирующие системы логически выводят вероятные следствия из заданных ситуаций. В прогнозирующей системе обычно используется параметрическая динамическая модель, в которой значения параметров «подгоняются» под заданную ситуацию. Выводимые из этой модели следствия составляют основу для прогнозов с вероятностными оценками. Примеры: предсказание погоды, оценка будущего урожая, прогнозы в экономике и др. Планирование Под планированием понимается нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В таких ЭС используются модели поведения реальных объектов, чтобы логически вывести последствия их планируемой деятельности. Примеры: планирование поведения робота, планирование промышленных заказов, планирование эксперимента и др. Обучение Системы обучения диагностируют ошибки при изучении какой-либо дисциплины с помощью ЭВМ и подсказывают правильные решения. Они аккумулируют знания о гипотетическом «ученике» и его характерных ошибках, а затем при работе способны диагностировать слабости в знаниях обучаемых и находить соответствующие средства для ликвидации пробелов в знаниях. Кроме того, подобные системы планируют акт общения с учеником, в зависимости от успехов ученика, с целью передачи знаний. В общем случае все системы, основанные на знаниях, можно подразделить на системы, решающие задачи анализа и задачи синтеза. Основное отличие задач анализа от задач синтеза заключается в следующем: если в первых из них множество решений может быть перечислено и включено в систему, то во-вторых множество решений потенциально строится из решений компонентов или подпроблем. Таким образом, задача анализа — это интерпретация данных и диагностика, а к задачам синтеза относятся проектирование и планирование. Возможны также комбинированные задачи: обучение, мониторинг, прогнозирование. Классификация по связи с реальным временем Статические ЭС разрабатываются в предметных областях, в которых база знаний и интерпретируемые данные не меняются во времени, стабильны. Пример — диагностика неисправностей в автомобиле. Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени. Примером являются микробиологические ЭС (скажем, в производстве лизина), в которых один раз в 4 - 5 часов снимаются лабораторные измерения с технологического процесса и анализируется динамика полученных показателей по отношению к предыдущему измерению. Динамические ЭС работают в сопряжении с датчиками объектов в режиме реального времени с непрерывной интерпретацией поступаемых данных. Примеры — управление гибкими производственными комплексами, мониторинг в реанимационных палатах и т. д. Классификация по типу ЭВМ На сегодня существуют: - ЭС для уникальных стратегически важных задач, функционирующие на суперЭВМ; - ЭС для ЭВМ средней производительности; - ЭС для символьных процессоров и рабочих станций; - ЭС для мини- и супер-мини-эвм; - ЭС для персональных компьютеров. Классификация по степени интеграции с другими программами Автономные ЭС работают непосредственно в режиме консультаций с пользователем для «специфически экспертных» задач, при решении которых не требуется привлекать традиционные методы обработки данных (расчеты, моделирование и т. д.). Гибридные ЭС представляют собой программные комплексы, объединяющие в себе стандартные пакеты прикладных программ (например, математической статистики, линейного программирования или системы управления базами данных) и средства манипулирования знаниями. Несмотря на внешнюю привлекательность гибридного подхода, следует отметить, что разработка таких систем представляет собой задачу, на порядок более сложную, чем разработка автономной ЭС. Стыковка не просто разных пакетов, а разных методологий (что часто и происходит в гибридных системах) порождает целый комплекс теоретических и практических трудностей. 1.4.4 Представление знаний в экспертных системах Первый (и основной) вопрос, который надо решить при представлении знаний, — это вопрос определения состава знаний, т. е. определение того, что представлять в экспертной системе. Второй вопрос касается того, как представлять знания. Необходимо отметить, что эти две проблемы являются взаимозависимыми, поскольку выбранный способ представления может оказаться непригодным в принципе либо неэффективным для выражения некоторых знаний. В соответствии с общей схемой статической экспертной системы (см. рис. 1.5) для ее функционирования требуются следующие знания: - о процессе решения задачи, используемые интерпретатором (решателем); - о языке общения и способах организации диалога, используемые лингвистическим процессором (диалоговым компонентом); - о способах представления и модификации знаний, используемые компонентом приобретения знаний; - поддерживающие структурные и управляющие знания, используемые объяснительным компонентом. 1.4.5 Инструментальные средства построения экспертных систем Традиционные языки программирования В эту группу инструментальных средств входят традиционные языки программирования (С, C++, Basic, SmallTalk, Fortran и т. д.), ориентированные в основном на вычислительные алгоритмы и потому малопригодные для работы с символьными и логическими данными. Поэтому создание систем искусственного интеллекта на основе этих языков требует значительных усилий программистов. Однако большим достоинством этих языков является высокая эффективность, связанная с их близостью к базовой машинной архитектуре. Кроме того, использование традиционных языков программирования позволяет включать интеллектуальные подсистемы (например, интегрированные экспертные системы) в крупные программные комплексы общего назначения. Среди традиционных языков наиболее удобными считаются объектно- ориентированные (SmallTalk, C++). Это связано с тем, что парадигма объектно-ориентированного программирования тесно связана с фреймовой моделью представления знаний. Языки искусственного интеллекта Это прежде всего Lisp и Prolog — наиболее распространенные языки, предназначенные для решения задач искусственного интеллекта. Универсальность этих языков меньше, нежели у традиционных, но ее потерю языки искусственного интеллекта компенсируют богатыми возможностями для работы с символьными и логическими данными, что очень важно для задач искусственного интеллекта. На основе таких языков создаются специализированные компьютеры (например, «Лисп-машины»), предназначенные для решения задач искусственного интеллекта. Недостаток же этих языков заключается в их неприменимости для создания гибридных экспертных систем. Специальный программный инструментарий В эту группу программных средств искусственного интеллекта входят специальные инструментарии общего назначения. Как правило, это различные библиотеки и надстройки над языком искусственного интеллекта Lisp: КЕЕ (Knowledge Engineering Environment), FRL (Frame Representation Language), KRL (Knowledge Representation Language), ARTS и др., позволяющие пользователям работать с заготовками экспертных систем на более высоком уровне, чем это возможно в обычных языках искусственного интеллекта. «Оболочки» Под «оболочками» (shells) понимают «пустые» версии существующих экспертных систем, т. е. готовые экспертные системы без базы знаний. Примером может служить система EMYCIN («Empty MYCIN» — «пустой MYCIN»), которая представляет собой незаполненную экспертную систему MYCIN. Достоинство «оболочек» в том, что они вообще не требуют работы программистов для создания готовой экспертной системы, — требуются только специалисты в предметной области для заполнения базы знаний. Однако если некоторая предметная область плохо укладывается в модель, используемую в данной конкретной «оболочке», то заполнить базу знаний в этом случае очень непросто. 1.4.6 Технология разработки экспертной системы В настоящее время сложилась определенная технология разработки ЭС, которая включает в себя следующие шесть этапов (рис. 1.7): идентификацию, концептуализацию, формализацию, выполнение, тестирование и опытную эксплуатацию. Рисунок 1.7 - Этапы разработки ЭС Этап идентификации Данный этап связан прежде всего с осмыслением задач, которые предстоит решать будущей ЭС, и с формированием требований к ней. Результатом его является ответ на вопрос, что надо сделать и какие ресурсы необходимо задействовать (идентификация задачи, определение участников процесса проектирования и их ролей, выявление ресурсов и целей). Идентификация задачи заключается в составлении неформального (вербального) описания, в котором указываются общие характеристики задачи, подзадачи, выделяемые внутри данной задачи, ключевые понятия (объекты), их входные (выходные) данные, предположительный вид решения, а также знания, относящиеся к решаемой задаче. При идентификации целей важно отличать цели, ради которых создается ЭС, от задач, которые она должна решать. Примерами возможных целей могут быть формализация неформальных знаний экспертов, улучшение качества решений, принимаемых экспертом, автоматизация рутинных аспектов работы эксперта (пользователя), тиражирование знаний эксперта. Этап концептуализации На данном этапе проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач. Он завершается созданием модели предметной области (ПО), включающей в себя основные концепты и отношения. На этапе концептуализации определяются следующие особенности задачи: типы доступных данных, исходные и выводимые данные, подзадачи общей задачи, используемые стратегии и гипотезы, виды взаимосвязей между объектами ПО, типы используемых отношений (иерархия, причина — следствие, часть — целое и т. п.), процессы, используемые в ходе решения, состав знаний, используемых при решении задачи, типы ограничений, накладываемых на процессы, используемые в ходе решения, состав знаний, используемых для обоснования решений. Существуют два подхода к процессу построения модели предметной области, которая и является целью разработчиков ЭС на этапе концептуализации. Признаковый, или атрибутивный подход предполагает наличие полученной от экспертов информации в виде троек «объект — атрибут — значение атрибута», а также наличие обучающей информации. Этот подход развивается в рамках направления, получившего название «формирование знаний», или «машинное обучение» (machine learning). Второй подход, называемый структурным, или когнитивным, осуществляется путем выделения элементов предметной области, их взаимосвязей и семантических отношений. Этап формализации Далее все ключевые понятия и отношения выражаются на некотором формальном языке, который либо выбирается из числа уже существующих, либо создается заново. Другими словами, на данном этапе определяются состав средств и способы представления декларативных и процедурных знаний, осуществляется это представление и, в итоге, формируется описание решения задачи ЭС на предложенном (инженером по знаниям) формальном языке. Результатом этапа формализации является описание того, как рассматриваемая задача может быть представлена в выбранной или разработанной формальной системе. Сюда относится указание способов представления знаний (фреймы, сценарии, семантические сети и т. д.), а также определение способов манипулирования этими знаниями (логический вывод, аналитическая модель, статистическая модель и др.) и интерпретации знаний. Этап выполнения Цель этого этапа — создание одного или нескольких прототипов ЭС, решающих требуемые задачи. Затем по результатам их тестирования и опытной эксплуатации создается конечный продукт, пригодный для промышленного использования. Разработка прототипа состоит в программировании его компонентов (или их выборе из известных инструментальных средств) и в наполнении базы знаний. Главное в создании прототипа заключается в том, чтобы он обеспечивал проверку адекватности идей, методов и способов представления знаний решаемым задачам. Создание первого прототипа должно подтвердить, что выбранные методы решений и способы представления пригодны для успешного решения по крайней мере части задач из актуальной предметной области, а также должно продемонстрировать тенденцию к получению высококачественных и эффективных решений для всех задач предметной области по мере увеличения объема знаний. После разработки первого прототипа («ЭС-1») круг предлагаемых для решения задач расширяется, собираются пожелания и замечания пользователей, которые должны быть учтены в очередной версии системы («ЭС-2» и т. д.). Этап тестирования В ходе данного этапа производится оценка выбранного способа представления знаний в ЭС в целом. Для этого инженер по знаниям подыскивает примеры, обеспечивающие проверку всех возможностей разработанной ЭС. Различают следующие источники неудач в работе системы: тестовые примеры, ввод-вывод, правила вывода и управляющие стратегии. Показательные тестовые примеры являются наиболее очевидной причиной неудачной работы ЭС. В худшем случае тестовые примеры могут оказаться вообще не из той предметной области, на которую рассчитана данная ЭС, однако гораздо чаще множество тестовых примеров оказывается слишком однородным и не охватывает всю требуемую предметную область. Поэтому при подготовке тестовых примеров необходимо классифицировать их по подпроблемам предметной области, выделяя стандартные случаи, определяя границы трудных ситуаций и т. п. Ввод-вывод характеризуется данными, приобретенными в ходе диалога с экспертом, и заключениями, предъявленными ЭС в ходе объяснений. Методы приобретения данных могут не давать требуемых результатов из-за того, что, например, экспертной системой были заданы неправильные вопросы или собрана не вся необходимая информация. Кроме того, вопросы системы могут быть трудными для понимания, многозначными и не соответствующими знаниям пользователя. Ошибки при вводе могут возникать также и из-за неудобного для пользователя входного языка. В ряде приложений для пользователя удобен ввод не только в печатной, но и в графической или звуковой форме. Выходные сообщения (заключения) системы могут оказаться непонятными пользователю (или эксперту) по разным причинам. Например, их может быть слишком много или, наоборот, слишком мало. Также причиной подобных ошибок может являться неудачная организация, упорядоченность заключений или не подходящий для пользователя уровень абстракций с непонятной ему лексикой. Наиболее распространенный источник ошибок в рассуждениях касается правил вывода. Одна важная причина здесь часто кроется в отсутствии учета взаимозависимости сформированных правил. Другая причина заключается в ошибочности, противоречивости и/или неполноте используемых правил. Если неверна посылка правила, то это может привести к употреблению правила в неподходящем контексте. Если ошибочно действие правила, то трудно предсказать конечный результат. Правило также может быть ошибочно, если при корректности его условия и действия нарушено соответствие между ними. Нередко к ошибкам в работе ЭС приводят и применяемые управляющие стратегии. Недостатки в них могут привести к чрезмерно сложным заключениям и объяснениям ЭС. Этап опытной эксплуатации На этом этапе проверяется пригодность ЭС для конечного пользователя, которая определяется в основном удобством работы с ней и ее полезностью. Под полезностью ЭС при этом понимается ее способность в ходе диалога определять потребности пользователя, выявлять и устранять причины неудач в работе ЭС, а также удовлетворять потребности пользователя (т. е. решать поставленные задачи). В свою очередь, удобство работы с ЭС подразумевает естественность взаимодействия с ней (общение в привычном, не утомляющем пользователя виде), гибкость ЭС (способность системы настраиваться на различных пользователей, а также учитывать изменения в квалификации одного и того же пользователя) и устойчивость системы к ошибкам (способность не выходить из строя при ошибочных действиях неопытного пользователя). В ходе разработки ЭС почти всегда осуществляется ее модификация. Выделяют следующие виды модификации системы: переформулирование понятий и требований, переконструирование представления знаний в системе и усовершенствование прототипа. Вопросы для самопроверки: 1. Назовите два основных направления искусственного интеллекта. Какова основная идея каждого из этих направлений? 2. Назовите два основных подхода к моделированию искусственного интеллекта. 3. Назовите основные области применения систем искусственного интеллекта. 4. Назовите три известных вам комплекса вычислительных средств систем искусственного интеллекта. Каково их назначение? 5. Перечислите направления развития искусственного интеллекта. 6. Что такое данные? 7. Что такое знания? 8. В чем состоит основное отличие базы знаний от базы данных? 9. Что такое семантическая сеть? Приведите пример семантической сети. 10. Что такое фрейм? Приведите пример фрейма. 11. Назовите три уровня общности фреймов. 12. Как представить знания в продукционной модели? Приведите пример продукционной модели. 13. Что такое экспертная система? 14. В чем состоит отличие экспертных систем от систем обработки данных? 15. Перечислите основные компоненты статической экспертной системы. Для чего предназначен каждый из этих компонентов? |