Экспертная система - Expert system

Symbolics Lisp Machine: ранняя платформа для экспертных систем.

В области искусственного интеллекта , экспертная система представляет собой компьютерную систему эмуляции способность принимать решения человека - эксперта. Экспертные системы предназначены для решения сложных проблем путем рассуждений на основе совокупности знаний, представленных в основном в виде правил, а не посредством обычного процедурного кода . Первые экспертные системы были созданы в 1970-х, а затем получили распространение в 1980-х. Экспертные системы были одними из первых действительно успешных форм программного обеспечения искусственного интеллекта (ИИ). Экспертная система разделена на две подсистемы: механизм вывода и базу знаний . База знаний представляет собой факты и правила. Механизм вывода применяет правила к известным фактам, чтобы вывести новые факты. Механизмы вывода могут также включать в себя возможности объяснения и отладки.

История

Ранняя разработка

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

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

Официальное введение и последующие разработки

Эта предыдущая ситуация постепенно привела к развитию экспертных систем, в которых использовались подходы, основанные на знаниях. Эти экспертные системы в медицине были экспертной системой MYCIN, экспертной системой INTERNIST-I, а затем, в середине 1980-х годов, CADUCEUS .

Экспертные системы были официально представлены примерно в 1965 году Стэнфордским проектом эвристического программирования, возглавляемым Эдвардом Фейгенбаумом , которого иногда называют «отцом экспертных систем»; другими ключевыми ранними участниками были Брюс Бьюкенен и Рэндалл Дэвис. Исследователи из Стэнфорда попытались определить области, в которых экспертиза была высоко оценена и сложна, например, диагностика инфекционных заболеваний ( Mycin ) и идентификация неизвестных органических молекул ( Dendral ). Идея о том, что «интеллектуальные системы черпают свою силу из знаний, которыми они обладают, а не из конкретных формализмов и схем вывода, которые они используют», - как сказал Фейгенбаум, - была в то время значительным шагом вперед, поскольку прошлые исследования были сосредоточены на эвристических вычислениях. методы, кульминацией которых стали попытки разработать средства решения проблем очень общего назначения (в первую очередь совместная работа Аллена Ньюэлла и Герберта Саймона ). Экспертные системы стали одними из первых действительно успешных форм программного обеспечения искусственного интеллекта (ИИ).

Исследования экспертных систем также велись во Франции. В то время как в США основное внимание уделялось системам, основанным на правилах, сначала системам, жестко запрограммированным на основе программных сред LISP, а затем - оболочкам экспертных систем, разработанных такими поставщиками, как Intellicorp , во Франции исследования были больше сосредоточены на системах, разработанных на Prolog . Преимущество экспертных системных оболочек состояло в том, что их было несколько проще использовать непрограммистам. Преимущество сред Пролога состояло в том, что они не были сосредоточены только на правилах « если-то» ; Среды Пролога обеспечивают гораздо лучшую реализацию полной логической среды первого порядка .

В 1980-х годах экспертные системы получили распространение. Университеты предлагали курсы по экспертным системам, и две трети компаний из списка Fortune 500 применяли эту технологию в повседневной деловой деятельности. Международный интерес вызвал проект компьютерных систем пятого поколения в Японии и увеличение финансирования исследований в Европе.

В 1981 году был представлен первый IBM PC с операционной системой PC DOS . Несбалансированность между высокой доступностью относительно мощных микросхем в ПК по сравнению с гораздо более высокой стоимостью вычислительной мощности в мэйнфреймах, доминировавшей в корпоративном ИТ-мире в то время, привела к созданию нового типа архитектуры для корпоративных вычислений, получившего название клиент-серверная модель . Расчеты и рассуждения могут быть выполнены за небольшую часть стоимости мэйнфрейма с использованием ПК. Эта модель также позволяла бизнес-подразделениям обходить корпоративные ИТ-отделы и напрямую создавать свои собственные приложения. В результате клиент-сервер оказал огромное влияние на рынок экспертных систем. Экспертные системы уже были исключениями в большей части делового мира, требуя новых навыков, которых не было у многих ИТ-отделов и которые не стремились развивать. Они идеально подходили для новых оболочек для ПК, которые обещали передать разработку приложений в руки конечных пользователей и экспертов. До тех пор основной средой разработки экспертных систем были высокопроизводительные машины на Лиспе от Xerox , Symbolics и Texas Instruments . С появлением ПК и клиент-серверных вычислений такие поставщики, как Intellicorp и Inference Corporation, сместили свои приоритеты на разработку инструментов на базе ПК. Также стали регулярно появляться новые поставщики, часто финансируемые венчурным капиталом (такие как Aion Corporation, Neuron Data , Exsys и многие другие).

Первой экспертной системой, которая использовалась для проектирования крупномасштабного продукта, была программа SID (Synthesis of Integral Design), разработанная в 1982 году. Написанная на LISP , SID генерировала 93% логических вентилей ЦП VAX 9000 . Входными данными для программного обеспечения был набор правил, созданный несколькими опытными разработчиками логики. SID расширил правила и сгенерировал процедуры синтеза программной логики , во много раз превышающие размер самих правил. Удивительно, но комбинация этих правил привела к общему дизайну, который превзошел возможности самих экспертов и во многих случаях превзошел человеческие аналоги. В то время как одни правила противоречили другим, контрольные параметры верхнего уровня для скорости и площади были решающим фактором. Программа вызвала большие споры, но, тем не менее, использовалась из-за бюджетных ограничений проекта. Он был прекращен разработчиками логики после завершения проекта VAX 9000.

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

В 1990-е годы и позже термин « экспертная система» и идея автономной системы искусственного интеллекта по большей части выпали из лексикона ИТ. Есть две интерпретации этого. Один из них заключается в том, что «экспертные системы потерпели неудачу»: мир ИТ двинулся дальше, потому что экспертные системы не оправдали своих чрезмерно раздутых обещаний. Другой - это полная противоположность: экспертные системы были просто жертвами своего успеха: по мере того, как ИТ-специалисты усвоили такие концепции, как механизмы правил, такие инструменты превратились из автономных инструментов для разработки специализированных экспертных систем в один из многих стандартных инструментов. Многие ведущие производители комплектов бизнес-приложений (такие как SAP , Siebel и Oracle ) интегрировали возможности экспертных систем в свои продукты как способ определения бизнес-логики - механизмы правил больше не просто для определения правил, которые будет использовать эксперт. но для любой сложной, изменчивой и критически важной бизнес-логики; они часто идут рука об руку со средами автоматизации бизнес-процессов и интеграции.

Современные подходы к экспертным системам

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

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

Архитектура программного обеспечения

Иллюстрирующий пример обратной цепочки из магистерской диссертации 1990 г.

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

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

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

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

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

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

Использование правил для явного представления знаний также позволило расширить возможности объяснения. В простом примере выше, если система использовала R1, чтобы утверждать, что Сократ был Смертным, и пользователь хотел понять, почему Сократ был смертным, они могли бы запросить систему, и система оглянулась бы на правила, которые сработали, чтобы вызвать утверждение, и представить те правила для пользователя в качестве объяснения. На английском, если пользователь спросил: «Почему Сократ смертен?» система ответит: «Потому что все люди смертны, а Сократ - человек». Важной областью исследований было создание объяснений из базы знаний на естественном английском языке, а не просто демонстрация более формальных, но менее интуитивных правил.

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

  • Сохранение правды. Эти системы записывают зависимости в базу знаний, чтобы при изменении фактов можно было соответствующим образом изменить зависимые знания. Например, если система узнает, что Сократ больше не известен как человек, она отменит утверждение, что Сократ смертен.
  • Гипотетическое рассуждение. Таким образом, базу знаний можно разделить на множество возможных точек зрения, иначе говоря, миров. Это позволяет механизму вывода параллельно исследовать несколько возможностей. Например, система может захотеть изучить последствия обоих утверждений: что будет правдой, если Сократ - Человек, и что будет правдой, если это не так?
  • Системы неопределенности. Одним из первых расширений простого использования правил для представления знаний было также связывание вероятности с каждым правилом. Итак, не утверждать, что Сократ смертен, но утверждать, что Сократ может быть смертным с некоторой вероятностью. Простые вероятности были расширены в некоторых системах со сложными механизмами для неопределенных рассуждений, такими как нечеткая логика и комбинация вероятностей.
  • Классификация онтологий . С добавлением классов объектов в базу знаний стал возможен новый тип рассуждений. Помимо рассуждений просто о значениях объектов, система может также рассуждать о структурах объектов. В этом простом примере Man может представлять класс объектов, а R1 можно переопределить как правило, определяющее класс всех мужчин. Эти типы механизмов вывода специального назначения называются классификаторами . Хотя классификаторы не получили широкого распространения в экспертных системах, они очень эффективны для неструктурированных изменчивых доменов и являются ключевой технологией для Интернета и зарождающейся семантической паутины .

Преимущества

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

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

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

Недостатки

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

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

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

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

Есть также вопросы о том, как расставить приоритеты при использовании правил, чтобы работать более эффективно, или как разрешить двусмысленность (например, если в одном правиле слишком много подструктур else-if) и так далее.

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

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

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

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

Приложения

Hayes-Roth делит приложения экспертных систем на 10 категорий, показанных в следующей таблице. Примеры приложений не входили в исходную таблицу Хейса-Рота, и некоторые из них возникли значительно позже. Любое приложение, не указанное в сносках, описано в книге Hayes-Roth. Кроме того, хотя эти категории обеспечивают интуитивно понятную структуру для описания пространства приложений экспертных систем, они не являются жесткими категориями, и в некоторых случаях приложение может отображать черты более чем одной категории.

Категория Проблема решена Примеры
Интерпретация Вывод описания ситуаций из данных датчика Hearsay (распознавание речи), ПРОСПЕКТОР
Прогноз Выявление вероятных последствий данной ситуации Оценка риска преждевременных родов
Диагностика Вывод сбоев системы из наблюдаемых Кадуцей, MYCIN , слоеное, Mistral, Eydenet, Kaleidos
Дизайн Настройка объектов с ограничениями Dendral , советник по ипотечным кредитам , R1 (конфигурация DEC VAX), SID ( процессор DEC VAX 9000 )
Планирование Проектирование действий Планирование миссии автономного подводного аппарата
Мониторинг Сравнение наблюдений для планирования уязвимостей РЕАКТОР
Отладка Предоставление дополнительных решений сложных проблем СВЯТОЙ, МАТЛАБ, МАКСИМА
Ремонт Выполнение плана по назначению назначенного лекарства Управление кризисными ситуациями при разливе токсичных веществ
Инструкция Диагностика, оценка и корректировка поведения учащихся SMH.PAL, Интеллектуальное клиническое обучение, STEAMER
Контроль Интерпретация, прогнозирование, восстановление и мониторинг поведения системы Управление процессами в реальном времени, управление полетами космических шаттлов

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

CADUCEUS и MYCIN были системами медицинской диагностики. Пользователь описывает свои симптомы компьютеру, как врачу, и компьютер возвращает медицинский диагноз.

Dendral был инструментом для изучения формирования гипотез при идентификации органических молекул. Решенная общая проблема - разработка решения с учетом ряда ограничений - была одной из наиболее успешных областей для ранних экспертных систем, применяемых в бизнес-областях, таких как продавцы, настраивающие компьютеры VAX корпорации Digital Equipment Corporation (DEC) и разработка приложений ипотечного кредита.

SMH.PAL - это экспертная система оценки студентов с множественной инвалидностью.

Mistral - это экспертная система для мониторинга безопасности плотин, разработанная в 1990-х годах компанией Ismes (Италия). Он получает данные от автоматической системы мониторинга и выполняет диагностику состояния плотины. Его первая копия, установленная в 1992 году на плотине Ридраколи (Италия), работает круглосуточно и без выходных . Он был установлен на нескольких плотинах в Италии и за рубежом (например, плотина Итайпу в Бразилии), а также на участках оползней под названием Эйденет и на памятниках под названием Калейдос. Mistral - зарегистрированная торговая марка CESI .

Смотрите также

использованная литература

внешние ссылки