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

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

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

Содержание
  • 1 История
    • 1.1 Ранняя разработка
    • 1.2 Официальное введение и последующие разработки
    • 1.3 Текущие подходы к экспертным системам
  • 2 Архитектура программного обеспечения
  • 3 Преимущества
  • 4 Недостатки
  • 5 Приложения
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
История

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

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

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

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

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

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

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

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

В 1981 году был представлен первый IBM PC с операционной системой PC DOS. Дисбаланс между высокой доступностью относительно мощных микросхем в ПК по сравнению с гораздо более высокой стоимостью вычислительной мощности в мэйнфреймах, доминировавшей в корпоративном ИТ-мире в то время, создал новый тип архитектуры для корпоративных вычислений, получивший название модель клиент-сервер. Расчеты и рассуждения можно проводить за небольшую часть стоимости мэйнфрейма с использованием ПК. Эта модель также позволяла бизнес-подразделениям обходить корпоративные ИТ-отделы и напрямую создавать свои собственные приложения. В результате клиент-сервер оказал огромное влияние на рынок экспертных систем. Экспертные системы уже были исключениями в большей части делового мира, требуя новых навыков, которых многие ИТ-отделы не имели и не стремились развивать. Они идеально подходили для новых оболочек для ПК, которые обещали передать разработку приложений в руки конечных пользователей и экспертов. До этого основной средой разработки экспертных систем были высокопроизводительные машины Lisp от 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, эти факты были представлены в основном как плоские утверждения о переменных. В более поздних экспертных системах, разработанных с коммерческими оболочками, база знаний стала более структурированной и использовала концепции объектно-ориентированного программирования. Мир был представлен в виде классов, подклассов и экземпляров, а утверждения были заменены значениями экземпляров объектов. Правила работали, запрашивая и утверждая значения объектов.

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

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

R 1: M an (x) ⟹ M ortal (x) {\ displaystyle R1: {\ mathit {Man}} (x) \ implies {\ mathit {Mortal}} ( x)}{\ displaystyle R1: {\ mathit {Man} } (x) \ подразумевает {\ mathit {Mortal}} (x)}

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

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

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

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

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

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

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

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

Недостатки

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

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

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

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

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

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

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

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

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

Приложения

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

КатегорияРешенная проблемаПримеры
ИнтерпретацияВывод описания ситуаций на основе данных датчикаСлух (распознавание речи), ПРОСПЕКТОР
ПрогнозВыявление вероятных последствий данной ситуацииОценка риска преждевременных родов
ДиагностикаВывод сбоев системы на основе наблюдаемыхCADUCEUS, MYCIN, PUFF, Mistral, Eydenet, Kaleidos
DesignНастройка объектов с ограничениямиDendral, Mortgage Loan Advisor, R1 (конфигурация DEC VAX), SID (DEC VAX 9000 CPU )
Planning Разработка действийПланирование миссии для автономного подводного аппарата
МониторингСравнение наблюдений для планирования уязвимостейREACTOR
ОтладкаПредоставление дополнительных решений для сложных проблемSAINT, MATHLAB, MACSYMA
РемонтВыполнение плана по администрированию прописанное средствоМенеджеры по кризисным ситуациям с разливом токсичных веществ t
ИнструкцияДиагностика, оценка и исправление поведения учащихсяSMH.PAL, Интеллектуальное клиническое обучение, STEAMER
КонтрольИнтерпретация, прогнозирование, исправление, и мониторинг поведения системыУправление процессами в реальном времени, Управление полетами космического корабля

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

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

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

SMH.PAL - это экспертная система для оценки студентов с множественными ограниченными возможностями.

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

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-19 09:57:13
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте