Systemy ekspertowe

Transkrypt

Systemy ekspertowe
Pojęcie i geneza systemów eksperckich
Opracował:
Konrad Banaś
Wstęp
Systemy ekspertowe są jedną z dziedzin sztucznej inteligencji więc na początku warto
zastanowić się czym tak właściwie jest sztuczna inteligencja. Aby dokładnie przybliżyć wyżej
wymieniony termin należy uświadomić sobie co oznacza termin inteligencja. Otóż pojęcie
inteligencji było znane już w starożytności. Wprowadził je najprawdopodobniej Cyceron.
W jego interpretacji termin ten miał oznaczać zdolności umysłowe człowieka. Późniejsi
badacze nadali temu pojęciu bardziej rozwiniętą interpretację. Najogólniej mówiąc, termin
inteligencja oznacza zdolność rozumienia otaczających sytuacji i znajdowania na nie
właściwych reakcji. Inaczej rzecz ujmując inteligencja jest to zdolność rozpoznawania
obserwowanego wycinka rzeczywistości , jego rozumienia, określania właściwych celów oraz
poszukiwania sposobów osiągnięcia tych celów. Przez wiele dziesiątków lat ludzie na całym
świecie próbowali stworzyć maszynę, która choćby w najmniejszym stopniu odzwierciedlała
inteligencję ludzką. Dzięki temu systemy takie wykazywałyby cech tzw. sztucznej
inteligencji, która jest chyba najbardziej kontrowersyjną dziedziną informatyki. Problemy
jakie powstawały podczas prób zbudowania takich systemów były ogromne. Przede
wszystkim zdano sobie sprawę, że komputer nie potrafi sam z siebie niczego nowego odkryć
ani niczego nowego wynaleźć, gdyż prawdziwe twórcze myślenie jest mu niedostępne.
Jednakże ludzie nie przestają próbować stworzyć takiego systemu ponieważ mógłby być on
niezwykle użyteczny. Przede wszystkim komputer pod względem szybkości dokonywanych
obliczeń przewyższa znacznie możliwości człowieka i gdyby posiadał własną świadomość
postęp ludzkości mógłby znacznie się przyspieszyć. Tak naprawdę to ciężko jest nawet
jednoznacznie określić pojęcia sztucznej inteligencji, a to ze względu na sprzeczność między
znaczeniem słów „sztuczny” i „inteligencja”. Najpopularniejszym wytłumaczeniem tego
pojęcia jest definicja sztucznej inteligencji według Minsky’ego: „Sztuczna inteligencja jest
nauką o maszynach realizujących zadania, które wymagają inteligencji wówczas, gdy są
wykonywane przez człowieka”. Tak więc powstaje pytanie, kiedy system komputerowy
wykazuje cech sztucznej inteligencji. Turing zaproponował prosty test dający odpowiedz na
to pytanie: Maszyna jest nazywana inteligentną, jeśli zewnętrzny obserwator nie jest w stanie
odróżnić jej odpowiedzi od odpowiedzi człowieka mogącego zastępować maszynę.
2
Jak wspomniałem na początku pracy systemy ekspertowe są jedną z dziedzin
sztucznej inteligencji. Oto te dziedziny:
a)
rozwiązywanie problemów i strategie przeszukiwań
b)
teoria gier
c)
automatyczne dowodzenie twierdzeń
d)
przetwarzanie języka naturalnego
e)
systemy ekspertowe
f)
robotyka
g)
procesy percepcji (wizja, słuch, dotyk)
h)
uczenie się maszyn
i)
wyszukiwanie informacji (inteligentne bazy danych)
j)
programowanie automatyczne
W metodach sztucznej inteligencji następuje przejście od przetwarzania danych do
przetwarzania wiedzy. Systemy te określa się jako systemy oparte na wiedzy. Metody
algorytmiczne charakterystyczne dla przetwarzania proceduralnego w sztucznej inteligencji
zostają zastąpione przeszukiwaniem inteligentnym.
Zdając już sobie sprawę z tego czym jest sztuczna inteligencja możemy dokładniej zagłębić
się w jedną z jej dziedzin: systemy ekspertowe.
Systemy ekspertowe – definicja, geneza, przykładowa struktura.
System ekspertowy (SE) – jest to program komputerowy, przeznaczony do
rozwiązywania specjalistycznych problemów, które wymagają profesjonalnej ekspertyzy na
poziomie trudności pokonywanych przez ludzkiego eksperta.
Komputerowe systemy ekspertowe są potomkami pierwszych inteligentnych
programów, takich jak „rozwiązywacz problemów ogólnych” (GPS) Herberta Simona
i Allena Newella. Nie są aż tak bardzo abstrakcyjne i ambitne, jak ich rodzice, lecz stanowią
skuteczne i liczne potomstwo. Pierwsze z najbardziej znanych systemów eksperckich to:
Dendral - powstały w roku 1960 w Stanford, którego zadaniem było rozpoznawanie molekuł
związków organicznych na podstawie analizy widm spektroskopowych.
Prospector – system ekspertowy wykorzystywany do wspomagania prac geologicznych
(badania mineralne). System ten został stworzony w latach 1976-1981 przez grupę
naukowców ze Stanford Research Institute. Głównym jego zadaniem jest przedstawienie
3
wiedzy geologicznej i rozważania procesów ekspertowych w takiej dziedzinie jaką jest
geologia.
Mycin – regułowy system ekspertowy stworzony w latach 70 XX wieku na uniwersytecie
w Standford. Napisany został w języku LISP. Zadaniem systemu Mycin było zdiagnozowanie
bakteryjnej choroby krwi i zaproponowanie odpowiedniej terapii. Bazę wiedzy stanowił
zestaw reguł IF-THEN stworzony przez konsylium lekarskie z tego zakresu. Początkowo
reguł tych było 200, po późniejszych modyfikacjach wzrosła ona do około 450.
Praca systemu Mycin polegała na dialogu z lekarzem, w czasie którego lekarz przekazywał
swoją wiedzę dotyczącą badanej próbki krwi (m.in. wiek i płeć pacjenta, data pobrania krwi
itp.) Po zadaniu około 50-60 pytań Mycin wyświetlał wyniki do jakich doszedł. Zaletą
systemu była szybkość podejmowania trafnych decyzji, do których nie potrzebował wyników
czasochłonnych badań krwi ani wszystkich odpowiedzi na zadane lekarzowi pytania.
Dowolny program komputerowy może być systemem ekspertowym o ile na podstawie
szczegółowej wiedzy „potrafi” wyciągać wnioski i używać ich podejmując decyzję, tak jak
człowiek. Bardzo często zdarza się jednak, iż taki system, pracujący w czasie rzeczywistym
pełni swoją rolę lepiej niż człowiek (ekspert). Główną przewagą systemu ekspertowego nad
człowiekiem jest szybkość oraz brak zmęczenia.
Systemy ekspertowe, ze względu na zastosowanie, dzielimy na trzy ogólne kategorie:
-
systemy doradcze (advisory systems),
-
systemy krytykujące (criticizing systems),
-
systemy podejmujące decyzje bez kontroli człowieka.
Pierwszy rodzaj - systemy doradcze, zajmują się doradzaniem, tj. wynikiem ich
działania jest metoda rozwiązania jakiegoś problemu. Jeżeli rozwiązanie to nie odpowiada
użytkownikowi, może on zażądać przedstawienia przez system innego rozwiązania, aż do
wyczerpania się możliwych rozwiązań.
Odwrotnym działaniem do systemów doradczych charakteryzują się systemy
krytykujące. Ich zadaniem jest ocena rozwiązania (danego problemu) podanego przez
użytkownika systemowi. System dokonuje analizy tego rozwiązania i przedstawia wyniki
w postaci opinii.
4
Ostatnim rodzajem systemów ekspertowych są systemy podejmujące decyzje bez
kontroli człowieka. Działają one niezależnie. Pracują najczęściej tam gdzie udział człowieka
byłby niemożliwy, same dla siebie są autorytetem.
Najszersze i najliczniejsze zastosowanie wśród systemów ekspertowych mają systemy
doradcze. Budowane dziś systemy doradcze wykorzystują różne metody reprezentacji
wiedzy: reguły, ramy, sieci semantyczne, rachunek predykatów, scenariusze. Najbardziej
powszechną metodą jest reprezentacja wiedzy w formie reguł i przeważnie wielkość systemu
określa liczba wpisanych reguł. Przyjęto, że system, który posiada poniżej 1000 reguł
nazywany jest zazwyczaj małym lub średnim systemem ekspertowym, zaś powyżej
- systemem dużym.
Aby zbudować inteligentny program będący systemem ekspertowym należy go
wyposażyć w dużą ilość prawdziwej i dokładnej wiedzy z dziedziny, jaką będzie się
zajmował. Ogólnie mówiąc wiedza jest informacją, która umożliwia ekspertowi podjęcie
decyzji. Zasadniczym celem przy realizacji systemu ekspertowego jest pozyskanie wiedzy od
ekspertów, jej strukturalizacja i przetwarzanie. Proces pozyskiwania wiedzy obrazuje
poniższy schemat:
Dane, problemy, pytania
Ekspert
dziedziny
Inżynier
wiedzy
Wiedza
strukturalizowana
Baza
wiedzy
Rys 1. Proces pozyskiwania wiedzy.
Jak widać na schemacie, wiedza jest pobierana przez inżyniera wiedzy od eksperta z danej
dziedziny, w razie niejasności inżynier zwraca się z pomocą do eksperta. Następnie jest
strukturalizowana do Bazy wiedzy, skąd może być przetwarzana.
Następnym krokiem przy realizacji systemu ekspertowego jest dopasowanie i wybór
odpowiednich metod wnioskowania i wyjaśniania rozwiązywanych problemów. Na
zakończenie należy jeszcze zaprojektować odpowiednio przyjazny i naturalny interfejs
między użytkownikiem a maszyną.
5
Systemy ekspertowe nazywane są inaczej systemami z baza wiedzy, bowiem
w systemach takich baza wiedzy odseparowana jest od reszty. Oprócz bazy wiedzy na system
składa się również mechanizm wnioskowania zwany maszyną wnioskującą. Podstawowe
bloki systemu ekspertowego obrazuje poniższy schemat.
Baza wiedzy
FAKTY
REGUŁY
Maszyna wnioskująca
wraz z jednostką
sterującą
Rys 2. Podstawowe bloki systemu ekspertowego.
Baza wiedzy są to reguły opisujące relacje między faktami, opisują one jak system ma się
w danym momencie działania zachować. Maszyna wnioskująca zaś, dopasowuje fakty do
przesłanek i uaktywnia reguły.
Baza wiedzy to część systemu zawierająca wiedzę o dziedzinie oraz o podejmowaniu decyzji
przez eksperta. Zawiera w sobie reguły i fakty. Są one wykorzystywane do uzyskiwania
rozwiązań problemów z danej dziedziny. Im większa baza wiedzy, tym bardziej
prawdopodobne jest, że system uzyska prawidłowe rozwiązanie. Fakty, które są elementem
bazy, najczęściej istnieją w niej jako zdania oznajmujące. Stwierdzenie nazywane faktem
istnieje jako zapis związków pomiędzy obiektami i może się charakteryzować różnymi
atrybutami.
Drugim elementem w bazie wiedzy są reguły. Zapisywane są np. za pomocą operatorów
IF, THEN, AND, OR. Dzięki nim zadawane są pytania o związki pomiędzy obiektami. Po
uaktywnieniu reguły fakty są dodawane do bazy wiedzy i wykonywane są odpowiednie akcje.
6
Bazy wiedzy można podzielić na:
-
baza tekstów (text base) - występuje w niej naturalna strukturalizacja
informacji, wynikająca np. z ułożenia alfabetycznego. Przykładem mogą być
słowniki, które zawierają wiedzę ogólną z danej dziedziny.
-
baza danych (data base) - zawiera uporządkowane sprecyzowane, szczegółowe
informacje. Typ danych jest często numeryczny, a operacje na niej wykonywane są
zdeterminowane.
-
baza reguł (rule base) - zawiera zbiór zależności pomiędzy obiektami
występującymi w danej dziedzinie.
-
baza modeli (model base) - w niej zawarte są modele matematyczne
występujące w danej dziedzinie. Możemy wyróżnić trzy typy: deterministyczne
niedeterministyczne, wartości oczekiwane.
-
baza wiedzy zdroworozsądkowej (common sense knowledge base) - zbiór
potencjalnych, racjonalnych zachowań człowieka, reguł definiujących sposoby
podejmowania decyzji.
Twórca bazy wiedzy w trakcie jej konstruowania musi brać pod uwagę pewne czynniki.
Oto pytania, na które powinien odpowiedzieć:
-
jakie obiekty należy zdefiniować?
-
jakie są relacje między tymi obiektami?
-
jak należy formułować i przetwarzać reguły?
-
czy baza wiedzy jest odpowiednia do rozwiązywania specyficznych
problemów?
Odpowiednie zinterpretowanie i prawidłowa odpowiedź na powyższe pytania uchroni
w przyszłości konstruktora bazy od konieczności dokonania w niej zmian, w wypadku gdyby
zła konstrukcja bazy powodowała nieprawidłowe działanie systemu.
W trakcie poprawy bazy może wystąpić sytuacja, w której usunięcie jednej pomyłki
może spowodować powstanie następnej. Do uniknięcia takiej sytuacji stosowana jest kontrola
poprawności semantycznej i automatyczne testowanie. Kontrola ta odbywa się jak "rozmowa"
systemu z konstruktorem. Jest on tym, który zatwierdza ostateczną wersję poprawek, po
przetestowaniu zmodyfikowanej bazy wiedzy. Stosowane bywa także automatyczne
sprawdzanie poprawności i modyfikowanie bazy, bez udziału konstruktora. Zmodyfikowana
7
baza jest testowana szeregiem zadań, na które znane są odpowiedzi i przyjmowane jest to
rozwiązanie, które osiąga najlepsze wyniki w testach. Tak więc konstruowanie bazy wiedzy
jest jednym z najważniejszych procesów w trakcie tworzenia systemu eksperckiego.
Ponieważ jest to proces bardzo złożony, stworzono więc odpowiednie metody i programy
pomocne w tym procesie, które są dosyć uniwersalne, jeśli chodzi o zakres zastosowania.
Jednym z wykorzystywanych narzędzi są edytory tekstu, które w obecnych czasach potrafią
wykrywać wiele błędów powstających w trakcie wprowadzania tekstu do bazy wiedzy.
Najważniejsze ich cechy to:
-
wygodna komunikacja z użytkownikiem i zautomatyzowane operacje
rejestracji przy rozmieszczaniu informacji
-
kontrola poprawności ortograficznej i syntaktycznej wprowadzanej informacji
tekstowej
-
kontrola semantycznej niesprzeczności pomiędzy nowo wprowadzanymi
danymi a już zawartymi w bazie.
Odpowiednie systemy okien i wprowadzanie informacji w postaci graficznej są także
bardzo pomocne i znacznie ułatwiają pracę użytkownikowi, który ma swój udział
w tworzeniu bazy wiedzy. Systemy najbardziej rozwinięte posiadają powyższe narzędzia
a także potrafią sprawdzać kolejność i spójność nowych informacji z już wprowadzonymi,
wykrywając ewentualne sprzeczności. Istnieje także wiele innych narzędzi programowych
(expert system tool). Zawierają one najczęściej: maszynę wnioskującą, interfejs
z użytkownikiem, procedury do pozyskiwania wiedzy. Podstawowe ich zadanie to skrócenie
czasu konstruowania systemu i zmniejszenie wysiłku, jaki w to trzeba włożyć. Narzędzia te są
często łatwe w wykorzystaniu w jednych dziedzinach, natomiast ograniczone w innych. Przy
dobieraniu narzędzia programowego w trakcie konstruowania bazy należy się więc
zastanowić i sprawdzić, czy jest ono najodpowiedniejsze dla danego systemu.
Maszyna wnioskująca natomiast ma na celu prowadzenie procesów wnioskowania celem
wyprowadzenia nowych konkluzji, udowodnienia postawionej tezy lub do przeprowadzenia
dowodu określonego celu. W procesie wnioskowania wykorzystujemy fakty zapisane w bazie
danych i wiedzy oraz reguły zapisane w bazie wiedzy. Generalnie proces wnioskowania może
być prowadzony jako wnioskowanie w przód, tył lub mieszane.
Wnioskowanie w przód - od przesłanek do wniosku.
Wnioskowanie w tył - zaczynamy od wniosku (celu).
8
Maszyna wnioskująca progresywnie
Proces wnioskowania wykorzystuje pewien obszar pamięci podręcznej, gdzie
przechowuje wyniki częściowe, obszar ten nazywamy stosem zadań. Działanie algorytmu
rozpoczyna się od wrzucenia badanej hipotezy na stos zadań. Następnie system stara się
znaleźć odpowiedź na postawioną hipotezę na liście faktów w bazie wiedzy. Jeżeli maszyna
znajduje fakt w bazie wiedzy, który daje się dopasować symbolicznie do hipotezy (zarówno
nazwa, jak argumenty), to następuje zakończenie procesu wnioskowania i na podstawie
znalezionego faktu zostaje wygenerowana odpowiedź. W momencie, gdy nie udaje się
znaleźć pasującego faktu w bazie faktów, podejmowane są kroki, które generują nowe fakty.
Maszyna wnioskująca regresywnie
Po rozpoczęciu działania maszyna pobiera bazę wiedzy podaną na wejście systemu
i sprawdza poprawność składni tej bazy. Jeśli jest ona poprawna, to system odczytuje kolejne
słowa kluczowe i wpisuje ich wartości do struktur danych, dzięki czemu jest tworzona lista
reguł. Kolejnym krokiem jest utworzenie listy faktów na podstawie wykonanej wcześniej listy
reguł. W tym celu dla każdego warunku każdej reguły maszyna przeprowadza dwa testy.
Pierwszy sprawdza, czy wybrany warunek znajduje się w konkluzji jakiejkolwiek reguły
z listy reguł. Drugi sprawdza, czy wartość obiektu badanego warunku istnieje na liście
odpowiedzi dotyczącej tego obiektu w jakiejkolwiek regule. Gdy oba testy dają wynik
negatywny, to badany warunek jest dołączany do listy faktów. Jeżeli oba testy są pozytywne,
to system przechodzi do badania kolejnego warunku.
W ten sposób tworzona jest wewnętrzna baza wiedzy. Następnie system stawia pytanie
o cel główny, do którego ma zmierzać, i stara się dać odpowiedź na zadany cel i uruchamia
proces wnioskowania.
Zagłębiając się bardziej szczegółowo w strukturę należy zaznaczyć, iż system
ekspertowy posiadać musi również takie elementy jak:
-
bazę danych stałych (raz zapisane nie zmieniają się),
-
bazę danych zmiennych (zmieniają się w czasie działania systemu),
-
elementy objaśniające strategię (procedury objaśniania),
-
interfejs z użytkownikiem (procedury wejścia/wyjścia do formułowania zapytań
przez użytkownika maszynie oraz procedury umożliwiające pobranie wyników od
systemów),
-
procedury aktualizacji bazy wiedzy,
oraz elementy główne opisane wcześniej:
-
bazę wiedzy,
9
-
maszynę wnioskującą (czyli procedury wnioskowania),
Łącząc te elementy można przedstawić system jako bardziej skomplikowaną strukturę
ukazaną na schemacie poniżej.
PROCEDURY
WNISKOWANIA
PROCEDURY
STEROWANIA
DIALOGIEM
BAZA
WIEDZY
BAZA
DANYCH
STAŁYCH
PROCEDURY
OBJAŚNIANIA
NAZA
DANYCH
ZMIENNYCH
PROCEDURY
AKTUALIZACJI
BAZY WIEDZY
Rys 3. Struktura systemu ekspertowego.
Rodzaje problemów rozwiązywanych przez systemy ekspertowe.
System ekspertowy mają szerokie zastosowanie w niemal każdej dziedzinie. Oto wybrane
problemy i zagadnienia, którymi zajmują się systemy ekspertowe:
-
nadzór sieci telefonicznej na podstawie raportów o uszkodzeniach i zgłoszeń
abonenckich (ACE),
-
systemy diagnozy medycznej (CASNET),
-
wyznaczanie relacji przyczynowo – skutkowej w diagnostyce medycznej (ABEL),
-
systemy interpretacyjne dla nadzoru,
-
rozpoznawania mowy,
-
interpretacji sygnałów (np. z czujników alarmowych),
-
interpretowanie postaci elektrokardiogramów (CAA),
-
identyfikacja struktur cząstek białka (CRYSTALIS),
-
diagnostyka maszyn cyfrowych (DART),
10
-
prognozowanie pogody,
-
interpretacja wyników spektrografii masowej (DENDRAL),
-
interpretacja wyników badań geologicznych przy poszukiwaniu ropy naftowej
(DIPMETER ADVISOR),
-
diagnostyka chorób,
-
diagnostyka komputerów (FAULTFINDER, IDT),
-
interpretacja wyników pomiarów dla potrzeb chemii (GAL),
-
identyfikacja związków chemicznych metodą emisyjną (GAMMA),
-
wspomaganie badań geologicznych (LITHO),
-
konfiguracja systemu komputerowego,
-
diagnostyka chorób nowotworowych (ONCOCIN),
-
analiza rynku,
-
planowanie projektu np. w handlu,
-
poszukiwanie złóż minerałów (PROSPECTOR),
-
diagnostyka siłowni jądrowych (REACTOR),
-
nadzorują i planują czynności przy dokonywaniu napraw
uszkodzonych
obiektów,
-
pełnią rolę nauczania (np. przy szkoleniu studentów),
-
planowanie eksperymentów genetycznych (MOLGEN, GENESIS, SPEX),
-
nadzorowanie eksploatacji sprzętu do wiercenia szybów naftowych,
-
kompletowanie sprzętu komputerowego (CONAD, R1, XCON),
-
diagnostyka lokomotyw spalinowych (DELTA),
-
kształcenie lekarzy (Gwidon),
-
szkolenie operatorów siłowni jądrowych (STEAMER),
-
analiza obwodów cyfrowych (CRITTER),
-
analiza układów elektrycznych (EL),
-
analityczne rozwiązanie zadań w zakresie algebry i równań różniczkowych
(MAKSYMA),
-
planowanie ruchów robota,
-
monitorowanie (np. w elektrowniach, medycynie)
-
sterowanie układami mechanicznymi i elektronicznymi,
-
modelowanie układów mechanicznych (SACON),
-
prowadzenie dialogu z maszyną cyfrową w języku naturalnym (INTELLECT),
-
projektowanie komputerów,
11
-
doradztwo (np. dla rolnictwa).
Podsumowanie
W dzisiejszym świecie nie sposób sobie wyobrazić niektórych dziedzin nauki bez
wykorzystania systemów ekspertowych. Niektóre z nich obecnie znacznie
przewyższają swoimi diagnozami diagnozy najbardziej doświadczonych ludzi.
Przewaga ta ujawnia się przede wszystkim w czasie podejmowania decyzji. W czasie
który obecnie jest w nauce najważniejszy. Co raz to powstają nowe, szybsze
i dokładniejsze systemy ekspertowe. Mogło by się wydawać ze niedługo wyprą one
całkowicie decyzje człowieka. Należy jednak pamiętać że to tylko maszyny i nie
można całkowicie polegać na ich diagnozach.
Literatura:
•
Jan J. Mulawka „Systemy ekspertowe”,
•
Wojciech Cholewa, Witold Pedrycz „Systemy doradcze”,
•
Encyklopedia Powszechna PWN,
•
Internet.
12