Читать онлайн Искусственный интеллект: как создать свою экспертную систему? бесплатно

Искусственный интеллект: как создать свою экспертную систему?

Введение

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

Цель этой книги – познакомить читателя, дать ему представление об экспертных системаах – одной из технологий искусственного интеллекта.

Искусственный интеллект и экспертная система

В настоящее время искусственный интеллект зачастую сводят к машинному обучению, что не совсем правильно. Машинное обучение (machine learning) и его разновидности, например, нейросети (neural network), это – технология, позволяющая решать задачи из области искусственного интеллекта (распознавание образов, распознавание речи, машинный перевод, анализ больших данных и т.д.). Другой технологией искусственного интеллекта являются экспертные системы (expert system).

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

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

Есть и другие определения термина "экспертная система".

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

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

При реализации экспертной системы важным вопросом является выбор архитектуры и языка программирования.

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

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

Экспертная система как инструмент поддержки принятия решений

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

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

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

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

Медицина

– Диагностика и выявление причин болезни

– Выбор стратегии лечения

– Подбор лекарства

– Анализ кардиограммы

– Подбор диеты

Техника

– Выявление причин неисправностей оборудования

– Устранение аварийных ситуаций

– Выбор конфигурации системы

– Выбор технологии, материала, комплектующих, оборудования

Бизнес

– Оценка инвестиционной привлекательности проекта

– Оценка рисков проекта

– Выбор/оценка поставщика (подрядчика)

– Выбор стратегии развития бизнеса

– Формирование команды проекта

Финансы

– Оценка надежности заемщика

– Операции с ценными бумагами

– Оценка рисков

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

– Выбор стратегии поведения

Мода

– Выбор стиля, элемента одежды

Экспертная система – взгляд снаружи

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

Рис.0 Искусственный интеллект: как создать свою экспертную систему?

Рис. 1. Диалог с экспертом

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

Рис.1 Искусственный интеллект: как создать свою экспертную систему?

Рис. 2. Диалог с экспертной системой

Архитектура экспертной системы

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

Рис.2 Искусственный интеллект: как создать свою экспертную систему?

Рис. 3. Архитектура экспертной системы на правилах (МВ – механизм или "машина" выводв; ИР – интерфейс разработчика; ОС – объясняющая система; ИП – интерфейс пользователя)

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

Рис.3 Искусственный интеллект: как создать свою экспертную систему?

Рис. 4. Минимальная архитектура экспертной системы

(ИР – интерфейс разработчика; МВ – "машина" вывода)

База знаний

Основой экспертной системы является база знаний о предметной области. База знаний (БЗ) содержит знания – информацию об объектах предметной области.

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

– семантические сети

– фреймы

– правила логического вывода

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

Правила логического вывода в общем случае представляют собой выражения вида

ЕСЛИ условие ТО заключение

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

Например, на естественном языке правила выбора галстука можно записать так:

If jacket is blazer and shirt is white classic then tie is narrow

If jacket is sport coat and shirt is striped then no tie

В базе знаний экспертной системы эти правила выглядят так:

rule(1)

jacket = blazer

shirt = white_classic

then

tie=narrow;

rule(2)

jacket = sport_coat

shirt = striped

then

tie = no;

Факты базы знаний представляю собой утверждения вида

Объект = Значение, cf=к

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

Например, если на вопрос экспертной системы Shirt? пользователь введет white_classic, то в базу знаний будет добавлен факт

shirt=white_classic, cf=100

Если в процессе консультации в ответ на вопросы машины вывода Jacket? и Shirt? пользователь, соответственно, введет sport_coat и strip, то в базу знаний сначала будут добавлены факты

jacket=sport_coat, cf=100

shirt=strip, cf=100

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

tie=no,cf=60

Механизм вывода

Механизм или "машина" вывода (inference engine) моделирует процесс рассуждений эксперта, реализует цепочку вывода заключения путем сопоставления фактов и правил логического вывода.

Интерфейс пользователя

Интерфейс пользователя (user interface) обеспечивает взаимодействие пользователя с экспертной системой в процессе консультации.

Интерфейс разработчика

Интерфейс разработчика (developer interface) имеет доступ к базе знаний, что позволяет вносить в нее изменения, корректировать правила логического вывода.

Объясняющая система

Объясняющая система (explanation module) обеспечивает отображение цепочки вывода заключения, показывает правила, на основе которых заключение было сделано.

Оболочка экспертной системы

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

Рис.4 Искусственный интеллект: как создать свою экспертную систему?

Рис. 5. Экспертная система = Оболочка + База знаний

UNGIN – оболочка экспертной системы

Оболочка экспертной системы UNGIN представляет собой приложение для универсальной платформы Windows и может работать на любом устройстве, на котором установлена операционная система Microsoft Windows 10/11.

Оболочку экспертной системы UNGIN можно бесплатно установить из магазина приложений Microsoft по ссылке

https://www.microsoft.com/store/apps/9PHPDLLRDX4P

Главное окно оболочки экспертной системы UNGIN приведено на рис. 6.

Рис.5 Искусственный интеллект: как создать свою экспертную систему?

Рис. 6. Окно оболочки UNGIN

Читать далее