
- •Основные понятия и определения области искусственного интеллекта.
- •Экспертные системы.
- •Продукционные модели представления знаний.
- •Управление разрешением конфликтов.
- •Семантические сети.
- •Фреймовая модель.
- •Разработка экспертных систем средствами clips
- •Определение правил.
- •Наблюдение за процессом интерпретации.
- •Использование шаблонов.
- •Определение функций в clips
- •Поиск решений в пространстве состояний.
- •Поиск решений при сведении задач к подзадачам
- •Поиск решений в игровых программах.
- •Общая характеристика задач распознавания образов и их типы.
- •Системы распознавания речи.
- •Искусственные нейронные сети.
Экспертные системы.
Понятие экспертных систем. Основные функции и компоненты экспертных систем.
Разработка экспертных систем.
1. Под экспертными системами понимают программную систему, аккумулирующую знания эксперта в определенной области и вырабатывающую решение и рекомендации на уровне эксперта.
Экспертные системы отличаются от традиционных программных систем обработки данных тем, что они:
реконструируют методику решения задач экспертом в соответствующей области.
формируют выводы, основываясь на знаниях, которые хранятся отдельно от программного кода, управляемого процессом вывода.
используют при решении задач эвристические методы, которые не требуют исчерпывающей исходной информации, и следовательно, обеспечивают решения, характеризуемые определенной степенью уверенности.
имеют возможность накапливать знания в процессе функционирования.
обладают способностью объяснить предлагаемые решения.
обеспечивают дружественный интерфейс с пользователем.
Принципиальное отличие экспертных систем от других систем, основанных на знаниях, состоит в том, что знания, хранящиеся в экспертных системах, приобретаются в процессе общения с экспертом.
Экспертные системы представляют собой программные системы, использующие эвристические методы, разработанные экспертами для решения задач в узкой специальной области.
Основываясь на знаниях и эвристических методах поиска решения, экспертные системы характеризуются следующими свойствами:
- открытостью,
- гибкостью,
- недетерминированностью решений и рекомендаций.
Открытость экспертных систем означает, что пользователь может проверить решения, принимаемые экспертной системой на любом шаге выполнения программы. Наличие данного свойства у экспертной системы важно по следующим причинам:
- пользователь не сможет доверять рекомендациям экспертной системы, если у него не будет возможности проверить обоснованность сделанных выводов. Пользователь должен получить всю информацию, необходимую для того, чтобы быть уверенным в том, что принятое решение правильно, поэтому экспертная система должна обладать способностью объяснять предлагаемое решение.
- открытость позволяет оценивать корректность знаний, задействованных на каждом этапе логического вывода, что обычно важно при отладке базы знаний.
Гибкость экспертной системы означает простоту модификации базы знаний, экспертная система должна иметь средства, обеспечивающие добавление, изменение и удаление элемента базы знаний. Эта возможность предполагает отделение базы знаний от процедур поиска решений.
Недетерминированность обусловлена применением в экспертной системе эвристических методов решения задач, которые не гарантируют успех. Эвристическая природа как экспертных знаний, так и методов поиска решений, создает определенные трудности при оценке качества функционирования экспертной системы.
Один из путей решения этой проблемы состоит в сравнении решений, предлагаемых экспертной системой и экспертом. Считается, что экспертная система функционирует на уровне эксперта, если пользователь, которому не известно, как получены результаты экспертизы, не может отличить лучшие решения, предложенные экспертной системой от соответствующих решений эксперта.
Экспертные системы ориентированы на классы задач, которые плохо поддаются решению с помощью математических методов. Перечень типовых задач, решаемых экспертной системой в самых различных областях, включает:
Интерпретацию – извлечение информации из первичных данных.
Диагностику – обнаружение неисправностей и причин их появления в некоторой системе.
Мониторинг – непрерывная интерпретация данных в реальном времени, сигнализаций и выходе тех или иных параметров за допустимые пределы.
Прогноз – предсказание вероятных последствий на основе прошедших и настоящих событий.
Планирование – определение последовательностей действий, направленных на достижение заранее поставленных целей.
Проектирование – определение конфигурации системы при заданных ограничениях.
Отладку и ремонт – выполнение последовательности действий по приведению той или иной системы к требуемым режимам функционирования.
Обучение – интерпретация, диагностика и коррекция знаний и умений обучаемого.
Управление – формирование управляющих воздействий, определяющих поведение сложных систем.
Типовая архитектура экспертной системы представлена на рисунке:
Взаимодействие с экспертной системой осуществляется с помощью интерфейса, в качестве пользователя такой системы выступает либо конечный пользователь (ЛПР – лицо, принимающее решение), либо эксперт, либо инженер по знаниям. Этим категориям пользователей предоставляются разные возможности взаимодействия с системой.
Ядро экспертной системы образует база данных, база знаний и машина вывода. База данных представляет собой рабочую память, в которой хранятся текущие данные, заключения и другая информация, имеющая отношение к анализируемой системой ситуации. База знаний обеспечивает хранение знаний, представленных с помощью одной из моделей (логической, продукционной, фреймовой, сетевой). Машина вывода (подсистема поиска решений), используя данные и знания, организует управление выводом в соответствии с используемой моделью представления знаний. Например, при использовании продукционной модели представления знаний выполняется цикл «распознавание-действие». Процедуры, реализующие цикл управления, отделены от продукционных правил.
Отделение знаний, хранящихся в экспертной системе, от алгоритмов поиска решений позволяет:
Представлять знания в более естественной форме, по сравнению со знаниями, встроенными непосредственно в процедуры.
Разработчику экспертной системы в большей степени сосредоточиться на накоплении и организации предметных знаний, а не на деталях компьютерной реализации.
Изменять содержимое баз знаний без необходимости внесения изменений в программный код.
Создавать оболочки экспертных систем, которые можно наполнять знаниями различных предметных областей.
Экспериментировать с различными режимами управления экспертной системой без изменений баз знаний.
Подсистема объяснения экспертной системы позволяет пользователю выяснить, как система получила решение задачи, и какие знания были при этом использованы. Это повышает доверие пользователя к системе и облегчает ее тестирование. Подсистема объяснения позволяет отвечать на две группы вопросов:
Вопросы типа «как?» (как система пришла к этому выводу)
Вопросы типа «почему?» (почему требуются значения тех или иных фактов)
Подсистема приобретения знаний используется как с целью автоматизации процесса наполнения экспертной системы знаниями, так и при корректировке базы знаний, при ее обновлении, пополнении или исключения элементов знаний. Данные процессы реализуются либо при непосредственном участии инженера по знаниям (эксперта), либо в автоматическом режиме в ходе обучения системы.
2. Использовать экспертную систему для решения задачи следует тогда, когда разработка экспертной системы возможна, оправданна и уместна. Чтобы разработка экспертной системы была возможна, необходимо выполнение следующих требований:
1) Должны быть эксперты, которые эффективно решают проблемы в заданной области.
2) Оценки правильности решений, сделанные различными экспертами, должны в основном совпадать, иначе нельзя будет определить качество разработанной экспертной системы.
3) Эксперты должны уметь объяснять методы, которые они используют в ходе решения задачи, в противном случае знания экспертов не могут быть перенесены в память экспертной системы.
4) Задача должна решаться на основе рассуждений.
5) Задача должна относиться к «проработанной области», иначе потребуются основательные исследования.
6) Задача не должна в значительной степени опираться на соображения «здравого смысла», так как подобные знания плохо переносятся в экспертную систему.
Применение экспертной системы к решению той или иной задачи может быть оправдано следующими факторами:
Решение задачи создает значительный экономический эффект.
Привлечение экспертов к решению задачи невозможно из-за их малочисленности и высокой оплаты их труда.
Увольнение персонала организации приводит к значительному снижению уровня компетенции в организации.
Необходимость принятия решений во вредных условиях, исключающих присутствие человека.
Использование экспертной системы уместно, если решаемая задача обладает следующими характеристиками:
Решение задачи осуществляется путем манипулирования символьными структурами, а не числами, что характерно для традиционных математических пакетов
Процесс решения задачи носит эвристический характер и основан на использовании эмпирических правил, а не формальных математических процедур.
Для подготовки эксперта требуются многие годы обучения.
Задача должна представлять практический интерес и быть достаточно «узкой», чтобы допускать решение методами обработки знаний.
В разработке экспертной системы участвуют следующие специалисты: инженер по знаниям, эксперт и программисты.
Инженер по знаниям является специалистом в области представления знаний и языков искусственного интеллекта. Его основные задачи:
- выбор инструментальных средств реализации проекта;
- извлечение знаний из области экспертизы;
- структурирование знаний;
- корректное заполнение базы знаний;
Эксперт определяет знания, необходимые для решения задачи с помощью экспертной системы, обеспечивает их полноту и правильность.
Программист обеспечивает реализацию всех основных составных частей экспертной системы и их сопряжение друг с другом, а также с внешними подсистемами.
Существенную роль при разработке экспертной системы играет и конечный пользователь, который определяет многие проектные ограничения. В ходе проектирования необходимо постоянно учитывать вопросы, ассоциируемые с конечным пользователем:
Какой уровень объяснения требуется пользователю.
Может ли пользователь обеспечивать ввод корректных данных.
Удовлетворителен ли пользовательский интерфейс.
Упрощает ли система решение задач пользователем.
При разработке экспертной системы используется концепция быстрого прототипа. Согласно этой концепции, за короткий промежуток времени создается упрощенная версия экспертной системы – прототип, который последовательно эволюционирует в законченную систему.
Такая опытная технология разработки характеризуется постоянным взаимодействием инженера по знаниям с экспертом. Работа над проектом начинается с «погружения» инженера по знаниям в предметную область, затем инженер по знаниям начинает процесс извлечения экспертных знаний. Обычно это выполняется фиксацией объяснений эксперта при решении простых задач.
После получения инженером по знаниям общего представления о предметной области и решением с помощью эксперта нескольких задач он готов приступить к действительному проектированию системы. Инженер по знаниям выбирает подходящую модель по знаниям, определяет поисковую стратегию (прямую, обратную и т.д.), и проектирует пользовательский интерфейс.
Данный этап работы завершается созданием прототипа экспертной системы. Прототип экспертной системы должен решать задачи из ограниченной предметной области и обеспечивать возможность тестирования принятых проектных допущений. Используя прототип экспертной системы для решения новых задач, инженер по знаниям и эксперт проверяют и устраняют недостатки знаний, заложенных в экспертную систему. Если выясняется, что допущения, сделанные при создании прототипа, корректные, то можно перейти к проектированию действующего варианта экспертной системы.
Преобразование прототипа в действующую экспертную систему может включать перепрограммирование ее составных частей, позволяющих учесть особенности конкретной вычислительной системы и повысить эффективность реализации экспертной системы.
Построение экспертной системы выполняется последовательной корректировкой решений, принимаемых на различных этапах проектирования. Это позволяет говорить, что экспертная система скорее наращивается, чем конструируется.
Структурная схема проектирования экспертной системы:
Н
а
этапе идентификации формулируется
проблема, определяются задачи, ресурсы
и цели. В результате получается
неформальное описание задач, подлежащих
решению, и формируются основные требования
к экспертной системе.
На этапе концептуализации инженер по знаниям совместно с экспертом выясняет, какие понятия, отношения, стратегии поиска решений требуются для решения задач в заданной области. Этап завершается разработкой неформального описания предметной области в виде схемы, которая отражает основные понятии предметной области и их взаимосвязи.
Формализация состоит в выборе модели представления знаний и разработке на ее основе формального представления о предметной области.
На этапе реализации формализованные знания закладываются в базу знаний и разрабатываются необходимые программы.
Этап первоначальной реализации должен осуществляться быстро, с использованием языков высокого уровня абстракции данных, в частности, с помощью оболочек экспертных систем.
Испытания позволяют выяснить правильность работы системы при решении требуемых задач. В ходе испытаний могут быть обнаружены ошибки, допущенные на разных этапах проектирования, что потребует пересмотра соответствующих решений.
На этапе испытания промежуточных версий экспертной системы с системой взаимодействует и конечный пользователь, который определяет, отвечает ли система его требованиям.
Знания и их представление в системах искусственного интеллекта.
Определение понятия «знание». Основные свойства знаний.
Обзор основных моделей представления знаний.
1. В настоящее время в области ИИ нет формального единого определения понятия «знание». Многими исследователями признается, что знания – сложноорганизованные данные, хранимые в памяти системы ИИ, включающие в себя сведения об объектах и отношениях предметной области, процессах взаимодействия объектов во времени и в пространстве, правилах осуществления логического вывода.
Важным элементом этого определения является указание на то, что знание – информация, на основе которой выполняется логический вывод. Знания характеризуются рядом свойств, отличающих их от традиционных моделей данных:
Внутренняя интерпретируемость – при хранении знаний в памяти системы ИИ наряду с традиционными элементами данных хранятся и информационные структуры, позволяющие интерпретировать содержимое соответствующих ячеек памяти.
Структурированность – знания состоят из отдельных информационных единиц, между которыми можно установить классифицирующие отношения – род, вид, класс, элемент и т.д.
Связность – между информационными единицами предусматриваются связи различного типа: причина-следствие, одновременно, быть рядом и другие. Данные связи определяют семантику и прагматику предметной области.
Семантическая метрика – на множестве информационных единиц, хранимых в памяти, вводятся некоторые шкалы, позволяющие оценить их семантическую близость. Это позволяет находить в информационной базе знания, близкие к уже найденным.
Активность – с помощью данного свойства подчеркивается принципиальное отличие знаний от данных. Выполнение тех или иных действий в системах ИИ инициируется с состоянием базы знаний. При этом предполагается, что появление новых фактов и связей может активизировать систему.
2. Представление знаний – способ формального выражения знаний о предметной области в компьютерно-интерпретируемой форме. Соответствующие формализмы, обеспечивающие указанное представление, называют моделями представления знаний.
Модели представления знаний можно условно разделить на декларативные и процедурные. В декларативных моделях знания представляются в виде описаний объектов и отношений между объектами без указания в явном виде, как эти знания обрабатывать. Такие модели предполагают отделение описаний (деклараций информационных структур) от механизма вывода, оперирующего этими структурами.
В процедурных моделях знания представляются алгоритмами (процедурами), которые содержат необходимые описания информационных элементов и одновременно определяют способы их обработки.
Конкретные модели, применяемые на практике, представляют собой комбинацию декларативных и процедурных представлений. Наиболее распространенными являются следующие модели представления знаний:
Логические модели.
Продукционные модели.
Сетевые модели.
Фреймовые модели.
Логические модели реализуются средствами логики предикатов. В этом случае знания по предметной области представляются в виде совокупности логических формул, тождественные преобразования формул позволяют получать новые знания.
Достоинством логических моделей представления знаний является наличие четкого синтаксиса и широко принятой формальной семантики, а также теоретически обоснованных процедур автоматического вывода.
Основным недостатком данных моделей является невозможность получения заключений в областях, где требуются правдоподобные выводы, когда результат получается с определенной оценкой уверенности в его истинности. Кроме этого, такие модели характеризуются монотонным характером вывода, то есть в базу знаний добавляются только истинные утверждения, что исключает возможность противоречий.
На практике часто встречаются не монотонные рассуждения, которые трудно реализовать в рамках логической модели.
В продукционной модели знания представляются набором правил вида «если а, то б», где условие правила а является утверждением о содержимом базы фактов, а следствие б говорит о том, что надо делать, когда данное продукционное правило активизировано.
Продукционные модели представления знаний, благодаря естественной модульности правил, наглядности и простоте их создания, широко применяются в интеллектуальных системах.
Семантические сети являются частным случаем сетевых моделей представления знаний. Формально сетевые модели задаются в следующем виде: H=<I, C1, С2,…, Сn, Q>,
где i – множество информационных элементов, хранящихся в узлах сети,
Сn – типы связей между информационными элементами,
Q – отображение, которое устанавливает соответствие между множеством типов связей и множеством информационных элементов сети.
Сетевые модели представления знаний различаются между собой типами используемых связей.
Если в сети используются иерархические связи (класс, подкласс, род, вид и тому подобное), то сеть называется классифицирующей.
Если связи между информационными элементами представляются функциональными отношениями, позволяющими вычислять значения одних информационных элементов от значения других, то сети называются функциональными (вычислительными).
Если в сети допускаются связи различного типа, то ее называют семантической сетью. Семантическая сеть представляет собой направленный граф, в котором вершинам соответствуют объекты (сущности предметной области), а дугам – отношения, в которых находятся эти объекты.
Вывод в семантических сетях может выполняться на основе алгоритмов сопоставления, путем выделения подграфов с определенными свойствами. К достоинствам семантических сетей относят:
- большую выразительную способность,
- наглядность графического представления,
- близость структуры сети к семантической структуре фраз естественного языка.
Недостатком представления знаний в виде семантических сетей является отсутствие единой терминологии.
Фреймовые модели представления знаний используют теорию организации памяти, понимания и обучения, предложенную М. Минским. Фрейм – структура данных, предназначенная для представления стереотипных ситуаций.
Фрейм состоит из слотов. Значением слота могут быть числа, выражения, тексты, программы, ссылки на другие фреймы.
Совокупности фреймов образуют иерархические структуры, построенные по родо-видовым признакам, что позволяет наследовать значения слотов. Такое свойство фреймов обеспечивает экономное размещение базы знаний в памяти. Кроме этого, значения слотов могут вычисляться с помощью различных процедур, то есть фреймы комбинируют в себе декларативные и процедурные представления знаний.
Фреймовые модели можно понимать как сетевые модели представления знаний, когда фрагмент сети представляется фреймом с соответствующими слотами и значениями.