Експертні системи

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Експе́ртна систе́ма — це методологія адаптації алгоритму успішних рішень однієї сфери науково-практичної діяльності в іншу. З поширенням комп'ютерних технологій це тотожна (подібна, заснована на оптимізуючому алгоритмі чи евристиках) інтелектуальна комп'ютерна програма, що містить знання та аналітичні здібності одного або кількох експертів щодо деякої галузі застосування, і здатна робити логічні висновки на основі цих знань, тим самим забезпечуючи вирішення специфічних завдань (консультування, навчання, діагностування, тестування, проектування тощо) без участі експерта (фахівця в конкретній проблемній галузі). Також визначається як система, яка використовує базу знань для вирішення завдань (видачі рекомендацій) у деякій предметній галузі. Цей клас програмного забезпечення спочатку розроблявся дослідниками штучного інтелекту в 1960-ті та 1970-ті і здобув комерційне застосування, починаючи з 1980-их. Часто термін система, заснована на знаннях використовується в якості синоніма експертної системи, однак можливості експертних систем ширші за можливості систем, заснованих на детермінованих (обмежених, реалізованих на поточний час) знаннях.[1]

Однак узгодженого визначення експертних систем не існує[2]. Натомість автори дають визначення залежно від застосування, структури таких систем. Ранні визначення експертних систем припускали застосування виведення нових знань на основі правил.

Схожі дії виконує програма-майстер[ru] (wizard) . Як правило, майстри застосовують в системних програмах для інтерактивного спілкування з користувачем (наприклад, у процесі інсталяції ПЗ). Головна відмінність майстрів від ЕС — відсутність бази знань; всі дії жорстко запрограмовані. Це просто набір форм для заповнення користувачем.

Інші подібні програми — пошукові або довідкові системи. За запитом користувача вони надають найбільш відповідні (релевантні) розділи бази статей, альтернативність вибору котрих визначає суб'єкт формування запиту.

Тож ми бачимо обмеження методології експертних систем за наявності корисних якостей у коректних межах застосування.

Історія[ред.ред. код]

Едвард Фейгенбаум[en] вважав, що ключ розуміння ранніх експертних систем в тому, що «інтелектуальні системи отримують свою владу від знань, якими вони володіють, а не від конкретних формалізмів і схем виведення, які вони використовують.»[3] Хоча, озираючись назад, це, здається, досить простим уявленням, це був значний крок вперед в той час. До цього моменту дослідження було зосереджено на спробах розробки розв'язань проблем найбільш загального призначення, які виникали, таких як ті, що описані Ньюелом і Саймоном.[4]

Експертні системи були введені в рамках Стенфордського проекту з евристичного програмування на чолі з Фейгенбаумом, якого іноді називають «батьком експертних систем». Стенфордські дослідники намагалися визначити області, в яких досвід був би високо оцінений і комплексний, такі як діагностика інфекційних захворювань (Mycin) та ідентифікація невідомих органічних молекул (Dendral). Разом з Фейгенбаумом першими зробили свій внесок Едвард Шортліф[en], Брюс Б'юкенен і Рендалл Девіс. Експертні системи були одними із перших по-справжньому успішних форм програмного забезпечення для штучного інтелекту.[5][6][7][8]

Дослідження експертних систем також набуло активного розвитку у Франції. У США в центрі уваги, як правило, були системи, засновані на правилах, в першу чергу системи закодовані на середовищах програмування LISP, а потім на експертних оболонках, розроблених такими виробниками, такими як IntelliСorp[en]. У Франції дослідження були зосереджені більше на системах, розроблених в Prolog. Перевагою експертних оболонок системи було те, що вони були дещо легше для використання не-програмістам. Перевага Prolog середовищ полягала в тому, що вони не були зосереджені тільки на правилах ЯКЩО — ТО. Prolog середовища забезпечували значно повнішу реалізацію логіки першого порядку.[9][10]

У 1980-х роках експертні системи набули поширення. Університети пропонували курси експертних систем і дві третини компаній списку Fortune 1000 застосовували технології в повсякденній діяльності.[11] Міжнародний інтерес був викликаний проектом розробки комп'ютерів п'ятого покоління[ru] в Японії і фінансуванням наукових досліджень в Європі.

У 1981 році була представлена перша IBM PC з операційною системою MS-DOS. Дисбаланс між відносно потужними чипами в дуже доступній ПК в порівнянні з набагато дорожчою ціною обчислювальної потужності в ЕОМ, які домінували в корпоративному ІТ-світі того часу створив абсолютно новий тип архітектури корпоративних обчислень, відомої як клієнт-серверна модель.[12] Розрахунки і обґрунтування можуть бути виконані як частка від вартості мейнфреймів, що використовуються ПК. Ця модель дозволила бізнес-одиницям обійти корпоративні ІТ-відділи та безпосередньо будувати свої власні додатки. В результаті, клієнт-сервер мав величезний вплив на ринок експертних систем. Експертні системи проникли в більшу частину світу бізнесу, вимагаючи нових навичок, яких багато ІТ-відділів не мали і не були готовими розвиватися. Вони були природним для нових ПК на основі оболонок, що обіцяли поставляти розробку додатків в руки кінцевих користувачів та експертів. До цього моменту основним середовищем розробки для експертних систем були Lisp — машини від Xerox, Symbolics[en] і Texas Instruments. Із зростом числа виробників ПК і обчислювальних клієнт-серверів, таких як Intellicorp і Inference Corporation, вони змінили свої пріоритети розвитку ПК на основі інструментів. Ці нові постачальники включають Aion Corporation, Neuron Data[en], Exsys, і багато інших.[13][14]

У 1990-х роках і далі термін «експертні системи» та ідея автономної системи ШI в основному виключені з лексикону ІТ. Є два тлумачення цього. Одним з них є, що «експертні системи не є вдалими»: ІТ світ пішов далі, бо експертні системи не могли обіцяти ширших можливостей, падіння експертних систем була настільки вражаючим, що навіть легенда ШІ Ріші Шарма зізнався у своєму обмані щодо проекту з експертними системами, тому що він не вважав проект вартісним.[15][16] Інша точка зору, що експертні системи були просто жертвами свого успіху. Багато хто з провідних великих постачальників бізнес-додатків, таких як SAP AG, Siebel[en], Oracle Corporation, інтегрували можливості експертних систем до їх набору продуктів як спосіб визначення бізнес-логіки. Зазвичай, ці системи правил не просто використовуються експертами для опису правил, але й підходять для будь-якого типу складної, непостійної і критичної бізнес-логіки. Вони часто йдуть рука об руку з автоматизацією та інтеграцією середовищ бізнес-процесів.[17][18][19]

Характеристики ЕС[ред.ред. код]

Експертна система відрізняється від інших прикладних програм наявністю таких ознак:[1]

  • Моделює механізм мислення людини під час розв'язання задач в цій предметній галузі. Це істотно відрізняє експертні системи від систем математичного моделювання або комп'ютерної анімації. Однак, ЕС не повинні повністю відтворювати психологічну модель фахівця в цій області, а повинні лише відтворювати за допомогою комп'ютера деякі методики розв'язання проблем, що використовуються експертом.
  • Система, окрім виконання обчислювальних операцій, формує певні висновки, базуючись на тих знаннях, якими вона володіє. Знання в системі, зазвичай, описані деякою спеціалізованою мовою і зберігаються окремо від програмного коду, що формує висновки. Компонент збереження знань прийнято називати базою знань.
  • Під час розв'язання задач основну роль відіграють евристичні і наближені методи, що, на відміну від алгоритмічних, не завжди гарантують успіх. Евристика, в принципі, є правилом впливу (англ. rule of thumb), що в машинному вигляді відображає деяке знання, набуте людиною разом із накопичуванням практичного досвіду розв'язання аналогічних проблем. Такі методи є наближеними у тому сенсі, що, по-перше, вони не потребують вичерпної вихідної інформації, а, по-друге, існує певний ступінь впевненості (або невпевненості) в тому, що запропонований розв'язок є правильним.

Експертні системи відрізняються і від інших видів програм із галузі штучного інтелекту.

  • Експертні системи застосовуються для предметів реального світу, операції з якими зазвичай вимагають великого досвіду, накопиченого людиною. Експертні системи мають яскраво виражену практичну направленість для застосування в науковій або комерційній сфері.
  • Однією з основних характеристик експертної системи є її швидкодія, тобто швидкість отримання результату та його достовірність (надійність). Дослідницькі програми штучного інтелекту можуть бути і не дуже швидкими, натомість, експертна система повинна за прийнятний час знайти розв'язок, що був би не гіршим за розв'язок, що може запропонувати фахівець в цій предметній області.
  • Експертна система повинна мати можливість пояснити, чому запропоновано саме цей розв'язок і довести його обґрунтованість. Користувач повинен отримати всю інформацію, необхідну йому для того, аби переконатись в обґрунтованості запропонованого розв'язку.

Відомі експертні системи[ред.ред. код]

Наприклад, можна навести такі відомі експертні системи:

  • CLIPS — мова програмування, використовується для створення експертних систем
  • Dendral — аналіз даних мас-спектрометрії
  • Dipmeter Advisor — аналіз даних, отриманих під час пошуку нафти
  • Jess — від англ. Java Expert System Shell, оболонка експертних систем на Java. Рушій CLIPS реалізований на мові програмування Java, використовується для створення експертних систем
  • MQL 4 — MetaQuotes Language 4, спеціалізована мова програмування для опису фінансової стратегії
  • Mycin — діагностика інфекційних хвороб крові та рекомендація антибіотиків
  • Prolog — мова програмування, використовується для створення експертних систем
  • R1 / XCON(експертна система) — обробка замовлень
  • SHINE Real-time Expert System — від англ. Spacecraft Health INference Engine, рушій для отримання даних про стан і безпеку космічного корабля
  • STD Wizard — експертна система для рекомендації та вибору медичних аналізів (діагностики)

Структура ЕС[ред.ред. код]

Структура типової експертної системи.[20]

Типові експертні системи можуть мати таку структуру:[21][2]

База знань складається з правил аналізу інформації від користувача з конкретної проблеми. ЕС аналізує ситуацію і, залежно від спрямованості ЕС, дає рекомендації з розв'язання проблеми.

ЕС створюється за допомогою двох груп людей:

  1. інженерів, які розробляють ядро ЕС і, знаючи організацію бази знань, заповнюють її за допомогою:
  2. експертів (експерта) за фахом.

Представлення знань[ред.ред. код]

Представлення знань — одна із функцій експертної системи. Теорія представлення знань — окрема галузь досліджень, тісно пов'язана з філософією формалізму та когнітивною психологією. Предмет дослідження в цій галузі — методи асоціативного збереження інформації, подібні до тих, що існують в мозку людини.

У галузі штучного інтелекту проводиться робота зі створення мов представлення знань, тобто, комп'ютерних мов, орієнтованих на організацію описів об'єктів та ідей. Основними критеріями для представлення знань є логічна адекватність, евристична потужність та природність нотації.

Класифікація ЕС[ред.ред. код]

  • Класифікація ЕС за зв'язком з реальним часом
  • Класифікація ЕС за типом проблемного середовища
  • Класифікація за типом ЕОМ
  • Класифікація за ступенем інтеграції з іншими програмами
  • Класифікація ЕС за завданням, що вирішується

Етапи розроблення ЕС[ред.ред. код]

  • Етап ідентифікації проблем — визначаються завдання, які підлягають вирішенню, виявляються цілі розробки, визначаються експерти і типи користувачів.
  • Етап витягання знань — проводиться змістовний аналіз проблемної області, виявляються поняття і їх взаємозв'язки, визначаються методи розв'язання задач.
  • Етап структуризації знань — обираються ІС і визначаються способи подання всіх видів знань, формалізуються основні поняття, визначаються способи інтерпретації знань, моделюється робота системи, оцінюється адекватність цілям системи зафіксованих понять, методів рішень, засобів представлення й маніпулювання знаннями.
  • Етап формалізації — здійснюється наповнення експертом бази знань. У зв'язку з тим, що основою ЕС є знання, даний етап є найбільш важливим і найбільш трудомістким етапом розробки ЕС. Процес придбання знань поділяють на вилучення знань з експерта, організацію знань, що забезпечує ефективну роботу системи, і представлення знань у вигляді, зрозумілому ЕС. Процес придбання знань здійснюється інженером зі знань на основі аналізу діяльності експерта з вирішення реальних завдань.
  • Реалізація ЕС — відбувається створення одного або декількох прототипів ЕС котрі вирішують поставлені задачі.
  • Етап тестування — проводиться оцінка обраного способу представлення знань в ЕС в цілому.

Переваги та слабкі місця експертних систем[ред.ред. код]

Експертні системи відзначаються певними перевагами над людьми-експертами при використанні. Зокрема, експертна система:

  • переважає можливості людини при вирішенні надзвичайно громіздких проблем;
  • не має упереджених думок, тоді як експерт може користуватися побічними знаннями і легко піддається впливу зовнішніх факторів;
  • не робить поспішних висновків, нехтуючи певними етапами знайдення рішення;
  • забезпечує діалоговий режим роботи;
  • дозволяє роботу з інформацією, що містить символьні змінні;
  • забезпечує коректну роботу з інформацією, яка містить помилки, за рахунок використання імовірнісних методів досліджень;
  • дозволяє проводити одночасну обробку альтернативних версій;
  • за вимогою пояснює хід кроків реалізації програми;
  • забезпечує можливість обґрунтування рішення та відтворення шляху його прийняття.

Але навіть найкращі з існуючих експертних систем мають певні обмеження у порівнянні з людиною-експертом, які зводяться до таких:

  • Більшість експертних систем не цілком придатні для широкого використання. Якщо користувач не має деякого досвіду роботи з цими системами, у нього можуть виникнути серйозні труднощі. Багато експертних систем доступні лише тим експертам, які створювали їх бази знань. Тому потрібно паралельно розробляти відповідний користувацький інтерфейс, який би забезпечив кінцевому користувачу властивий йому режим роботи;
  • «Навички» системи не завжди «зростають» після сеансу експертизи, навіть коли проявляються нові знання;
  • Все ще залишається проблемою приведення знань, отриманих від експерта, до вигляду, який забезпечував би їх ефективне використання;
  • Експертні системи, як правило, не можуть набувати якісно нових знань, не передбачених під час розробки, і тим більше не володіють здоровим глуздом. Людина-експерт при розв'язанні задач звичайно звертається до своєї інтуїції або здорового глузду, якщо відсутні формальні методи рішення або аналоги розв'язування даної проблеми.

[22] [23] [24] [25] [26] [27] [28] [29]

Сфера застосування та перспективи розвитку[ред.ред. код]

Експертні системи досить давно використовуються у діагностиці, зокрема у медичній та автомобільній.

Експертна система стану двигуна SUN SMP 4000

Також експертні системи можна використовувати в прогнозуванні, плануванні, контролі, управлінні та навчанні. Наприклад, експертні системи вже застосовуються в банківській справі в таких напрямках:

  • програмах аналізу інвестиційних проектів;
  • програмах аналізу стану валютного, грошового та фондового ринку;
  • програмах аналізу кредитоспроможності чи фінансового стану підприємств і банків.

Процес створення експертних систем значно змінився за останні роки. Завдяки появі спеціальних інструментальних засобів побудови експертних систем значно скоротились терміни та зменшилась трудомісткість їх розробки. Інструментальні засоби, що використовуються при створенні експертних систем, можна розбити на три класи:

На американському і західноєвропейських ринках систем штучного інтелекту фірми-розробники пропонують організаціям, які бажають створити експертну систему, сотні інструментальних засобів для їх побудови. Нараховуються тисячі розроблених вузькоспеціалізованих експертних систем. Це свідчить про те, що експертні системи складають дуже вагому частину програмних засобів.

Для програмістів-аматорів та для широкого загалу початківців, для яких доступна мова програмування BASIC, суть, структура, принципи функціювання і методологія побудови найпростіших експертних систем детально описані у книзі-практичному посібнику Кріса Нейлора «Как построить свою экспертную систему».[30]

Джерела інформації[ред.ред. код]

  1. а б П. Джексон, «Введение в экспертные системы», Вильямс, 2001. ISBN 5-8459-0150-2, ISBN 0-201-87686-8
  2. а б Carol E. Brown та Daniel E. O'Leary, INTRODUCTION TO ARTIFICIAL INTELLIGENCE AND EXPERT SYSTEMS, переглянуто 7 лютого 2008
  3. Edward Feigenbaum, 1977. Paraphrased by Hayes-Roth, et al.
  4. Hayes-Roth, Frederick; Waterman, Donald; Lenat, Douglas (1983). Building Expert Systems. Addison-Wesley. с. 6–7. ISBN 0-201-10686-8. 
  5. Luger та Stubblefield, 2004, с. 227–331
  6. Nilsson, 1998, chpt. 17.4
  7. McCorduck, 2004, с. 327–335, 434–435
  8. Crevier, 1993, с. 145–62, 197−203
  9. George F. Luger and William A. Stubblefield, Benjamin/Cummings Publishers, Rule Based Expert System Shell: example of code using the Prolog rule based expert system shell
  10. A. MICHIELS, Université de Liège, Belgique: "PROLOG, the first declarative language
  11. Durkin, J. Expert Systems: Catalog of Applications. Intelligent Computer Systems, Inc., Akron, OH, 1993.
  12. Orfali, Robert (1996). The Essential Client/Server Survival Guide. New York: Wiley Computer Publishing. с. 1–10. ISBN 0-471-15325-7. 
  13. Hurwitz, Judith (2011). Smart or Lucky: How Technology Leaders Turn Chance into Success. John Wiley & Son. с. 164. ISBN 1118033787. Процитовано 29 November 2013. 
  14. Dunn, Robert J. (September 30, 1985). Expandable Expertise for Everyday Users. InfoWorld 7 (39). с. 30. Процитовано 2011-03-13. 
  15. AI Expert Newsletter: W is for Winter
  16. Leith P., «The rise and fall of the legal expert system», in European Journal of Law and Technology, Vol 1, Issue 1, 2010
  17. SAP News Desk. SAP News Desk IntelliCorp Announces Participation in SAP EcoHub. http://laszlo.sys-con.com. LaszloTrack. Процитовано 29 November 2013. 
  18. Pegasystems. Smart BPM Requires Smart Business Rules. http://www.pega.com. Процитовано 29 November 2013. 
  19. Zhao, Kai; Ying, Shi; Zhang, Linlin; Hu, Luokai (9–10 Oct 2010). Achieving business process and business rules integration using SPL. Future Information Technology and Management Engineering (FITME) 2. с. 329–332. doi:10.1109/fitme.2010.5656297. ISBN 978-1-4244-9087-5. Процитовано 29 November 2013. 
  20. Алгоритмы искусственного интеллекта на языке PROLOG, 3-е издание. : Пер. с англ. — М. : Издательский дом «Вильяме», 200-1. — 640 с. :ил. — Парал. тит. англ. ISBN 5-8459-0664-4
  21. Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. Учебник. — СПб.: Питер, 2000.
  22. Автоматизированные информационные технологии в экономике. Под. ред. Г. А. Титоренко — М. Компьютер ЮНИТИ, 1998, — 336 с.
  23. Бердтис А. Структуры данних. — М.: Статистика, 1974, — 408 с.
  24. Бойко В. В., Савинков В. М. Проектирование баз данных информационных систем. -М.: Финансы и статистика, 1992.
  25. Бойков. В., Савинков В. М. Проектирование баз данных информационных систем. М. Мир 1997.
  26. Боэм Б. У. Инженерное программирование для проектирования программного обеспечения. -М.: Радио і связь, 1985, −512с.
  27. Вершинин О. В. Компьютер для менеджера. — М.: Высшая школа, 1990.
  28. Вычислительные машины, системы и сети/ Под ред. А. П. Пятибратова. — М.: Финансы и статистика, 1991.
  29. Герасименко В. А. Защита информации в автоматизированных системах обработки данных. — В 2-х кн. — М.: Энергоатомиздат, 1994.
  30. Нейлор К. Как построить свою экспертную систему = Chris Nailor. Build Your Own Expert System. John Wilei & Sons Ltd. Chichester, 1987. — 2-ге видння. — М : Энергоатомиздат, 1991. — 286 p. — 130000 прим. — ISBN 5-283-02502-0 (рос.), ISBN 1-84058-071-5 (англ.), ISBN 0-470-20946-1 (англ.).

Див. також[ред.ред. код]

Література[ред.ред. код]

Посилання[ред.ред. код]


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.