Основные этапы разработки экспертной системы
Разработка экспертной системы имеет существенные отличия от разработки обычного программного продукта. Использовать экспертную систему следует только тогда, когда ее разработка возможна, оправдана и методы инженерии знаний соответствуют решаемой задаче.
Инженерия знаний – это область наук об искусственном интеллекте, связанная с разработкой экспертных систем и баз знаний. То есть, это получение знаний от эксперта-человека и представление знаний в экспертной системе. [5]
Основные этапы разработки экспертной системы представлены на рис. 3.
Рис. 3. Процесс разработки экспертной системы
Этапы:
v Идентификация;
v Концептуализация;
v Формализация;
v Выполнение;
v Тестирование;
v Опытная эксплуатация.
На этапе идентификации определяются задачи, которые подлежат решению, выявляются цели разработки, определяются эксперты и типы пользователей.
На этапе концептуализации проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач.
На этапе формализации выбираются ИС и определяются способы представления всех видов знаний, формализуются основные понятия, определяются способы интерпретации знаний, моделируется работа системы, оценивается адекватность целям системы зафиксированных понятий, методов решений, средств представления и манипулирования знаниями.
На этапе выполнения осуществляется наполнение экспертом базы знаний. В связи с тем, что основой экспертной системы являются знания, данный этап является наиболее важным и наиболее трудоемким этапом разработки экспертной системы. Процесс приобретения знаний разделяют на извлечение знаний из эксперта, организацию знаний, обеспечивающую эффективную работу системы, и представление знаний в виде, понятном экспертной системе. Процесс приобретения знаний осуществляется инженером по знаниям на основе анализа деятельности эксперта по решению реальных задач.
На этапе тестирования производится оценка выбранного способа представления знаний в экспертной системе в целом. Для этого инженер по знаниям подбирает примеры, обеспечивающие проверку всех возможностей разработанной экспертной системы.
На этапе опытной эксплуатации проверяется пригодность экспертной системы для конечного пользователя. Ее пригодность для пользователя определяется в основном удобством работы с ней и ее полезностью. Под полезностью экспертной системы понимается ее способность в ходе диалога определять потребности пользователя, выявлять и устранять причины неудач в работе, а также удовлетворять указанные потребности пользователя (решать поставленные задачи). В свою очередь, удобство работы с экспертной системой подразумевает естественность взаимодействия с ней (общение в привычном, не утомляющем пользователя виде), гибкость (способность системы настраиваться на различных пользователей, а также учитывать изменения в квалификации одного и того же пользователя) и устойчивость системы к ошибкам (способность не выходить из строя при ошибочных действиях неопытного пользователях).
Экспертные системы показали свою способность успешно решать практические задачи, которые невозможно было решить с помощью обычных методологий программирования, особенно в тех условиях, когда приходится пользоваться неопределенной или неполной информацией. Очень важно знать преимущества и недостатки любой технологии, чтобы использовать ее должным образом.
БАЗОВЫЕ ФУНКЦИИ ЭКСПЕРТНЫХ СИСТЕМ
Приобретение знаний
Приобретение знаний – это передача потенциального опыта решения проблемы от некоторого источника знаний (эксперта-человека) и преобразование его в вид, который позволяет использовать эти знания в программе.
Передача знаний выполняется в процессе достаточно длительных собеседований между специалистом по проектированию экспертной системы (инженером по знаниям) и экспертом в определенной предметной области, способным достаточно четко сформулировать имеющийся у него опыт. По существующим оценкам, таким методом можно сформировать от двух до пяти "элементов знания" (например, правил) в день. Конечно, это очень низкая скорость, именно поэтому многие исследователи рассматривают функцию приобретения знаний в качестве одного из главных недостатков технологии экспертных систем. Причины низкой производительности:
v Специалисты узкой предметной области пользуются узкоспециализированными терминами;
v Для того чтобы решить проблему в определенной области, эксперту недостаточно просто обладать суммой знаний о фактах и принципах в этой области;
v Экспертный анализ даже в очень узкой области, выполняемый человеком, очень часто нужно поместить в довольно обширный контекст, который включает и многие вещи, кажущиеся эксперту само собой разумеющимися, но для постороннего отнюдь таковыми не являющимися.
Представление знаний
Представление знаний – это главная задача искусственного интеллекта. Ее цель научиться хранить знания таким образом, чтобы программы могли осмысленно обрабатывать их и достигнуть тем подобия человеческого интеллекта. [4]
В качестве вопросов, решаемых при представлении знаний, включены следующие вопросы:
v определение состава представляемых знаний;
v организацию знаний;
v представление знаний, т.е. определение модели представления.
Состав знаний ЭС определяется следующими факторами:
v проблемной средой;
v архитектурой экспертной системы;
v потребностями и целями пользователей;
v языком общения.
В соответствии с общей схемой статической экспертной системы для ее функционирования требуются следующие знания:
v знания о процессе решения задачи (т.е. управляющие знания), используемые интерпретатором (решателем);
v знания о языке общения и способах организации диалога, используемые лингвистическим процессором (диалоговым компонентом);
v знания о способах представления и модификации знаний, используемые компонентом приобретения знаний;
v поддерживающие структурные и управляющие знания, используемые объяснительным компонентом.
Зависимость состава знаний от требований пользователя проявляется в следующем:
v какие задачи (из общего набора задач) и с какими данными хочет решать пользователь;
v каковы предпочтительные способы и методы решения;
v при каких ограничениях на количество результатов и способы их получения должна быть решена задача;
v каковы требования к языку общения и организации диалога;
v какова степень общности (конкретности) знаний о проблемной области, доступная пользователю;
v каковы цели пользователей.
Состав знаний о языке общения зависит как от языка общения, так и от требуемого уровня понимания.
В области экспертных систем представление знаний интересует в основном, как средство отыскания методов формального описания больших массивов полезной информации, с целью их последующей обработки с помощью символических вычислений. Формальное описание означает упорядочение в рамках какого-либо языка, обладающего достаточно четко формализованным синтаксисом построения выражений и такого же уровня семантикой, увязывающей смысл выражения с его формой.
Символические вычисления означают выполнение нечисловых операций, в которых могут быть сконструированы символы и символьные структуры для представления различных концептов и отношений между ними.
В области искусственного интеллекта ведется интенсивная работа по созданию языков представления (representation languages). Под этим термином понимаются компьютерные языки, ориентированные на организацию описаний объектов и идей, в противовес статическим последовательностям инструкций или хранению простых элементов данных. Основными критериями доступа к представлению знаний являются логическая адекватность, эвристическая мощность и естественность, органичность нотации.
Логическая адекватность означает, что представление, должно обладать способностью распознавать все отличия, которые вы закладываете в исходную сущность. Например, каждое лекарство обладает нежелательным побочным эффектом, специфическим для этого препарата
Эвристическая мощность означает, что наряду с наличием выразительного языка представления должно существовать некоторое средство использования представлений, сконструированных и интерпретируемых таким образом, чтобы с их помощью можно было решить проблему.
Естественность нотации следует рассматривать как положительную черту системы, поскольку большинство приложений, построенных на базе экспертных систем, нуждается в накоплении большого объема знаний, а решить такую задачу довольно трудно, если соглашения в языке представления слишком сложны. Выражения, которыми формально описываются знания, должны быть по возможности простыми для написания, а их смысл должен быть понятен даже тому, кто не знает, как же компьютер интерпретирует эти выражения.