Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Звіт
до лабораторної роботи №1,2
«Ознайомлення з експертними системами. Створення власної простої бази знань для вирішення задачі класифікації»
Мета: Ознайомитись з експертними системами. Створити власні прості бази знань для вирішення задач класифікації
Теоретичні відомості
Поняття експертної системи
Експертна система (ЕС) – це прикладна система штучного інтелекту, що використовує формалізовані емпіричні знання фахівців з деякої вузько спеціалізованої предметної області та здатна в межах цієї області приймати рішення на рівні експерта-професіонала.
Експертними системами зазвичай заміняють експертів у небезпечних чи шкідливих умовах (наприклад, в умовах радіоактивного зараження) або для оперативної оцінки ситуації та ухвалення рішень, коли особиста участь експерта утруднена або неможлива (наприклад, на кораблях далекого плавання).
Приклади сфер застосування ЕС:
інтерпретація даних експериментів,
виявлення хімічних і біологічних структур,
прогнозування подій після природних або техногенних катастроф,
діагностика несправностей техніки або захворювань людини,
планування цільових експериментів,
пошук корисних копалин,
керування наземним транспортом,
тощо.
Метою досліджень в області експертних систем є розробка таких програм (пристроїв), що при вирішенні важких для експерта-людини завдань одержують не гірші за якістю та ефективністю результати, в порівнянні з експертними результатами. У більшості випадків ЕС вирішують важкоформалізовувані завдання або такі, що не мають алгоритмічного рішення.
Класифікація експертних систем:
Основні задачі, що ставляться для ЕС, описані нижче:
Інтерпретація – аналіз спостережуваних даних чи ситуацій з метою визначення їх змісту чи опису. Прикладом ЕС такого типу є SIAP, що використовується для виявлення та ідентифікації різних типів океанських суден.
Діагностика – класифікація та пошук несправностей у живих чи неживих системах, що базуються на результатах інтерпретації. Прикладом діагностичної ЕС є ANGY, що допомагає здійснювати діагностику та терапію звуження коронарних судин. Для діагностики помилок в апаратурі та математичному забезпеченні ЕОМ використовується ЕС GRIP.
Моніторинг – порівняння спостережуваних величин чи ситуацій з опорними (критичними) точками плану та видача повідомлень при відхиленні від плану; інший вид моніторингу – неперервний процес інтерпретації сигналів і видача повідомлень у ситуаціях, що вимагають втручання системи вищого рівня або людини. Приклади: допомогу диспетчерам атомного реактора забезпечує ЕС REACTOR; контроль аварійних датчиків на хімічному заводі – FALCON.
Проектування – знаходження такої конфігурації компонентів системи, що задовольняє цільовим умовам та множині проектних обмежень. Прикладом є ЕС SYN для синтезу електричних ланцюжків.
Прогнозування – проектування можливих наслідків даної ситуації. Прикладами таких ЕС є: WILLARD для передбачення погоди, ECON для здійснення прогнозів в економіці, тощо.
Планування – розробка послідовності дій для досягнення множини поставлених цілей при заданих початкових умовах і часових обмеженнях. Прикладами ЕС цього типу є система ISIS для планування промислових замовлень, MOLGEN для планування експериментів, тощо.
Інструктування (навчання) – допомога в освітньому процесі для вивчення певної дисципліни. Системи навчання за допомогою ЕОМ діагностують помилки при вивченні певного предмету та підказують правильні рішення, а також – планують процес спілкування учителя з учнем, в залежності від успіхів учня з метою передачі знань. Приклад: система PROUST для вивчення мови програмування Паскаль.
Керування – керування поведінкою складного середовища або системи.
Тестування – перевірка якості роботи за допомогою спеціальних тестів.
Ремонт – виконання плану організації виправлення деякого виявленого дефекту.
Класифікація ЕС за зв'язком з реальним часом:
Квазідинамічні ЕС інтерпретують ситуацію, що змінюється з деяким фіксованим інтервалом часу. Приклад: мікробіологічні ЕС, що знімають лабораторні виміри та покази щодо певного процесу раз в 4–5 годин (например, при виробництві лізину) та аналізують динаміку одержаних показників по відношенню до попередніх результатів.
Статичні ЕС розробляються для предметних областей, для яких база знань та інтерпретовані дані не змінюються в часі, а є повністю стабільними. Приклади: діагностика несправностей в автомобілях.
Динамічні ЕС працюють разом із датчиками об'єктів у режимі реального часу з неперервною інтерпретацією даних, що надходять. Прикладами є керування гнучкими промисловими комплексами, моніторинг в палатах реанімації, тощо.
Згідно класифікації за типом ЕОМ, нині існують:
ЕС для унікальних стратегічно важливих задач на суперкомп’ютерах (таких, як Ельбрус, CRAY, CONVEX та інші);
ЕС на ЕОМ середньої потужності;
ЕС на символьных процесорах та робочих станціях (SUN, APOLLO);
ЕС на міні- та суперміні- ЕОМ (VAX, micro- VAX і т.д.);
ЕС на персональних комп’ютерах (IBM PC, MAC II та ініш).
Класифікація за ступенем інтеграції з іншими програмами:
Автономні ЕС працюють безпосередньо в режимі консультації з користувачем для вирішення специфічних «експертних» завдань, при чому немає необхідності залучати традиційні методи опрацювання даних, моделювання, тощо.
Гібридні ЕС – це програмні комплекси, що мають у собі стандартні пакети прикладних програм (наприклад, математичну статистику, лінійне програмування або системи керування базами даних) і засоби маніпулювання знаннями.
Означення продукційної експертної системи
Продукційна система – це спосіб представлення знань у вигляді:
невпорядкованого набору продукційних правил,
робочої пам’яті,
механізму логічного виведення типу «розпізнавання-дія».
Продукційні правила часто називають ще продукціями. Продукція – це пара типу «умова-дія», «ситуація-дія», «причина-наслідок», «умова-висновок» і т.д., що визначає одну порцію знань, необхідних для вирішення завдання. В умовній частині правила, природно, знаходяться умови, при яких виконується інша частина правила – частина дії.
Узагальнений запис правила-продукції такий:
,
де – ідентифікатор -продукції в -наборі продукцій; – пріоритет правила продукції; – передумова застосовності ядра продукції, що є предикатом, при виконанні якого активізується ядро продукції; – ядро продукції; – дії та процедури, що повинні бути виконані після виконання ядра продукції.
Ядро продукції може бути детермінованим або недетермінованим, в залежності від того, чи воно звучить як «Якщо , то » (детерміноване), чи як «Якщо , то, можливо, » (недетерміноване). Тобто в деяких випадках при виконанні умови друга частина виконується обов’язково, а в інших випадках – з певною ймовірністю. При чому велиина цієї ймовірності може бути також визначена. Тоді ядро правила буде звучати як «Якщо , то з ймовірністю реалізувати ».
Детерміновані продукції можуть також бути однозначними або альтернативними. В другому випадку в правій частині ядра вказуються альтернативні можливості вибору, що оцінюються спеціальними вагами коефіцієнтами вибору. В якості таких ваг можуть бути ймовірнісні, лінгвістичні, експертні оцінки, тощо. Наприклад: «Якщо , то найчастіше реалізовується , а рідше – ».
У системі, що базується на продукційних правилах, їх кількість визначає розмір бази знань. Достатньо складні системи можуть використовувати бази знань, що містять більше, ніж 5000 продукційних правил. Тому при складанні правил необхідно:
використовувати мінімально достатній набір умов для визначення продукційного правила,
уникати суперечливих продукційних правил,
конструювати правила, опираючись на структуру відповідної предметної області.
Робоча пам'ять містить опис поточного стану об’єкта в процесі міркувань, який співставляється з умовними частинами продукційних правил з метою вибору відповідних дій при рішенні завдання. Якщо умова деякого правила відповідає вмісту робочої пам'яті, то може виконуватися дія, пов'язана із цією умовою. Дії продукційних правил призначені для зміни вмісту робочої пам'яті.
Механізм «розпізнавання-дія» (пошук за зразком). Поточний стан досліджуваної предметної області відображений в робочій пам'яті у вигляді сукупності образів, кожен з яких представляється за допомогою фактів. Факти співставляються з умовними частинами продукцій та вибираються відповідні правила. Якщо факти співпали з умовами більше, ніж одного правила, то такі правила утворюють так звану конфліктну множину і називаються допустимими. Відповідно до обраного механізму вирішення конфлікту вибирається та активізується одна із продукций конфліктної множини. Активація правила означає виконання його дії. При цьому змінюється вміст робочої пам'яті і далі все повторюється. Процес закінчується, якщо вміст робочої пам'яті не відповідає жодній з умов наявних продукційних правил.
Таким чином, процес логічного висновку, що базується на пошуку за зразком, складається із 4 кроків:
вибір образу;
співставлення образу з умовами продукцій та формування конфліктної множини правил;
вирішення конфлікту;
виконання правила.
Побудова бази знань із чіткою логікою, що вирішує завдання класифікації
«Ти геймер?»
Автор: Олексій Бухнин.
Питання:
Ти граєш у комп'ютерні ігри по 6 і більше годин на добу?
Ти кидаєш всі справи заради нової гри?
Від 3D-action ігор у тебе крутиться голова?
Ти нізащо не потягнеш свій комп'ютер до друга для організації змагань по мережі?
Ти в основному витрачаєш гроші або на новий ігровий диск або на апгрейд комп'ютера?
Ти не користуєшся «мишкою» в 3D-action іграх?
Геймер, 0.5, 1,1,0, 2,1,0, 3,0,1, 4,0,1, 5,1,0, 6,0,1
Не геймер, 0.5, 1,0,1, 2,0,1, 3,1,0, 4,1,0, 5,0,1, 6,1,0
У цій базі знань 6 запитань (згідно формату бази знань їх сім, але питання «Питання:» не згадується в жодному правилі) та всього два результати. Апріорні ймовірності обох результатів рівні 0.5, тобто гіпотези, що випадково обрана людина є або не є геймером, є рівноймовірні (при цьому сума апріорних імовірностей дорівнює 1, тобто в базі знань наведені всі можливі результати).
Можна помітити, що та для кожного запитання рівні 1 або 0. При цьому в другому правилі ці значення інвертуються відносно першого правила. Це приводить до того, що максимально впевнена відповідь («Точно так» або «Точно ні») на будь-яке запитання однозначно класифікує користувача як геймера або не геймера.
Побудова бази знань із нечіткою логікою, що вирішує завдання класифікації
Отже, завдання класифікації вирішується дуже просто у випадку двох можливих результатів. Проте якщо можливих результатів є більше, то значно простішим вирішенням є присвоєння для кожного запитання. Це означає, що якщо гіпотеза про настання даного результату невірна, то відповідь на дане запитання не визнача. Звичайно, цей спрощений метод дає менш точні результати, але заощаджує час при створенні бази знань. Порівняйте результати застосування попередньої бази знань із результатами використання зміненої бази, наведеної нижче. Можна помітити, що однозначні відповіді вже не приводять до абсолютно чітких результатів.
«Ти геймер?»
Автор: Олексій Бухнин.
Питання:
Ти граєш у комп'ютерні ігри по 6 і більше годин на добу?
Ти кидаєш всі справи заради нової гри?
Від 3D-action ігор у тебе крутиться голова?
Ти нізащо не потягнеш свій комп'ютер до друга для організації змагань по мережі?
Ти в основному витрачаєш гроші або на новий ігровий диск або на апгрейд комп'ютера?
Ти не користуєшся «мишкою» в 3D-action іграх?
Геймер, 0.5, 1,1,0.5, 2,1,0.5, 3,0,0.5, 4,0,0.5, 5,1,0.5, 6,0,0.5
Не геймер, 0.5, 1,0,0.5, 2,0,0.5, 3,1,0.5, 4,1,0.5, 5,0,0.5, 6,1,0.5
Виконання роботи
1. Ознайомився з теоретичними вказівками.
2. Відкриваю програму «Мала експертна система» та досліджую її можливості, описані у методичних матеріалах з використанням готових баз знань.
3. Для того щоб завантажити базу знань в ЕС, використовую кнопку «Завантажити базу знань» або за допомогою одноіменного пункту меню «Файл» (для цього також призначена «гаряча» клавіша <F2>
4. Щоб запустити сеанс консультації та зупинити його використовую кнопку «Почати консультацію» («гаряча» клавіша <F3> або пункт меню «Консультація | Почати консультацію»). Консультацію можна припинити в будь-який момент часу, натиснувши кнопку «Скидання результатів» (на яку заміняється кнопка «Почати консультацію») або вибравши відповідний пункт меню «Консультація» («гаряча» клавіша <F3>)
5. Щоб зберегти протокол консультації використовую пункт меню "Файл" -> Зберегти протокол, або гарячу клавішу <F4>
6. Режими відображення результатів та запитань можна змінити в пункті меню "Настройки" -> "Предпочтения" (<F7>)
Вивід запитань можна змінити в нижній частині головного вікна програми.
6. Щоб відключити декілька запитань у нижній половині головного вікна програми є два списки свідчень (запитань): ліворуч – активних, праворуч – відключених. Між списками розташована панель керування, що дозволяє переміщати вислови з одного списку в інший, виділяти елементи в кожному списку, вибирати спосіб сортування. Відключати й робити активними висловами можна в будь-який момент (навіть під час консультації).
7. Головне вікно програми «Редактор баз знань» має вигляд
8. Що завантажити існуючу базу знань використовую "Файл" -> "Завантажити базу знань" (<F2>)
9. Щоб перевірити правильність бази знань використовую пункт "Правка" -> "Перевірити базу знань" (<F3>)
10. Для встановлення паролів використовую необхідні поля.
Скріншоти виконання лаборторної роботи
База знань з чіткою логікою та двома можливими результатами:
Проста база знань з нечіткою логікою та мінімум 6 можливими результатами:
Висновки: Отже, на цій лабораторній роботі, я ознайомився з експертними системами. Створив власні прості бази знань для вирішення задач класифікації.