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

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

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

Общее представление о работе экспертной системы показано на рисунке 6.2.

Экспертные системы содержат в базе данных три различных модуля:

    факты о признаках конкретной ситуации

    правила относящиеся к области экспертизы

правила работы с «экспертными правилами» или «машина вывода»

Схема работы экспертной системы.

Рисунок 6.2

      1. Архитектура экспертных систем

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

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

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

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

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

    База данных (БД)

    Список порождающих правил (ПП)

    Метод выбора, какое порождающее правило следует применить при данном состоянии базы данных

Каждое порождающее правило (продукция) имеет форму ЕСЛИ (условие), ТО (действие) или, возможно, форму ЕСЛИ (условие), ТО (действие 1), В ПРОТИВНОМ СЛУЧАЕ (действие2). При этом процедуры сопоставления с образцом определяет, является ли данное правило применимым вообще.

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

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

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

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

    получение решений поставленных задач - пользователь как потребитель

    усовершенствование или наращивание знаний системы - пользователь как учитель

    извлечение пользы для человека из базы знаний - пользователь как ученик

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

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

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

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


Рис. 11.15.

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

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

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

На данном рисунке область знаний полностью включена в предметную область. Часть, выходящая за пределы области знаний, символизирует область, в которой отсутствуют знания о какой-либо из задач, относящихся к данной предметной области.

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


Рис. 11.16.

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

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

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


Рис. 11.17.

Вначале инженер по знаниям устанавливает диалог с экспертом-человеком, чтобы выявить знания эксперта. Этот этап аналогичен этапу работы, выполняемому системным проектировщиком при обычном программировании в ходе обсуждения требований к системе с клиентом, для которого создается программа. Затем инженер по знаниям представляет знания в явном виде для внесения в базу знаний. После этого эксперт проводит оценку экспертной системы и передаёт критические замечания инженеру по знаниям. Такой процесс повторяется снова и снова, до тех пор, пока эксперт не оценит результаты работы системы как удовлетворительные.

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

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

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

В cистеме, основанной на правилах, знания в проблемной области, необходимые для решения задач, закодированы в форме правил и содержатся в базе знаний. Безусловно, для представления знаний наиболее широко применяются правила. Элементы типичной экспертной системы , основанной на правилах, показаны на рис.11.18 .


Рис. 11.18.

Экспертная система состоит из описанных ниже компонентов.

  • Пользовательский интерфейс. Механизм, с помощью которого происходит общение пользователя и экспертной системы .
  • Средство объяснения. Компонент, позволяющий объяснить пользователю ход рассуждений системы.
  • Рабочая память. Глобальная база фактов , используемых в правилах.
  • Машина логического вывода. Программный компонент, который обеспечивает формирование логического вывода (принимая решение о том, каким правилам удовлетворяют факты или объекты). Располагает выполняемые правила по приоритетам и выполняет правило с наивысшим приоритетом.
  • Рабочий список правил. Созданный машиной логического вывода и расположенный по приоритетам список правил, шаблоны которых удовлетворяют фактам или объектам, находящимся в рабочей памяти.
  • Средство приобретения знаний. Автоматизированный способ, позволяющий пользователю вводить знания в систему, а не привлекать к решению задачи явного кодирования знаний инженера по знаниям.

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

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

горит красный свет -> стоять

горит зеленый свет -> двигаться

Продукционные правила могут быть выражены в эквивалентном формате псевдокода IF-THEN следующим образом:

Правило: red__light

IF горит красный свет THEN стоять

Правило: green_light

IF горит зеленый свет THEN двигаться

Каждое правило обозначается именем. Вслед за именем находится часть IF правила. Участок правила между частями IF и THEN правила упоминается под разными именами, такими как антецедент, условная часть, часть шаблона или левая часть (left-hand-side - LHS). Такое отдельно взятое условие, как

"горит красный свет" называется условным элементом, или шаблоном.

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

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

Обратный логический вывод предусматривает формирование рассуждений в обратном направлении - от гипотезы (потенциального заключения, которое должно быть доказано) к фактам, которые подтверждают гипотезу. Например, если вы не выглядываете наружу, но кто-то вошёл в дом с влажными ботинками и зонтиком, то можно принять гипотезу, что идёт дождь. Чтобы подтвердить эту гипотезу, достаточно спросить данного человека, идёт ли дождь. В случае положительного ответа будет доказано, что гипотеза истинна, поэтому она становится фактом. Как уже было сказано выше, гипотеза может рассматриваться как факт, истинность которого вызывает сомнение и должна быть установлена. В таком случае гипотеза может интерпретироваться как цель, которая должна быть доказана.

В зависимости от проекта экспертной системы в машине логического вывода осуществляется либо прямой, либо обратный логический вывод, либо обе эти формы логического вывода. Например, язык CLIPS спроектирован в расчёте на применение прямого логического вывода, в языке PROLOG осуществляется обратный логический вывод, а в версии CLIPS, называемой Eclipse, разработанной Полом Хэйли (Paul Haley), осуществляется и прямой, и обратный логический выводы. Выбор машины логического вывода зависит от типа задачи. Диагностические задачи лучше всего решать с помощью обратного логического вывода, в то время как задачи прогнозирования, текущего контроля и управления проще всего поддаются решению с помощью прямого логического вывода.

Рабочая память может содержать факты, касающиеся текущего состояния светофора, такие как "горит зелёный свет" или "горит красный свет". В рабочей памяти может присутствовать любой из этих фактов или оба факта одновременно. Если светофор работает нормально, то в рабочей памяти будет находиться только один факт. Но возможно также, что в рабочей памяти будут присутствовать оба факта, если светофор неисправен. В чём состоит различие между базой знаний и рабочей памятью? Факты не взаимодействуют друг с другом. Факт "горит зелёный свет" не воздействует на факт "горит красный свет". С другой стороны, знания о работе светофоров говорят о том, что если одновременно присутствуют оба факта, то светофор неисправен.

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

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

Вслед за частью THEN правила находится список действий, которые должны быть выполнены после запуска правила. Эта часть правила называется консеквентом, или правой частью (Right-Hand Side - RHS). Если происходит запуск правила red_light, выполняется его действие "стоять". Аналогичным образом после запуска правила green_light его действием становится "двигаться". В состав конкретных действий обычно входит добавление или удаление фактов из рабочей памяти либо вывод результатов. Формат описания этих действий зависит от синтаксиса языка экспертной системы . Например, в языке CLIPS действие по добавлению в рабочую память нового факта, называемого "stop" (стоять), принимает вид (assert stop).

Машина логического вывода работает в режиме осуществления циклов "распознавание – действие". Для описания указанного режима работы применяются также другие термины, такие как цикл "выборка - выполнение", цикл "ситуация - отклик" и цикл "ситуация - действие". Но как бы ни назывался такой цикл, машина логического вывода снова и снова выполняет некоторые группы задач до выявления определённых критериев, которые вызывают прекращение выполнения. При этом решаются общие задачи, обозначенные в приведённом ниже псевдокоде как разрешение конфликтов, действие, согласование и проверка условий останова.

WHILE работа не закончена

Разрешение конфликтов. Если имеются активизированные правила, то выбрать правило с наивысшим приоритетом; в противном случае работа закончена.

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

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

Проверка условий останова. Если осуществлено действие halt или дана команда break, то работа закончена.

Принять новую команду пользователя.

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

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

В рабочем списке правил возникают конфликты, если различные активизированные правила имеют одинаковый приоритет и машина логического вывода должна принять решение о том, какое из этих правил необходимо запустить. В различных командных интерпретаторах для решения этой проблемы применяются разные способы. Ньюэлл и Саймон использовали такой подход, что правила, введённые в систему в первую очередь, приобретают по умолчанию наивысший приоритет. В языке CLIPS правила имеют по умолчанию одинаковый приоритет, если каким-то из них не присваивается другой приоритет инженером по знаниям.

После завершения выполнения всех правил управление возвращается к интерпретатору команд верхнего уровня, чтобы пользователь мог выдать командному интерпретатору экспертной системы дополнительные инструкции. Работа в режиме верхнего уровня соответствует применяемому по умолчанию режиму, в котором пользователь взаимодействует с экспертной системой , и обозначается как задача "Accept a new user command" (Принять новую команду пользователя). Приём новых команд происходит именно на верхнем уровне.

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

Главной особенностью экспертной системы является предусмотренное в ней средство объяснения, которое даёт возможность пользователю задавать вопросы о том, как система пришла к определённому заключению и для чего ей требуется определённая информация. Система, основанная на правилах, способна легко ответить на вопрос о том, как было получено определённое заключение, поскольку хронология активизации правил и содержимое рабочей памяти можно сохранять в стеке. Но такая возможность не столь легко достижима при использовании искусственных нейронных сетей , генетических алгоритмов или других систем, разработка которых ещё продолжается. Безусловно, были сделаны попытки предусмотреть в некоторых системах возможность объяснения, но созданные при этом средства объяснения не могут сравниться по своей наглядности со средствами любой экспертной системы , спроектированной человеком. Развитые средства объяснения могут дать возможность пользователю задавать вопросы типа "что, если" и изучать альтернативные пути формирования рассуждений по принципу гипотетических рассуждений.

Исследования в области искусственного интеллекта начали проводиться в 60-х годах. Под искусственным интеллектом сегодня понимают науку, изучающую возможности создания для ЭВМ таких программ, которые решают задачи, требующие определенных интеллектуальных усилий, а не рутинных процедур при выполнении их человеком. Задачей этой науки является воссоздание с помощью искусственных устройств, в основном ЭВМ, разумных суждений и действий. К настоящему времени на основе исследований в области искусственного интеллекта возникла новая отрасль индустрии – разработка интеллектуальных систем.

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

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

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

На пути разработки таких систем существуют две основные трудности. Во-первых, в большинстве случаев, выполняя какие-либо действия, человек четко не осознает, как он это делает. Другими словами, он не знает точного алгоритма выполнения таких действий, как понимание текста, принятие решения в тех или иных условиях. Во-вторых, несмотря на постоянное совершенствование и развитие по уровню компетентности в рассматриваемой деятельности ЭВМ все еще далеки от человека: они работают по соответствующей программе.

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

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

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

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

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

Термин «системы, основанные на знаниях» появился в 1976 году одновременно с первыми системами, аккумулирующими опыт и знания экспертов. Это были экспертные системы для медицины и химии. Они ставили диагноз при инфекционных заболеваниях крови и расшифровывали данные масс-спектрографического анализа.

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

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

1. Знания и данные

Чем же отличаются знания от данных?

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

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

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

Знания, которыми обладает специалист в какой-либо области, можно разделить на формализованные (точные) и неформализованные (неточные). Формализованные знания формулируются в книгах и руководствах в виде общих и строгих суждений, отражающих универсальные знания. Неформализованные знания, как правило, не попадают в книги в связи с их субъективностью, приблизительностью. Знания такого рода являются обобщением многолетнего опыта работы и интуиции специалистов.

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

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

Также знания делят на процедурные и декларативные. Любые знания можно представить как декларативно, так и процедурно, но, в зависимости от решаемых за¬дач, одни знания удобно иметь в декларативном представлении, а другие в процедур¬ном. Например, факт в декларативном представлении — это просто утверждение, что факт истинен.

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

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

2. Характеристики и особенности экспертных систем (ЭС)

Мы под ИС будет понимать следующее: ИС - это программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.

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

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

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

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

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

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

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

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

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

3. Стратегии получения знаний

1. Знания, виды знаний, базы знаний, банки знаний

Существуют различные определения понятия «знания».

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

Под «знаниями» понимают формализованную информацию, на которую ссылаются или которую используют в процессе решения задачи.

Знание о предметной области включает описание объектов, их окружения, необходимых явлений, фактов, а также отношений между ними. Сложность понятия «знание» заключена во множественности его носителя и неразрывности с понятием «данные».

Выделяют несколько уровней формализации знания о предметной области:

Знания в памяти человека;

Знания в форме языковой модели предметной области, используемые человеком и зафиксированные на физических носителях с использованием контекстно-зависимых языков, графических образов и т.п.;

Знания, формализованные для их представления при использовании в ЭВМ;

Фактографические сведения или данные.

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

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


2. Модели представления знаний

Наиболее распространенными моделями представления знаний являются:

Продукционные системы;

Логические модели;

Семантические сети.

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


Базу данных, содержащую множество фактов;

Базу правил, содержащую набор продукций;

Интерпретатор (механизм логического вывода) или правила работы с продукциями.

База правил и база данных образуют базу знаний.

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

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

Продукции по сравнению с другими формами представления знаний имеют следующие преимущества:

Модульность;

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

Естественность (вывод заключения в продукционной системе во многом аналогичен процессу рассуждений эксперта);

Гибкость родовидовой иерархии понятий, которая поддерживается только как связи между правилами (изменение правила влечет за собой изменение иерархии).

Однако продукционные системы не свободны от недостатков:

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

Этот процесс трудно поддается управлению;

Сложно представить родовидовую иерархию понятий.

Логические модели представления знаний реализуются средствами логики предикатов.

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

Выражение, в котором утверждается или отрицается наличие каких-либо свойств у объекта, называется высказыванием.

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

Семантическая сеть описывает знания в виде сетевых структур. В качестве вершин сети выступают понятия, факты, объекты, события и т.п., а в качестве дуг сети – отношения, которыми вершины связаны между собой.

3. Стратегии получения знаний

Существует несколько стратегий получения знаний. Наиболее распространенные:

  1. извлечение;
  2. приобретение;
  3. обнаружение (формирование).

Рисунок 1 - Три стратегии получения знаний

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

Рисунок 2 - Классификация методов извлечения знаний

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

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


4. Свойства систем, основанных на знаниях

Рисунок 3 – Свойства систем, основанных на знаниях

5. Критерии целесообразности решения задач с помощью систем, основанных на знаниях

Рисунок 4 – Критерии целесообразности решения задач с помощью систем, основанных на знаниях

6. Области применения систем, основанных на знаниях

Области применения систем, основанных на знаниях, весьма разнообразны:

Производство;

Военные приложения;

Медицина;

Социология;

Геология;

Сельское хозяйство;

Управление;

Юриспруденция;

7. Типы решаемых задач с помощью систем, основанных на знаниях

Типы решаемых задач с помощью систем, основанных на знаниях:

Интерпретация символов или сигналов – составление смыслового описания по входным данным;

Диагностика – определение неисправностей (заболеваний) по симптомам;

Мониторинг – наблюдение за изменяющимся состоянием объекта и сравнение его показателей с установленными или желаемыми;

Проектирование – разработка объекта с заданными свойствами при соблюдении установленных ограничений;

Прогнозирование – определение последствий, наблюдаемых ситуаций;

Планирование – определение последовательности действий, приводящих к желаемому состоянию объекта;

Управление – воздействие на объект для достижения желаемого поведения;

Обучение – объяснение или консультации в той или иной области знаний.

Системы, основанные на знаниях, реализуются на базе следующих интеллектуальных алгоритмов:

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

Нейронные сети;

Нечеткая логика;

Генетические алгоритмы.

Т.к. в системах, основанных на знаниях, используются интеллектуальные алгоритмы, то такие системы иногда называют системами искусственного интеллекта.