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