Никита Культин
Искусственный интеллект: как создать свою экспертную систему?
Введение
В последнее время системы, обладающие “искусственным интеллектом”, стали проникать практически во все области человеческой деятельности: технику, транспорт, промышленность, медицину, менеджмент, банковский сектор, юриспруденцию, науку и образование. Разработчики и потенциальные пользователи систем искусственного интеллекта (ИИ) возлагают на эти системы большие надежды, предполагая, что они смогут решить большинство, если не все, проблемы. Вместе с тем, мода на искусственный интеллект может привести к тому, что системы ИИ будут разрабатываться для тех областей, в которых их применение не всегда оправдано и будет неэффективно, а иногда даже невозможно. Поэтому важно понимать, что такое "искусственный интеллект", какие существуют технологии искуственного интеллекта и в каких областях они могут использоваться.
Цель этой книги – познакомить читателя, дать ему представление об экспертных системаах – одной из технологий искусственного интеллекта.
Искусственный интеллект и экспертная система
В настоящее время искусственный интеллект зачастую сводят к машинному обучению, что не совсем правильно. Машинное обучение (machine learning) и его разновидности, например, нейросети (neural network), это – технология, позволяющая решать задачи из области искусственного интеллекта (распознавание образов, распознавание речи, машинный перевод, анализ больших данных и т.д.). Другой технологией искусственного интеллекта являются экспертные системы (expert system).
Искусственный интеллект – раздел информатики, связанный с разработкой интеллектуальных программ для компьютеров.
Экспертная система (ЭС) – компьютерная программа, использующая экспертные знания для обеспечения высокоэффективного решения задач в узкой предметной области.
Есть и другие определения термина "экспертная система".
Под экспертной системой понимается система, объединяющая возможности компьютера со знаниями и опытом эксперта в такой форме, что система может предложить разумный совет или осуществить разумное решение поставленной задачи.
Экспертные системы призваны решать те задачи, где, как принято считать, невозможно обойтись без эксперта-человека.
При реализации экспертной системы важным вопросом является выбор архитектуры и языка программирования.
Существует два основных подхода к созданию экспертной системы. Первый подход предполагает использование языка логического программирования, второй – универсального процедурного или объектно-ориентированного языка программирования. При использовании универсального языка программирования база знаний о предметной области может быть встроена в код программы (реализуется при помощи инструкций if-then-else) или отделена кода и помещена во внешний текстовый файл.
Знания о предметной области меняются во времени – уточняются характеристики объектов и связи между ними, выявляются новые связи, правила поведения объектов, факты. Изменение знания о предметной области требует изменений поведения экспертной системы, изменения базы знаний. Исходя из этого, можно утверждать, что архитектура экспертная система должна быть открытой, т.е. у пользователя должна быть возможность "повышения квалификации" экспертной системы в процессе ее использования путем корректировки базы знаний, причем, желательно, без привлечения программистов. Указанному требованию соответствует экспертная система, в которой база знаний отделена от кода и представлена совокупностью правил логического вывода, находящихся во внешнем текстовом файле доступном для редактирования. В такой архитектуре программный код, реализующий интерфейс пользователя, механизм заключений и объясняющую систему, называют оболочкой экспертной системы, при этом задача создания экспертной системы сводиться к задаче создания базы знаний – совокупности правил логического вывода.
Экспертная система как инструмент поддержки принятия решений
Во многих ситуациях люди принимают решения, следуя советам экспертов – специалистов соответствующих предметных областей. Привлечение к решению проблемы эксперта, а в случае сложных проблем, группы экспертов, делает процесс принятия решения длительным и дорогим. При этом на результат экспертизы зачастую оказывает так называемый человеческий фактор, совет, полученный от эксперта, носит субъективный характер.
В качестве альтернативы обычной экспертизе, предполагающей участие экспертов, во многих случаях возможно проведение экспертизы с применением экспертной системы.
Экспертная система это – компьютерная программа, обладающая знаниями эксперта в соответствующей предметной области и моделирующая процесс суждения человека-эксперта. Применение экспертной системы в качестве системы поддержки принятия решения позволяет сократить временные и финансовые затраты на экспертизу, снизить влияние человеческого фактора.
Экспертные системы призваны решать те задачи, где, как принято считать, невозможно обойтись без совета или рекомендации эксперта-человека. Некоторые области деятельности, в которых возможно и оправдано использование ЭС в качестве инструмента поддержки принятия решений, приведены ниже.
Медицина
– Диагностика и выявление причин болезни
– Выбор стратегии лечения
– Подбор лекарства
– Анализ кардиограммы
– Подбор диеты
Техника
– Выявление причин неисправностей оборудования
– Устранение аварийных ситуаций
– Выбор конфигурации системы
– Выбор технологии, материала, комплектующих, оборудования
Бизнес
– Оценка инвестиционной привлекательности проекта
– Оценка рисков проекта
– Выбор/оценка поставщика (подрядчика)
– Выбор стратегии развития бизнеса
– Формирование команды проекта
Финансы
– Оценка надежности заемщика
– Операции с ценными бумагами
– Оценка рисков
– Юриспруденция
– Выбор стратегии поведения
Мода
– Выбор стиля, элемента одежды
Экспертная система – взгляд снаружи
Чтобы понять, как работает экспертная система, представьте следующую ситуацию. Вы собираетесь, например, на концерт, и перед вами стоит проблема: надевать галстук или нет, а если надевать, то какой: одноцветный, с рисунком или в крапинку. Не являясь специалистом в области моды, вы звоните своему приятелю-стилисту. Приятель задает вам несколько вопросов, относительно вида концерта, элементов одежды, которые есть в вашем распоряжении, и на основе информации, полученной от вас, дает совет, что, по его мнению, вам следует надеть (рис. 1). В описанной ситуации вашего приятеля можно рассматривать как экспертную систему. Он обладает знаниями в предметной области (мода) и, на основе полученной от вас информации о текущей ситуации, может предложить вам разумное решение проблемы.
Рис. 1. Диалог с экспертом
Теперь, если вы каким-либо образом сможете “извлечь знания из эксперта”, понять, как эксперт принимает решения, формализовать знания и процесс принятия решений, то вы сможете создать экспертную систему, которая заменит реального человека-эксперта, и в дальнейшем, чтобы получить совет, вы будете обращаться не к эксперту, а к экспертной системе (рис. 2).
Рис. 2. Диалог с экспертной системой
Архитектура экспертной системы
Архитектура экспертной системы, в которой знания представлены совокупностью правил логического вывода, показана на рис. 3.
Рис. 3. Архитектура экспертной системы на правилах (МВ – механизм или "машина" выводв; ИР – интерфейс разработчика; ОС – объясняющая система; ИП – интерфейс пользователя)
В простейшем случае экспертная система может состоять из базы знаний, механизма вывода и интерфейса разработчика-пользователя (рис. 4).
Рис. 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 – оболочка). При таком подходе задача создания экспертной системы сводиться к задаче создания базы знаний – составлению правил логического вывода.
Рис. 5. Экспертная система = Оболочка + База знаний
UNGIN – оболочка экспертной системы
Оболочка экспертной системы UNGIN представляет собой приложение для универсальной платформы Windows и может работать на любом устройстве, на котором установлена операционная система Microsoft Windows 10/11.
Оболочку экспертной системы UNGIN можно бесплатно установить из магазина приложений Microsoft по ссылке
https://www.microsoft.com/store/apps/9PHPDLLRDX4P
Главное окно оболочки экспертной системы UNGIN приведено на рис. 6.
Рис. 6. Окно оболочки UNGIN
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.
Вы ознакомились с фрагментом книги.
Для бесплатного чтения открыта только часть текста.
Приобретайте полный текст книги у нашего партнера:
Полная версия книги