Лекция № 15. Инструментальные средства для построения ЭС.

Экспертные системы, использующие субъективные вероятности

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

Таким образом не является сюрпризом, что мало ЭС используют теорию субъективных вероятностей в прямом виде и многие из этих систем могут решать только относительно не сложные проблемы. В 70-е годы была разработана компьютерная программа для диагностики, использующая статистические данные. Эта программа избежала комбинаторного взрыва путём введения ограничений до 7 диагнозов (уровней).

Более современная ЭС Pathfinder также использует теорию субъективных вероятностей. Без предположения условной независимости среди симптомов Pathfinder диагностирует 63 заболевания лимфы с 110 симптомами. Эта система использует диаграммы влияния. Это относительно новый инструмент, позволяющий байесовским исследователям и аналитикам по принятию решений визуализовать вероятностные зависимости в принятии решения и определить информационное состояние, для которых предполагается независимость. IDES — другая экспертная система, основанная на диаграммах влияния, которая была разработана в Беркли в 1990г.

Основная сложность в реализации субъективных вероятностей – это огромное число вероятностей, которые должны быть получены для построения БЗ. Если, для примера, некоторая область медицинских диагнозов имеет 100 диагнозов и 700 симптомов, то, по крайне мере, 70100 значений вероятностей (70000 условных + 100 априорных) должны быть получены. Кроме того в старых системах необходимо было условие независимости симптомов, что редко в реальности выполняется.

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

 

 

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

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

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

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

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

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

1) предварительное приобретение знаний о проблемной среде, прикладных задачах и правилах их решения;

2) определение (спецификация) языка представления фактов и продукций, формирование (фиксация) стратегий управления логическим выводом, адекватных прикладным задачам, которые предполагается решать с помощью ЭС;

3) создание предварительного варианта экспертной системы как комплекса, включающего базу знаний и программные средства логического вывода, приобретения новых знаний и объяснения решений;

4) тестирование и доработка предварительного варианта ЭС.

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

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

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

1) генераторы экспертных систем (в некоторых работах для средств этой группы используется термин «оболочка» — точный перевод соответствующего английского слова «shell»);

2) специализированные языки и системы программирования (не вполне точно называемые иногда языками представления знаний);

3) универсальные языки и системы программирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

Универсальные языки и системы программирования,такие, как ЛИСП, ПАСКАЛЬ, СИ и т. п. обеспечивают возможности создания наиболее эффективных систем, так как здесь продукции и стратегии вывода могут быть реализованы процедурно — непосредственно в программах, а не во внешней по отношению к ним базе знаний. Очевидно, также, что эти средства универсальны, т. е. могут быть применены для разработки любой сколь угодно сложной ЭС. Однако из всех указанных средств эти, естественно, наименее мощны, т. е. наиболее сложны и трудоемки в применении. Кроме того, когда продукции и стратегии вывода реализуются процедурно, существенно усложняется сопровождение системы, т. е. ее модификация при необходимости. Набор дополнительных инструментальных средств состоит из типичных для соответствующих языков средств редактирования программ и, возможно, символьных отладчиков. Отсутствие удобных вспомогательных инструментальных средств, аналогичных описанным выше, вряд ли допустимо при создании достаточно сложных ЭС, а их реализация увеличивает общую трудоемкость разработки. В связи с указанными недостатками универсальные языки редко используются для создания конкретных экспертных систем. Их целесообразно применять лишь в тех случаях, когда к конечному продукту предъявляются повышенные требования по использованию ресурсов и в первую очередь по времени реакции. И даже в таких случаях, по-видимому, целесообразно сначала создать и отладить систему с использованием средств, описанных выше. Убедившись, что результат разработки удовлетворяет требованиям и больших изменений в нем не ожидается, можно переписать программу на универсальном языке программирования. Хотя случаи использования рассматриваемых средств для создания конкретных ЭС достаточно редки, универсальные языки программирования широко применяются при разработке генераторов ЭС и систем программирования для специализированных языков. В частности, на языках СИ и ПАСКАЛЬ разработан ряд популярных за рубежом генераторов ЭС для персональных ЭВМ.