Развитие экспертных систем началось чуть ли не с началом эры искусственного интеллекта, и разработка этого класса систем была вторым существенным прорывом в исследованиях. Экспертные системы основаны на трёх ранее рассмотренных подходах — представлении знаний, символьных вычислениях и обработке естественного языка. Когда идея экспертных систем только родилась у пионеров искусственного интеллекта, казалось, что достаточно посадить эксперта, который тщательно формализует свою проблемную область на выбранном формализме представления знаний, и искусственная интеллектуальная система сможет самостоятельно вырабатывать решения в любых ситуациях этой проблемной области. Однако этот наивный подход столкнулся с серьёзными проблемами самого разного характера.
В первую очередь возникли проблемы организационного характера, если так можно выразиться. Хотя в целом они не являются непреодолимыми, разработка экспертных систем серьёзно «провисла». Дело в том, что эксперты не стремятся делиться своим знанием, особенно в целях его неограниченного распространения и применения. Ведь если экспертная система будет решать все задачи за человека в заданной проблемной области, то зачем нужен эксперт? Другими словами, это вполне обоснованное опасение специалиста в том, что если он поделится своим знанием, то тем самым «размоет» свою полезность и востребованность. Тем не менее, вопрос вполне решаем с учётом того, что большая часть действительно нужных знаний изложена в письменных источниках — статьях и книгах. И их можно использовать для построения баз знаний интеллектуальных систем.
Тем не менее, в конечном итоге даже нашлись эксперты, которые были крайне заинтересованы в создании подобных систем. И они начали работать над базами данных. И тут-то обнаружился следующий проблемный аспект — экспертные знания, в общем-то, не так просто формализовать. Их прямой перевод на язык формальной логики возможен только в очень ограниченных случаях, а в большей части экспертные знания представляют собой переплетение так называемых «НЕ-факторов» — они неполны, часто противоречивы (особенно если рассматривать знания нескольких экспертов), неточны в силу неточности измерений и фундаментальной неопределённости реального мира. Часто знания выражаются на нечётком естественном языке, и для решения повседневных задач этого достаточно, но совершенно недостаточно для формализации в виде баз знаний. Даже появление профессии когнитолога или инженера по знаниям не помогло — пришлось развивать математический аппарат. В итоге и эта проблема была побеждена, и сегодня существует большое количество формализмов и методов обработки знаний с НЕ-факторами.
Но и наличие НЕ-факторов в знаниях экспертов не стало такой серьёзной проблемой, как динамика в знаниях. Знания — это не статическая, заранее и навсегда установленная догма, которую можно запрограммировать один раз и дальше пользоваться всегда. В процессе исследований оказалось, что знания — это эволюционирующая сущность, истинная природа которой скрывается от исследователей. А потому было очень сложно формализовать то, как знания изменяются в процессе своей эволюции. Понятно было, что этот процесс можно описать такими словами, как «обучение», «актуализация» и т. п., однако от этого проще не становилось. Как осуществлять обучение экспертной системы? Когда наступает тот самый момент, характеризующий необходимость актуализировать знания о проблемной области? Кто должен актуализировать знания? Может ли система самостоятельно актуализировать и дополнять свою собственную базу знаний? Это немногие из широкого ряда вопросов, которые встали перед первыми разработчиками экспертных систем. На некоторые из таких вопросов полноценных и исчерпывающих ответов нет до сих пор.
Хотя в целом описанные сложности привели к приостановке развития экспертных систем и методологии их построения, до сих пор есть как отдельные экспертные системы в очень узких проблемных областях, так и целые довольно проработанные фреймворки и оболочки для построения экспертных систем. Что характерно, постепенно этот инструментарий впитывал в себя все те новые математические формализмы, которые позволяли справиться с НЕ-факторами и динамичностью знаний. И сегодня существующие и развивающиеся фреймворки для экспертных систем представляют собой очень продвинутое программное обеспечение. Хотя, надо признать, что в основном все они основаны на обработке символьной информации и исповедуют нисходящий подход в искусственном интеллекте.
В итоге, надо отметить, что именно проблемы и сложно решаемые вопросы при построении экспертных систем сделали основной вклад в явление, которое потом назвали «зимой искусственного интеллекта». Постепенно весь ажиотаж и смелые надежды в духе «сейчас как опишем все знания всех экспертов, и будет система самой умной» сошли на нет, и многие направления исследований и проекты в этой области были свёрнуты. Однако, конечно же, отдельные энтузиасты продолжили развитие методологии инженерии знаний, так что сегодня эта область постепенно возрождается.
Однако перед тем как перейти к подробному рассмотрению новых методик и технологий, которые пришли на смену экспертным системам, необходимо чуть более детально посмотреть, что же находится «под капотом» у традиционных экспертных систем. Это будет полезно для понимания того, как должен быть устроен символьный искусственный интеллект (или подсистема верхнего уровня в гибридном искусственном интеллекте). Итак, вот общая архитектура экспертной системы:
Кратко опишем компоненты экспертных систем, представленных на этой диаграмме:
1. База знаний содержит знания экспертной системы о проблемной области. В режиме штатной работы обычно база знаний не изменяется, а потому информация из неё берётся машиной вывода в режиме «только чтение». Изменение базы знаний осуществляется в режиме обучения системы экспертом. Однако в последнее время наибольший интерес представляют экспертные системы, которые имеют возможности самообучения в процессе работы с пользователями.
2. Рабочая память содержит факты, которые вводятся пользователем при помощи интерфейса (либо как-то иначе добываются экспертной системой из внешнего мира — например, с сенсоров). При помощи фактов машина вывода активирует знания из базы знаний и выводит новые факты, которые так же помещаются в рабочую память.
3. Машина вывода — это ядро экспертной системы. Она получает знания из Базы знаний и факты из рабочей памяти, а также запросы пользователя через интерфейс взаимодействия с ним. Далее происходит цикличная работа с рабочей памятью и, при необходимости, с пользователем, когда на основе имеющихся фактов и знаний осуществляется вывод новых фактов, их уточнение у пользователя или запрос у него дополнительных фактов. В конечном итоге машина вывода получает результаты вывода и выдаёт их пользователю через интерфейс с ним.
4. Наконец, интерфейс пользователя представляет собой тот механизм, при помощи которого пользователь взаимодействует с экспертной системой. В самом начале развития этого направления планировалось, что интерфейс пользователя будет естественно-языковым, однако с анализом естественного языка возникли существенные проблемы, а потому чаще всего использовался формализованный ввод (иногда даже похожий на естественно-языковой). Сегодня тема естественно-языкового ввода возрождается в связи с развитием методов анализа естественного языка и появлением большого количества мессенджеров, имеющих возможность использования чат-ботов в качестве универсального метода языкового доступа к системам.
Экспертная система может быть интегрированной в информационную систему более высокого уровня, тогда, как уже было указано выше, в её рабочую память информация может поступать не только посредством интерфейса пользователя, но и из других систем или, например, с сенсоров, если экспертная система используется при управлении каким-нибудь технологическим процессом. С другой стороны, интегрированная экспертная система может выдавать свои заключения не только конечному пользователю, но и другим системам или даже исполнительным устройствам. Другими словами, сегодня экспертные системы могут использоваться как полноценные и законченные блоки для создания комплексных систем управления с возможностью взаимодействия не только со специально обученными пользователями, но и с другими системами.
Это позволяет нарисовать более целостную диаграмму того, что представляет собой экспертная система в своём окружении. С учётом вышесказанного получается полноценная обобщённая кибернетическая система, взаимодействующая со средой. И такое взаимодействие осуществляется в парадигме символьных вычислений.
Интересным является вопрос — в составе каких более крупных систем могут включаться экспертные системы? Самый тривиальный ответ: «В составе систем автоматического управления и автоматизированных систем управления». Это традиционные области использования экспертных систем, особенно в хорошо формализуемых проблемных областях. Например, системы автоматического управления технологическими процессами вполне могут управляться при помощи достаточно небольших экспертных систем, базы знаний которых содержат несколько сотен продукций.
Источник: ЯДзен «Другая фаза»