Systemy ekspertowe
Wśród licznych znanych obecnie narzędzi sztucznej inteligencji na szczególną uwagę zasługują systemy ekspertowe. Ta szczególna uwaga winna im być poświęcona głównie z tego powodu, że są to aktualnie najbardziej popularne w praktyce narzędzia sztucznej inteligencji. W istocie są to jedyne narzędzia, które zyskały na tyle powszechną aprobatę użytkowników, że obsługujące je programy stanowią dosyć chętnie kupowany produkt komercyjny (także do użytku domowego).
Systemy ekspertowe i ich zastosowania
Podstawowe informacje na temat systemów ekspertowych.
Geneza i brzmienie nazwy systemów ekspertowych
Na wstępie rozdziału poświęconego systemom ekspertowym należy sprecyzować co rozumie się przez to określenie. Nazwa “systemy ekspertowe” używana na rynku polskim pochodzi z języka angielskiego. W oryginale odpowiednie programy nazywają się “Expert Systems”, ponieważ to właśnie w USA powstały pierwsze takie systemy. W Polsce funkcjonują jeszcze ciągle jeszcze trzy „konkurujące” określenia na te systemy, a mianowicie “systemy eksperckie” (najbliższe tłumaczenie z języka angielskiego, ale brzydko brzmiące), “systemy ekspertowe” oraz “systemy doradcze”. W pracy tej będzie używana nazwa “systemy ekspertowe” jako, że wydaje się najbardziej swojsko brzmiąca - chociaż jest to bez wątpienia kalka językowa pochodząca od angielskiego źródłosłowu. Używany w dalszym tekście skrót do tej nazwy to SE. Natomiast pomysł zastępowania nazwy „ekspertowe” poprzez „doradcze” budzi w literaturze przedmiotu kontrowersje. System ekspertowy jest systemem doradczym, ale niekoniecznie system doradczy musi być systemem ekspertowym. Wiemy już zatem, skąd się bierze nazwa rozważanej tu klasy programów, ale jaka treść się wiąże z tą nazwą? Potrafimy dosyć dobrze zrozumieć, kim jest człowiek, o którym mówimy „ekspert”, ale co kryje się pod hasłem “system ekspertowy”, jeśli system ten jest komputerowym programem?
Najlepiej posłużyć się analogią. System ekspertowy, jest to taki program komputerowy, który może robić to samo, co człowiek-ekspert.
No dobrze - a co takiego może zrobić ekspert? Ustalmy najpierw, że jako eksperta można określić człowieka, który nabył dogłębną wiedzę teoretyczną o danej dziedzinie poprzez staranne studia, albo wiedzę praktyczną poprzez długoletnią pracę praktyczną (zastosowaniową). Od eksperta wymaga się wiedzy bardzo zaawansowanej, co powoduje, że ekspertem można być wyłącznie w pewnym wąskim wycinku wiedzy. Przy rozwiązywaniu danego problemu ekspert inteligentnie korzysta ze swojej wiedzy. Zwykle dobry ekspert jest obdarzony intuicją i ma dar stosowania tzw. skrótów myślowych i innych "tricków", pozwalających mu na "przeskoki" w czasie prowadzonego rozumowania. Ten fakt umożliwia ekspertowi wybór najkrótszych dróg dojścia do zadanego celu. Aby zdefiniować i jakoś nazwać podane właściwości umysłu eksperta, mówi się zwykle, że posiada on dodatkowo wiedzę heurystyczną. Dobry ekspert podaje dobre rozwiązania w stosunkowo krótkim czasie. Co więcej jest on zdolny do udzielania wyjaśnień odnośnie swojego rozumowania.
Jeśli chodzi o ekspertyzy, które pochodzą od eksperta, to są one stale doskonalone poprzez ćwiczenia, szkolenie i doświadczenie. Wiedzę na temat samego sposobu formułowania ekspertyz nazywa się wiedzą płytką, dlatego że składa się ona wyłącznie z dosyć prostych, indywidualnie doskonalonych metod, których specjaliści nauczyli się dla lepszego wykonywania swych czynności. Poza tą wiedzą płytką eksperci uznawani w poszczególnych dziedzinach mają zazwyczaj tak zwaną wiedzę głęboką, na którą składa się głównie profesjonalne wykształcenie oraz własna (często wieloletnia) praktyka eksperta. Ta część wiedzy, nawet jeśli jest czerpana z praktyki, to jednak zawsze oparta jest na teorii, czyli podstawowych zasadach, prawach, wytycznych, itd. W konsekwencji wiedza taka nazwana jest głęboką i jest ona bardziej ogólna od wiedzy płytkiej.
W sztucznym systemie ekspertowym, który jest po prostu odpowiednim programem, wiedza zawsze pochodzi z zewnątrz. Najczęściej wiedzę, potrzebną do „napełnienia” systemu ekspertowego pozyskuje od eksperta-człowieka lub zespołu ekspertów. Jest to tzw. wiedza prywatna ekspertów, którą pozyskują i odpowiednio preparują (w celu wprowadzenia do sztucznego systemu ekspertowego) specjalnie kształceni specjaliści nazywani inżynierami wiedzy. Ich rola jest bardzo ważna i trudna zarazem, gdyż w swojej pracy muszą oni bardzo mocno opierać się na znajomości procesów kognitywnych człowieka (żeby we właściwy sposób wydostać wiedzę od ekspertów), a także muszą znać dokładnie techniki odwzorowywania wiedzy (nie danych ani informacji, ale właśnie wiedzy!) w systemach komputerowych - co jest trudną i złożoną sztuką!
Głównym źródłem wiedzy dla dobrego systemu ekspertowego są zawsze wskazówki, reguły i informacje pochodzące od odpowiednio wybranych ludzi, ale ponadto potrzebna systemowi wiedza może być pozyskiwana z książek, katalogów, informacji fabrycznych, itp. (jako tzw. wiedza publiczna).
Systemy ekspertowe starają się naśladować decyzje eksperta-człowieka w konkretnej dziedzinie i potrafią to robić wielokrotnie, w powtarzalny i przyjazny dla użytkownika sposób. Ich rola jest dokładnie taka sama jak rola człowieka eksperta - to znaczy użytkownik szuka z ich pomocą wysublimowanej i dostosowanej do okoliczności wiedzy (w postaci rady na zadany temat) a nie samych tylko „gołych” informacji. Dlatego też systemy takie nazwano ekspertowymi.
Działanie systemu ekspertowego zależy przede wszystkim od jakości pozyskanej dla niego wiedzy, która powinna odzwierciedlać rzeczywistą wiedzę eksperta; w mniejszym stopniu zależy od reprezentacji tej wiedzy czy od użytego sposobu wnioskowania.
Aby system ekspertowy był wygodny w użyciu musi także reprezentować wiedzę płytką. Zaletą posiadania przez komputer tego rodzaju wiedzy jest fakt, że program komputerowy wyposażony w taką wiedzę zachowuje się w podobny sposób, jak człowiek-ekspert. Natomiast wadą takiego podejścia jest to, że wiedza płytka dotyczy metod bardzo szczegółowych, o specjalnych zastosowaniach, trudnych do uogólnienia. Dlatego też systemy ekspertowe robione są zawsze dla specyficznych, wąsko zdefiniowanych problemów. Dla przykładu typowe ekonomiczne dziedziny dla tych systemów to: analiza kredytów, analiza finansowa, inwestycje giełdowe, itp. Nie ma więc pojedynczego systemu ekspertowego, który mógłby pełnić rolę eksperta finansowego w dowolnym obszarze ekonomii, ale do każdego obszaru da się zbudować oddzielny system, skuteczny w danej wąskiej dziedzinie. Dzięki zawężeniu obszaru zastosowań systemu osiągnięto dobre rezultaty, ale jednak za cenę specjalizacji systemu w kilku wąskich zadaniach i jego zupełnej nieadekwatności do jakichkolwiek innych zadań, nawet pokrewnych. Dlatego obecnie istnieje tendencja do rozwijania także systemów ekspertowych zawierających bardziej ogólną, teoretyczną wiedzę, do której system może wracać, gdy napotka problemy, które nie mogą być rozwiązane dzięki wiedzy płytkiej.
Rys. 10. Struktura i działanie systemu ekspertowego (Źródło: opracowanie własne).
Termin systemy ekspertowe drugiej generacji stosowany jest do określania systemów, które zawierają eksperymentalną wiedzę płytką i teoretyczną wiedzę głęboką. Koncepcja najbardziej użytecznych w praktyce Systemów Wspomagania Decyzji z Bazą Wiedzy dotyczy właśnie systemów drugiej generacji, ponieważ stosuje się w nich kombinacje reprezentacji wiedzy w postaci algorytmicznej i w formie bazy wiedzy.
Początki systemów ekspertowych.
Lata pięćdziesiąte i sześćdziesiąte XX wieku były świadkiem oszałamiających wręcz sukcesów w badaniach nad sztuczną inteligencją (SI), nurtem zapoczątkowanym słynnym pytaniem Alana Turinga „Czy maszyny mogą myśleć?”. Komputerowe rozpoznawanie obrazów, rozgrywanie gier, tłumaczenie tekstów z jednego języka na inny czy rozwiązywanie problemów logicznych i matematycznych święciło wówczas triumfy. Wynikiem i kontynuacją tamtych badań - z czego niejednokrotnie nie zdajemy sobie sprawy - są dzisiejsze programy sterujące pociskami rakietowymi bądź rozpoznające pismo, gry komputerowe, słowniki (np. Collinsa) czy programy wspomagające procesy decyzyjne bądź dokonujące obliczeń matematycznych i statystycznych.
Postępy w pracach skłaniały wielu uczonych w latach siedemdziesiątych ubiegłego stulecia do wydawania bardzo optymistycznych sądów - za pięć, siedem, a góra za piętnaście lat komputery będą inteligentniejsze od człowieka, a większość dziedzin zostanie zredukowanych do badań nad sztuczną inteligencją. Upływ czasu okazał się nieubłaganym testem dla zbytnich optymistów - żyjemy w 2003 roku i wiemy, że nie sprawdziły się nadzieje z lat siedemdziesiątych na maszynowe zduplikowanie bądź prześcignięcie możliwości ludzkiego umysłu.
Pierwsze systemy ekspertowe powstały w latach sześćdziesiątych. Ich twórcy, zwolennicy tzw. GOFAI (ang. Good Old Fashioned Artificial Intelligence - Dobra Staromodna Sztuczna Inteligencja) uważali, że mózg ludzki operuje na symbolach i działa zgodnie z pewnymi regułami. Stąd wywnioskowano, że stworzywszy odpowiednią dużą liczbę reguł oraz wystarczająco sprawną maszynę wnioskującą, można skutecznie naśladować proces rozumowania ludzkiego umysłu. Projekt GOFAI zakładał, że można odgórnie podzielić inteligencję na moduły, reprezentujące różne dziedziny wiedzy i różne rodzaje informacji, a następnie można spowodować, aby te moduły komunikowały się między sobą i przeprowadzały (w sposób czysto automatyczny!) proces wnioskowania. Zwolennicy GOFAI poczynali sobie bardzo zuchwale, przedstawiając na przykład takie opinie: “Coraz więcej dowodów świadczy o tym, że sprawne działanie intelektu zależy wyłącznie od przeszukiwania dużych składnic wiedzy, przedstawionej w postaci symbolicznej”. Jednakże, jak się wkrótce okazało, natura sztucznego intelektu absolutnie nie miała ochoty być aż tak bardzo prosta. Systemy GOFAI zupełnie nie radziły sobie z informacją dwuznaczną, ani nie mogły się posługiwać - tak bardzo przydatną w codziennych działaniach ludzkich - wiedzą zdroworozsądkową. W 1972 roku filozof Hubert Dreyfus opublikował książkę pod znamiennym tytułem „What Computers Can't Do?” (Czego nie potrafią komputery?). Jego filozoficzne analizy wykazywały coraz większą ograniczoność sztucznej inteligencji wobec rosnącego stopnia złożoności zagadnienia; w wypadku tzw. zadań otwartych, związanych z tworzeniem koncepcji, SI była w ogóle bezradna. Uznano więc, że niemożliwe jest skonstruowanie za ich pomocą sztucznego mózgu i pozostawiono im dziedzinę tak zwanych problemów dobrze ustrukturalizowanych (a więc w istocie łatwiejszych), ale za to praktycznie użytecznych. Właśnie z tej kapitulacji idei GOFAI wobec złożoności ludzkiego intelektu bierze swój początek cała seria programów, które dotyczą automatycznego rozumowania (opartego na wiedzy) w obszarach dziedzin wiedzy bardzo konkretnych, ale jednocześnie niezwykle obszernych. Przydatność tych programów potwierdziła się wszędzie tam, gdzie zachodzi potrzeba podejmowania wielu decyzji, dotyczących podobnych, ale nie identycznych problemów, takich jak rozpoznawanie chorób, finanse, planowanie produkcji, eksploatacja maszyn i urządzeń itp. Właśnie te programy tworzą obecnie rozważaną tu klasę systemów ekspertowych.
Jednym z pierwszych udanych systemów ekspertowych był - uważany dzisiaj za klasyczny - system MYCIN, który został opracowany w USA w latach siedemdziesiątych dwudziestego wieku. Nazwa tego programu pochodzi od końcówki zwyczajowo dodawanej w języku angielskim do nazw antybiotyków (np. streptomycin - streptomycyna). System MYCIN, wzbogacany i rozbudowywany w ciągu całych lat 80. i 90., dobrze służył jako “doradca” dla lekarzy w zakresie diagnostyki i antybiotykoterapii bakteryjnych chorób krwi. Określenie, że system był “doradcą” wskazuje na to, że dla każdego rozważanego pacjenta system sugerował lekarzowi, jaki jest najbardziej prawdopodobny rodzaj jego choroby i przedstawiał propozycję jej leczenia; natomiast lekarz mógł to uznać za słuszne, lub nie - podejmując własną decyzję. Było to bardzo ważne, ponieważ z decyzjami medycznymi wiąże się określony zakres odpowiedzialności, a nie można przecież pozwać do sądu komputera. W programie MYCIN zakodowana była cała wiedza obszernego konsylium lekarskiego z zakresu antybiotykoterapii zakażeń krwi. Przy pierwszym testowaniu tego systemu (w końcu lat 70-tych) wykonywano wiele sprawdzianów. Między innymi dane o chorobie krwi przekazywano do systemu MYCIN i przesyłano równolegle do konsylium lekarskiego w innym ośrodku medycznym. Oceny obu wyników dokonywała specjalna komisja uznanych ekspertów medycznych. Wynik był częściowo zdumiewający; w około 70% przypadków wyniki systemu MYCIN były trafniejsze; nie mówiąc o tym, że były osiągalne znacznie szybciej (zaleta szybkości działania komputerów). Wykaz wszystkich właściwości tego ciekawego systemu można znaleźć w pracy J. Mulawki.
Ogólne omówienie systemów ekspertowych.
Definicja systemu ekspertowego.
Na początek podamy kilka definicji systemu ekspertowego (proponowanych przez różnych autorów) dla uzyskania ogólnej orientacji o tych systemach.
Zgodnie z tradycyjnym podejściem, system ekspertowy to „program komputerowy wykorzystujący wiedzę eksperta w celu osiągnięcia wysokiego poziomu trafności wykonania pewnego zadania intelektualnego w wąskim obszarze problemowym”.
Bardzie rozbudowana definicja głosi: „System ekspertowy jest to system informatyczny wykorzystujący zapisaną wiedzę eksperta do rozwiązywania zadań, które normalnie wymagają ludzkiej inteligencji. System ekspertowy symuluje działanie eksperta w sposobie użytkowania - wymagane rozwiązanie znajdowane jest na podstawie analizy odpowiedzi użytkownika na pytania kierowane do niego przez system”.
Inny autor stwierdził, że system ekspertowy to „ inteligentny program komputerowy, wykorzystujący procedury wnioskowania do rozwiązywania tych problemów, które są na tyle trudne, że normalnie wymagają znaczącej ekspertyzy specjalistów”.
W kolejnym opracowaniu czytamy: „Jest to program komputerowy, który naśladuje zachowanie eksperta w danej dziedzinie. System tego rodzaju jest szczególnie przydatny w przypadku wnioskowania w odniesieniu do problemów zawierających aspekty słabo ustrukturalizowane”.
Definicja słownikowa określa system ekspertowy jako „system informacyjny ukierunkowany na zastępowanie eksperta rozwiązującego pewien problem. Rezultatem działania SE jest ekspertyza. Ekspertyza może być: klasyfikacją obiektów na podstawie ich cech (np. chorób na podstawie ich symptomów), nadzorowaniem procesów -
w szczególności w sytuacjach awaryjnych (np. uszkodzenie reaktora atomowego), symulację procesów, których realizacja byłaby kosztowna lub związana
z nieodwracalnymi zmianami (np. loty kosmiczne)”.
Jak widać jedne definicje są ogólniejsze, inne bardziej szczegółowe. Ze wszystkich jednak wynika ważność udziału prawdziwego (ludzkiego) eksperta przy tworzeniu systemu ekspertowego oraz gromadzenie jego wiedzy w strukturze systemu (w tak zwanej bazie wiedzy). Nie chodzi więc o to, aby komputer okazał się mądrzejszy od człowieka, ale żeby go zastąpił w sytuacji, gdy ekspert nie może być obecny lub koszty porady eksperta są zbyt wysokie. Dzięki użyciu sytemu ekspertowego laik mógł uzyskać fachową poradę taniej. Szybciej i wygodniej, niż poszukując żywego eksperta. System ekspertowy jest bowiem programem, który na podstawie wprowadzonej wiedzy potrafi wyciągać wnioski równoznaczne z wnioskami ludzkiego eksperta.
Ogólnie mówiąc celem tworzenia systemu ekspertowego jest skomputeryzowanie procesu rozwiązywania problemów na poziomie wysokiej klasy eksperta. Dzięki temu wiedza eksperta stanie się łatwo dostępna. Poprzez konsultacje z systemem ekspertowym osoba, która ma małe umiejętności w rozwiązywaniu pewnych zadań, może w praktyce rozwiązywać różne problemy i tym samym odciążać eksperta, który musiałby ten problem sam rozwiązać. Jest to w sumie korzystne, bo (jak wiadomo) ekspertów jest mało, a zapotrzebowanie na ich wiedzę jest bardzo duże i stale rośnie. Poza tym sam ekspert może wykorzystywać system ekspertowy do poszerzania swojej wiedzy i rozumowania dzięki tzw. sprzężeniu zwrotnemu, o czym będzie jeszcze dalej mowa.
Systemy ekspertowe mogą zmniejszyć różnicę w jakości podejmowanych decyzji między ekspertami a osobami rzeczywiście rozwiązującymi problemy czy decydentami w organizacji. Jeżeli, dla przykładu, bank zatrudnia kilku wysokiej klasy ekspertów od kredytów, którzy pracują w centrali banku lub w kilku dużych oddziałach, oraz wielu pracowników, którzy obsługują klientów we wszystkich placówkach banku, to wiedza odnośnie polityki udzielania kredytu, pobrana od tych kilku posiadanych ekspertów, może być poprzez SE skierowana do każdego pracownika banku, który jej aktualnie potrzebuje. Fakt ten powoduje decentralizację podejmowania decyzji bez wzrostu ryzyka, a przy znacznych korzyściach. Sam ekspert może też zresztą wiele skorzystać po zapoznaniu się z analizą przypadków dokonanych przez system ekspertowy, ponieważ z reguły baza wiedzy programu komputerowego powstaje jako wypadkowa opinii wielu specjalistów. Ekspert może więc tą metodą skonfrontować swoją wiedzę z wiedzą swoich „konkurentów”, samemu nie wystawiając się bezpośrednio na ich oceny i ewentualną krytykę. Jest to psychologicznie sytuacja bardzo wygodna i w sumie korzystna.
Podstawowe cechy, funkcje, właściwości oraz zalety systemów ekspertowych.
Podobnie jak wszystkie inne systemy informatyczne, tak i systemy ekspertowe mają swoje szczególne cechy charakterystyczne. Do ich podstawowych cech należą:
konieczność udziału eksperta w procesie tworzenia systemu dla przekazywania własnej wiedzy oraz metod rozwiązywania (heurystyk) zdobytych na podstawie doświadczenia,
gotowość do pracy na poziomie eksperta, w sposób naśladujący jego proces myślowy oraz (co z tym związane) oferowanie użytkownikom rad i wariantowych rozwiązań,
zdolność do rozwiązywania zadań szybciej i sprawniej niż potrafi to uczynić człowiek nie specjalizujący się w danej dziedzinie,
zdolność systemu do rozwiązywania zadań z wykorzystaniem zarówno wiedzy ogólnej (teoretycznej) jak i specyficznej, zgromadzonej w drodze doświadczeń w danym zakresie, tj. wiedzy empirycznej (heurystycznej),
zdolność do rozwiązywania zadań słabo ustrukturyzowanych, zawierających w swej definicji określenia rozmyte,
zdolność do podejmowania prób poszukiwania rozwiązania zadania w warunkach niepełnej i niepewnej informacji wejściowej, obciążonej błędami i wzajemnymi sprzecznościami,
przystosowanie systemu do ciągłego doskonalenia procedur rozwiązywanych zadań
i ciągłego uczenia się (również na własnych błędach) w celu wzbogacenia swoich zasobów wiedzy,
przystosowanie do wyjaśniania użytkownikowi podstaw proponowanych przez siebie rozwiązań, a przez to douczania klienta w zakresie związanym z rozwiązywanym zadaniem,
możliwość współpracy użytkownika z SE w języku zbliżonym do języka naturalnego, opartego na słownictwie i terminologii z danej dziedziny problemowej,
przystosowanie do rozwiązywania zadań wymagających intensywnego wnioskowania na podstawie wiedzy asocjacyjnej, zamiast zadań, które można rozwiązać opierając się na działaniach warunkowych, wymagających jedynie złożonych obliczeń arytmetycznych.
Z kolei co się tyczy podstawowych funkcji realizowanych przez systemy ekspertowe to wyróżnia się:
pozyskiwanie informacji wejściowych od użytkownika systemu, które opisują pewne zadanie ,
interpretację otrzymanych informacji, ich sprawdzenie,
wnioskowanie, które ma doprowadzić do rozwiązania zadania,
prezentację wyników dla użytkownika, a w razie potrzeby także ich objaśnienie, co ma na celu wspomaganie aktywnego udziału użytkownika w rozwiązywaniu problemu,
ewidencję faktów wynikających z rozwiązania (uzupełnianie bazy wiedzy),
ewidencję przebiegu rozwiązywania zadania, wykonywaną dla inżyniera systemu w celu jego doskonalenia i rozbudowy. Ewidencja taka może obejmować wykaz błędów popełnionych przez użytkownika przy współpracy z systemem oraz pytania zadane przez użytkownika, które nie zostały mu wyjaśnione przez system; ma to na celu ewentualną poprawę systemu dla potrzeb użytkownika.
Biorąc pod uwagę właściwości systemów ekspertowych rozpatrywanych z punktu widzenia użytkownika, należy głównie zwrócić uwagę na:
poprawność systemu - system ekspertowy powinien zapewnić wysoki poziom wydawanych ekspertyz. Jeżeli daje dobre rezultaty, rozwiązuje zadania w czasie dopuszczalnym, dysponuje strategiami umożliwiającymi imitowanie wiedzy i intuicji eksperta, którą on nabył jako wynik długoletnich doświadczeń - to system jest poprawny. Należy również wziąć pod uwagę jakość i szybkość odpowiedzi systemu ekspertowego. Bardziej opłacalne jest tutaj stawianie na szybkość, bowiem (według opublikowanych badań) nawet znaczne wydłużanie czasu odpowiedzi systemu z reguły nie wpływa na podwyższenie jej jakości. Problemem jest stworzenie odpowiednich reguł wnioskowania w przypadku, gdy człowiek-ekspert, opierający się często na intuicji, nie potrafi poprawnie uzasadnić swoich rozstrzygnięć (a one są poprawne). Wówczas to SE może być znacząco gorszy od człowieka eksperta - i nie ma na to rady.
uniwersalność - system ekspertowy ma zdolność do szybkiego rozwiązywania wielu zadań z danej dziedziny. W tym też celu nie powinien zawierać zbyt wielu sztywnych reguł i wcześniej przygotowanych rozwiązań. Zamiast tego powinien mieć wiele reguł obejmujących dostatecznie szeroki zakres heurystyk z danej dziedziny problemowej. Heurystyka jest tutaj rozumiana jako reguła znajdowania rozwiązań dla całkiem nowych problemów. Według J. Mulawki reguły takie powinny nie tylko umożliwić przeszukiwanie przestrzeni rozwiązań dla każdego dobrze postawionego zadania, lecz zapewniać także coś w rodzaju ekstrapolacji w przypadku zadań będących na granicy wiedzy znanej systemowi. Dostateczna liczba uniwersalnych reguł powinna zapewnić płynne (nie skokowe) pogarszanie się jakości pracy systemu w sytuacji, w której posiadane reguły wnioskowania okazują się niewystarczające. Jest to tzw. uniwersalność rozważana wewnątrz dziedziny wiedzy systemu.
Jest jeszcze inna uniwersalność, która dotyczy możliwości rozwiązywania zadań z wielu różnych dziedzin wiedzy na podstawie “strukturalnego podobieństwa reguł wnioskowania”. Na razie jest ona jeszcze nie osiągalna. Jednak dalsze badania nad sztuczną inteligencją mogą doprowadzić do tworzenia takich systemów, które już teraz są określane jako metasystemy.
złożoność - stopień komplikacji systemu ekspertowego wyznaczony jest poprzez dziedzinę, dla której jest on wykonany. Oczywiście nie opłaca się budować systemu ekspertowego, który rozwiązywałby problemy mało skomplikowane, gdzie poprawne rozwiązania można znaleźć bezpośrednio poprzez krótką ścieżkę przeszukiwań, czy problemy dla których istnieją ścisłe algorytmy ich rozwiązywania. Wyjątkiem jest tutaj system ekspertowy, który ma służyć jako pomoc dla osoby słabo zaznajomionej z daną dziedziną, czego przykładem może być sterowanie procesem technologicznym przez system ekspertowy.
Przykładem oceny złożoności systemu jest jego ocena poprzez liczbę reguł wnioskowania, wielkość bazy danych itp. I tak biorąc pod uwagę liczbę reguł wyróżnia się systemy ekspertowe:
małe, które mają 100-300 reguł,
średnie - posiadające 300-2 000 reguł,
duże - z ponad 2 000 reguł.
Obecnie nie stosuje się więcej niż 10 000 reguł, ponieważ występują wówczas trudności w przeszukiwaniu tak dużych baz wiedzy.
autoanalizę - dobry system ekspertowy powinien przedstawiać użytkownikowi uzasadnienia rozwiązania, zarówno końcowego jak i częściowego. Dla realizacji tego zadania następuje przeglądanie drzewa rozwiązań w kierunku wstecznym.
W SE pojawia się problem niesprzeczności wyników uzyskiwanych w danym etapie wnioskowania z faktami zawartymi w bazie wiedzy. Wynikiem wykrycie sprzeczności jest zmiana drogi poszukiwania w drzewie rozwiązania. Występuje zatem w strukturze systemu tzw. moduł niesprzeczności, który ma także zastosowanie w analizowaniu przez system jego własnego zachowania. Potrzebna jest przy tym możliwość rekonstrukcji pewnego ciągu wnioskowania.
Taki ścisły pomiar ilościowy zdolności systemu do autoanalizy nie jest łatwy. Należy też pamiętać, że nie zawsze autoanaliza jest możliwa czy potrzebna. Przykładem takiej sytuacji są systemy ekspertowe czasu rzeczywistego, które muszą szybko reagować na zmienne warunki otoczenia i prowadzenie przez nie dialogu z użytkownikiem jest niemożliwe. Czasami także wynik dostarczany przez system jest dla człowieka zrozumiały i nie potrzebuje on dodatkowych wyjaśnień. Waga wyjaśnień rośnie przede wszystkim wtedy, gdy koszt przyjęcia błędnego rozwiązania jest wysoki.
Główne zalety używania systemów ekspertowych można ująć następująco:
konsekwencja w działaniu, która polega na wyprowadzaniu analogicznych wniosków w podobnych sytuacjach, chociaż trzeba tu dodać, że wnioski SE oparte są zwykle na rozumowaniu heurystycznym, co nie zapewnia identyczności wyników nawet w tych samych okolicznościach,
poprawność i zasadność w wyprowadzaniu wniosków nawet w warunkach niepewności dzięki przyjmowaniu przez system rozwiązań najbardziej prawdopodobnych,
użyteczność, która wyraża się poprzez potwierdzoną w praktyce możliwość wykorzystywanie systemów ekspertowych do rozwiązania rzeczywistych problemów użytkowników,
jakość odpowiedzi systemu na postawiony problem na poziomie co najmniej średniego eksperta; w przypadku systemów ekspertowych czasu rzeczywistego jakość reakcji systemu jest z reguły lepsza od reakcji człowieka-eksperta ze względu na występujący czynnik szybkości obliczeń komputerowych oraz brak ograniczeń wywoływanych stresem.
Inżynieria wiedzy jako podbudowa systemów ekspertowych.
Problematyka inżynierii wiedzy i związanych z nią systemów ekspertowych jest coraz powszechniej uważana za jeden z najważniejszych obszarów i kierunków rozwoju nowoczesnej informatyki. Chcąc przedstawić umiejscowienie systemów ekspertowych
w szerokim obszarze informatyki, należy najpierw wyjaśnić co jest rozumiane pod pojęciem inżynierii wiedzy.
Inżynieria wiedzy obejmuje zagadnienia metodologiczne i techniczne dotyczące zastosowań środków technicznych (komputerów i środków pomocniczych) do akwizycji, gromadzenia, przetwarzania i generowania wiedzy. Ostateczne generowanie wiedzy oraz poprzedzające je czynności (akwizycja, przetwarzanie), jak łatwo się domyślić, mają służyć dla docelowego rozwiązania określonego problemu. I jeżeli odbywa się to na podstawie opisu (reprezentacji) wiedzy dotyczącej rozwiązywanego problemu oraz z zastosowaniem reguł i mechanizmów automatycznego rozumowania - to mamy właśnie do czynienia z systemami ekspertowymi.
Inżynieria wiedzy jest najbardziej zaawansowaną metodą wykorzystywania komputera jako środka automatyzacji pracy umysłowej. Uformowanie się (w latach 90. dwudziestego stulecia) formalnej inżynierii wiedzy było wynikiem ewoluowania informatyki od inżynierii obliczeń, poprzez inżynierię rozwiązywania problemów i inżynierię informacji.
W pierwszej bowiem, tj. inżynierii obliczeń, komputer jest traktowany jako środek do obliczeń (ang. computer as a computer), a technika obliczeniowa wykorzystuje do rozwiązywania problemów wyłącznie metody numeryczne i metody algorytmizacji obliczeń. Jeśli chodzi o inżynierię rozwiązywania problemów to komputer występuje tutaj jako środek do rozwiązywania problemów (ang. computer as a problem solver), a ściślej mówiąc, komputer wykonuje wtedy programy, które są opracowane w oparciu o tak zwane metody rozwiązywania problemów. Są to różne metody i algorytmy optymalizacji, identyfikacji, rozpoznawania, sterowania, podejmowania decyzji, itp. Natomiast w trzeciej fazie rozwoju informatyki mamy inżynierię informacji, w ramach której komputer traktowany jako środek do gromadzenia i przetwarzania informacji (ang. computer as an information collector and processor). Na tym etapie wykorzystywane są metody i algorytmy przetwarzania informacji oraz metody jej gromadzenia. Ważną rolę odgrywają przy tym algorytmy zarządzania zbiorami informacji. Ostatnim etapem rozwoju na tym obszarze jest, jak już wspomniano, inżynieria wiedzy, która traktuje komputer jako eksperta (ang. computer as an expert), czyli jako środek do rozwiązywania problemów na podstawie zgromadzonej w nim reprezentacji wiedzy ludzkiej z zastosowaniem metod automatycznego rozumowania.
Należy stwierdzić, że systemy ekspertowe zaczęły pojawiać znacznie wcześniej, niż powstały przesłanki do budowy inżynierii wiedzy, ale doskonaliły się na gruncie tej (wyżej scharakteryzowanej) ewolucji, przy czym mogły w pełni się rozwinąć właśnie dzięki inżynierii wiedzy. SE są praktycznie jedynym wytworem inżynierii wiedzy, który przynosi coraz większe korzyści, przez co następuje rosnąca koncentracja badaczy i praktyków na tym temacie oraz obserwuje się znaczny wzrost nakładów na prace prowadzone w tej dziedzinie.
Systemy ekspertowe jako dyscyplina sztucznej inteligencji.
Systemy ekspertowe niewątpliwie należą do sztucznej inteligencji. Zacznijmy więc od wyjaśnienia krótko tego, jak pojmowana jest inteligencja u człowieka. Termin ten oznacza swoisty zespół zdolności, umożliwiających człowiekowi korzystanie z nabytej wiedzy (doświadczenia) oraz skuteczne zachowanie się wobec nowych zadań i nowych warunków. Inteligencja przejawia się właśnie poprzez określone reagowanie na problemy pojawiające się w nowej sytuacji.
Najistotniejszym aspektem zdolności umysłowych człowieka, będącym fundamentem dla jego inteligencji, jest zdolność do analizy i uogólniania. Inne ważne aspekty zdolności umysłowych człowieka są następujące: umiejętność uczenia się, zdolność rozpoznawania danego obiektu w dowolnym kontekście, złożone emocjonalne i pozornie irracjonalne stany człowieka, przyczyniające się jednak do tworzenia nowych rozwiązań, myślenie koncepcyjne i abstrakcyjne, subiektywne przeżycia.
Niemal od początku istnienia informatyki zaczęto dążyć do tego, aby stworzyć na bazie komputerów takie sztuczne systemy, które charakteryzowałyby się choć po części cechami intelektu naturalnego. Ponieważ w zamierzeniach twórców systemy takie miałyby przez to cechy inteligencji, zaczęto (jeszcze w latach 60.) lansować hasło sztucznej inteligencji (ang. Artificial Intelligence - AI). Zadanie oczywiście było bardzo trudne. Bowiem komputerowi z definicji niejako nie jest dostępne twórcze myślenie, nie potrafi on też sam z siebie niczego nowego odkryć czy wynaleźć. Poza tym nie ma świadomości, przeżyć intuicyjnych, nie przeżywa stanów emocjonalnych. Jest tylko narzędziem, które nie myśli treściowo. Ale gdy z komputerem komunikuje się człowiek (w określonym języku), to obie strony czynią swoje myślenie wzajemnie dostępnym. Przez to komputer wydaje się rozumieć to co robi, gdy mądrze wykonuje podawane mu polecenia.
Uważa się, że pierwszą “udokumentowaną” osobą, wskazującą na możliwości wyposażania komputerów w “inteligentne” programy (co wcześniej określano mianem “inteligencja maszynowa”), był naukowiec angielski Alan Turing, który w roku 1950 opublikował pracę pt. “Computing Machinery and Intelligence”. W pracy tej wskazał bezpośrednio na możliwości takiego oprogramowania komputera, że będzie on wykazywał cechy zachowania się zbliżone do zachowania się człowieka inteligentnego. Z tej pracy pochodzi też słynny “Test Turinga”, opisany dokładniej w rozdziale 1, spełnienie którego wskazywałoby na inteligentne zachowanie się komputera wyposażonego w odpowiedni program.
Ogólnie rzecz ujmując 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ę.
Nie ma jednolitej definicji sztucznej inteligencji. Można przytoczyć wiele, ale ograniczę się do czterech. Definicja według Minsky'ego stwierdza, że „sztuczna inteligencja jest nauką o maszynach realizujących zadania, które wymagają inteligencji wówczas, gdy są wykonywane przez człowieka”. Z kolei Feigenbaum określa sztuczną inteligencję jako „dziedzinę informatyki dotyczącą metod i technik wnioskowania symbolicznego przez komputer oraz symbolicznej reprezentacji wiedzy stosowanej podczas takiego wnioskowania”. Natomiast Bubnicki określa ją prosto jako dziedzinę „zajmującą się zagadnieniami algorytmizacji i komputeryzacji procesów rozumowania”. Według Owoca sztuczna inteligencja jest to „automatyzacja niektórych intelektualnych działań człowieka, w zakresie wnioskowania, kojarzenia faktów i wyboru informacji, przy użyciu komputera”.
W sztucznej inteligencji metody algorytmiczne, charakterystyczne dla przetwarzania proceduralnego, zostają zastąpione przeszukiwaniem inteligentnym (ang. intelligent search). Przetwarzanie numeryczne, typowe dla większości zastosowań komputerów, staje się więc przetwarzaniem symbolicznym. Również następuje przejście od przetwarzania danych do przetwarzania wiedzy. Systemy takie (w tym i systemy ekspertowe) określa się jako systemy oparte na wiedzy (ang. knowledge-based systems).
Należy stwierdzić, że na dziedzinę sztucznej inteligencji składa się wiele wątków, wśród których można wyróżnić m.in.: teorię gier, przetwarzanie języka naturalnego, robotykę, procesy percepcji, uczenie się maszyn itp. Jednym z podobszarów tej dziedziny są właśnie omawiane tu systemy ekspertowe, których twórcy starają się odtworzyć proces myślenia, jaki zachodzi u organizmów żywych, w świecie maszyn. Bardziej formalnie można powiedzieć, że systemy ekspertowe należą do metod symbolicznych sztucznej inteligencji. Podstawowym przesłanką przy tworzeniu systemów ekspertowych jest przekonanie, że wiedzę wysoko wykwalifikowanego eksperta można zapisać na komputerze w takiej postaci, że odpowiedni program komputerowy będzie mógł przeprowadzać na niej wnioskowanie i generować wyniki zgodne z tymi wynikami, jakie podałby ekspert. Wiele pojęć odnoszących się do teoretycznych podstaw sztucznej inteligencji, m.in. wspomniane wyżej przeszukiwanie inteligentne przestrzeni rozwiązań symbolicznych, pojawia się też przy systemach ekspertowych. Jednak nie każdy system manipulujący informacją symboliczną będzie nas tu interesował, gdyż na przykład systemy dokonujące symbolicznych manipulacji matematycznych (przekształcające wzory, dokonujące całkowania symbolicznego, automatycznie dowodzące twierdzenia matematyczne, ewaluujące złożone formuły logiczne itp.) nie wchodzą w zakres naszych zainteresowań. Dlatego dalej będziemy raczej korzystali z definicji systemów opartych na wiedzy, która mówi, że knowledge-based system to komputerowy system, który próbuje naśladować specyfikę toku rozumowania człowieka (tu eksperta) wykorzystując dostępne bazy, zawierające szczegółowe dane, informacje oraz ich powiązania, przykładowe ekspertyzy itp. - czyli szeroko pojętą wiedzę z danej dziedziny. Jak łatwo zauważyć, definicja taka w gruncie rzeczy pokrywa się z definicją systemów ekspertowych. Nawet uważa się niekiedy, że nazwa system ekspertowy jest skrótem od angielskiej nazwy Ekspert Knowledge-based System (EKBS) czyli ekspercki system oparty na wiedzy.
Podział systemów ekspertowych.
Trzy najczęściej wyodrębniane ogólne kategorie systemów ekspertowych to:
systemy doradcze - prezentują rozwiązania dla użytkownika, który jest w stanie ocenić ich jakość i może zażądać innego rozwiązania, gdy odrzuci rozwiązanie wcześniej oferowane przez system,
systemy podejmujące decyzje bez kontroli człowieka - stosowane przede wszystkim tam, gdzie udział człowieka jest utrudniony czy nawet niemożliwy, najczęściej do sterowania różnymi obiektami a także do podejmowania szybkich decyzji na rynkach finansowych,
systemy krytykujące - systemy takie dokonują analizy i komentują zaproponowane im rozwiązanie, po uprzednim przedstawieniu im problemu wraz z rozwiązaniem.
Z kolei trzy podstawowe cele pracy systemów ekspertowych (oraz związana z nimi tryby ich pracy) to:
diagnoza - jest to ocena stanu istniejącego na podstawie danych; tutaj zalicza się m.in. wspomniany wyżej system ekspertowy MYCIN,
prognoza - jest to przewidywanie stanu przyszłego na podstawie istniejących danych,
plan - jest to opis sposobu osiągnięcia pewnego założonego stanu rzeczy. Użytkownik podaje cel, do którego trzeba dążyć, a system podaje propozycję sposobu osiągnięcia zamierzonego celu np. poprzez zaplanowanie działań robota przemysłowego w zmieniającym się otoczeniu, czy dążenia do utrzymania maksymalnie długo zdolności eksploatacyjnych maszyn.
System ekspertowy pracuje najczęściej w jednym z wyżej wymienionych trybów, ale czasami pracuje w dwóch lub nawet w trzech trybach naraz. Dla przykładu dzięki połączeniu diagnozy i planowania uzyskuje się systemy sterujące, np. system sterowania statkiem kosmicznym, czy systemy uczące się podejmowania optymalnych decyzji handlowych.
Rodzaje systemów ekspertowych ze względu na realizowane zadania przedstawione są w tabeli 4.1. Jak widać systemy te mogą realizować różnorakie zadania, poczynając od interpretacji stanu jakiegoś obiektu lub procesu, poprzez jego diagnozę, a kończąc na sterowaniu.
Tabela. 4.1. Rodzaje systemów ekspertowych.
Kategoria |
Zadania realizowane przez systemy ekspertowe |
Interpretacyjne |
Dedykują opisy sytuacji z obserwacji lub stanu czujników, np. rozpoznawanie mowy, obrazów, struktur danych |
Predykcyjne |
Wnioskują o przyszłości na podstawie danej sytuacji, np. prognoza pogody, rozwój choroby |
Diagnostyczne |
Określają wady systemu na podstawie obserwacji, np. medycyna, elektronika, mechanika |
Kompletowania |
konfigurują obiekty w warunkach ograniczeń, np. konfigurowanie systemu komputerowego |
Planowania |
planują działania, które trzeba wykonać, aby osiągnąć zamierzony cel, np. ruchy robota |
Monitorowania |
porównują obserwacje z ograniczeniami, np. w elektrowniach atomowych, medycynie, w ruchu ulicznym |
Sterowania |
kierują zachowaniem systemu; obejmują interpretowanie, predykcję, naprawę i monitorowanie zachowania się obiektu |
Poprawiania |
Podają sposób postępowania w przypadku złego funkcjonowania obiektu, którego te systemy dotyczą |
Naprawy |
Harmonogramują czynności przy dokonywaniu napraw uszkodzonych obiektów |
Instruowania |
Systemy doskonalenia zawodowego dla studentów lub kursantów |
Inny podział systemów ekspertowych, dokonany ze względu na realizowane przez nie funkcje, wyróżnia następujące systemy:
diagnostyczne - wspomagają użytkownika przy analizie badanego obiektu (zdarzenia, zjawiska, procesu), podają przyczyny i uwarunkowania zaistnienia zdarzenia (np. podają plany konserwacji urządzeń, plany usprawnień komunikacyjnych),
prognostyczne - dokonują analizy dostarczonego opisu badanego obiektu i opracowują przewidywania w sprawie jego przyszłego zachowania (np. przygotowują plany produkcji) czy w innych sprawach określonych przez zlecone zadanie,
klasyfikacyjne - wspomagają procesy rozwiązywania zadań w zakresie klasyfikacji zbioru obiektów wg określonych kryteriów, a w szczególności rozpoznawania obiektów na podstawie otrzymanego ich opisu (obrazu),
regulacyjne - wykorzystywane przy rozwiązywaniu problemów wymagających posiadania określonej wiedzy i doświadczeń w interpretacji informacji normatywnych, np. prawniczych,
konsultacyjne - mają za zadanie przedstawić użytkownikowi swoją opinię z określonego zakresu wiedzy wraz z wyjaśnieniem sensu rozpatrywanego pojęcia, obiektu, zdarzenia, czy procesu,
mieszane - charakteryzują się ograniczonym zakresem dziedzinowym; trudniej jest zgromadzić wiedzę i ją odpowiednio odwzorować.
Jeżeli weźmie się pod uwagę zależności pomiędzy typem zadania, a jego rozmiarem i złożonością to systemy ekspertowe można podzielić na pięć rodzajów, co jest pokazane w na rysunku 3 (podział odnosi się przede wszystkim do SE eksploatowanych w zarządzaniu). Są to systemy proceduralne, które rozwiązują łatwe zadania i o małej złożoności, czyli wspomagają podejmowanie decyzji dobrze zdefiniowanych. Należą one z tego powodu do najprostszych SE, gdzie wiedza zapisana w postaci reguł da się przedstawić jako drzewo decyzyjna, a najczęściej stosowane wnioskowanie jest prowadzone metodą wnioskowania wstecz. Systemy diagnostyczne przedstawiają przyczyny zaistniałego zjawiska (nieprawidłowych wartości parametrów charakteryzujących firmę czy spadku jakości produkcji) stosując również wnioskowanie do tyłu. Tutaj jednak z reguły pojawia się problem wiedzy niepewnej, a reguł nie tworzących bazę wiedzy systemu, nie da się łatwo przedstawić w postaci drzewa decyzji. Idąc dalej, zwiększając typ i rozmiar zadania, są systemy monitorujące. Podobnie jak poprzednie, generują one ostrzeżenia dotyczące stanu firmy, ale również proponują akcje przywracające stan pożądany. Dokonują tego stosując zazwyczaj wnioskowanie do przodu, a wiedza zapisana jest w nich z reguły w sposób mieszany (nie tylko w postaci reguł jak w poprzednich SE). Następnie mają miejsce systemy konfigurująco-projektujące, które tym się zwłaszcza wyróżniają, że rozwiązują problemy i unikają wzajemnych sprzeczności, powstałych przy formułowaniu zadań przez użytkownika. Reprezentacja wiedzy, jak również sposób wnioskowania, są w nich także mieszane. Do rozwiązywania zadań trudnych, o szczególnie dużym rozmiarze i złożoności, używane są systemy planująco-harmonogramujące. W porównaniu z poprzednimi uwzględniają one dodatkowo aspekt czasu.
W nawiązaniu do tego podziału poniżej przedstawione są przykładowe zastosowania wyróżnionych systemów ekspertowych. Mogą to być SE:
wspomagający dostęp do dziedzinowych baz wiedzy QUINST (zadanie: podaj dostawców określonych towarów);
diagnozujący problemy dotyczące połączeń telefonicznych Automated Cable Expertise (zadanie: wskaż miejsce oraz rodzaj uszkodzenia sieci);
monitorujący proces projektowania EXPERTISE (zadanie: podaj zaangażowanie pracowników w realizację projektu);
opracowujący konfigurację systemu komputerowego wraz z generowaniem planu produkcji XCON - zadanie: przygotuj konfigurację dla podanego użytkownika;
harmonogramujący plan produkcji ISIS (zadanie: opracuj harmonogram planu produkcji wyrobu X).
Rys. 11. Systemy ekspertowe scharakteryzowane ze względu na zależność pomiędzy typem zadania a jego rozmiarem i złożonością.
Natomiast biorąc pod uwagę kryterium, jakim jest sposób realizacji systemów ekspertowych, dzielimy je następująco:
systemy dedykowane - są to systemy, które inżynier wiedzy tworzy od podstaw. Są one tworzone za pomocą specjalnych języków systemów ekspertowych (Clips, Flops, OPS5, ROSIE, HEARSAY III, RLL), języków programowania symbolicznego (Lisp, Prolog) lub przy udziale ogólnych języków programowania (Pascal, C, C++, Basic, Fortran);
systemy szkieletowe - są to systemy z pustą (początkowo) bazą wiedzy w postaci tzw. pustych skorup (ang. shells). Systemy takie, zwane też muszelkowymi, powstały i są chętnie stosowane, ponieważ tworzenie całego systemu ekspertowego od podstaw w jakimkolwiek języku programowania jest bardzo czasochłonne, a więc i drogie. W przypadku użycia systemu szkieletowego (stanowiącego rodzaj zaawansowanego narzędzia do tworzenia systemu ekspertowego) proces tworzenia końcowego SE jest dużo krótszy i łatwiejszy. Bowiem taki “shell” zawiera już w sobie wybrane elementy finalnego sytemu ekspertowego: maszynę wnioskującą, interfejs użytkownika, blok pozyskiwania wiedzy (ułatwiający wprowadzenie wiedzy do bazy wiedzy), blok wyjaśniania itp. „Shell” zapewnia także zwykle odpowiedni mechanizm dla formalnej reprezentacji wiedzy, np. pozwala łatwo generować reguły, ramy oraz narzędzia do strukturalizacji bazy wiedzy i do sprawdzania jej poprawności. Jeśli nastąpi zapełnienie pustej początkowo bazy wiedzy wiedzą szczegółową (zebraną przez użytkownika), dotyczącą pewnej wąskiej dziedziny, to czynność ta zamienia uniwersalne ale do żadnych zadań bezpośrednio nieprzydatne narzędzie, jakim jest system szkieletowy, w konkretny, dedykowany do danego zastosowania, gotowy do użycia system ekspertowy. Oczywiście wiedza w „muszelce” musi być wypełniona według pewnych z góry zadanych reguł. Jednak reguły te dotyczą wyłącznie formy, a nie treści wiedzy. W zależności od tego, jaka wiedza zostanie do takiego systemu szkieletowego włożona, takiego otrzymamy „sztucznego eksperta”. Przykładowo jeśli to będzie wiedza techniczna to otrzymamy eksperta-inżyniera, jeżeli medyczna to eksperta-lekarza, jeśli finansowa to eksperta-finansistę itp. Trzeba jednak mieć na uwadze, że systemy szkieletowe są tworzone zawsze dla specyficznych zastosowań, jakich np. diagnozowanie czy planowanie, ale wbrew pozorom nie do wszystkiego.
Tego typu szkieletowe systemy ekspertowe są obecnie bardzo popularne i są prawie powszechnie dostępne, a zatem dają one możliwość stworzenia dowolnego systemu uwzględniającego wszelkie wymogi specyfiki danej dziedziny w firmie lub organizacji. Można tu przykładowo wymienić następujące programy: Turbo Shell, Instant Expert, Xsys, ExpertR, Crystal, VP-Expert. Należy też zaznaczyć, że pierwsze systemy szkieletowe powstały z systemów dedykowanych przez opróżnienie ich bazy wiedzy. Tak też w Stanford University powstał EMYCIN (od ang. Empty MYCIN czyli pusty MYCIN)
z przedstawionego wcześniej systemu MYCIN, po usunięciu z niego bazy wiedzy medycznej. Natomiast w Polsce znanym szkieletowym systemem ekspertowym jest PC-Shell, którego kolejne wersje powstawały w firmie AITECH w Katowicach.
Rozważając rodzaj przetwarzanej informacji można systemy ekspertowe podzielić na następujące klasy:
systemy z wiedzą pewną (zdeterminowaną),
systemy z wiedzą niepewną (gdzie korzysta się z probabilistyki), biorąc pod uwagę kryterium wiarygodności wiedzy;
Można też - biorące pod uwagę kryterium kompletności - systemy podzielić na:
systemy z wiedzą pełną,
systemy z wiedzą niepełną.
Z kolei ze względu na metodę prowadzenia procesu wnioskowania systemy ekspertowe dzieli się na:
z logiką dwuwartościową (Boole'a),
z logiką wielowartościową,
z logiką rozmytą.
Wśród technik opartych na symbolicznym przetwarzaniu informacji dokonuje się podziału SE ze względu na rodzaj reprezentacji wiedzy. Wśród metod reprezentacji wiedzy można wyróżnić: reguły, ramy, sieci semantyczne, predykaty itp. (zagadnienie to rozwinięte będzie w podrozdziale drugim). Zaś jeśli chodzi o liczbę stosowanych reguł to wśród systemów ekspertowych wyróżnia się następujące grupy:
systemy asystenckie, które posiadają stosunkowo małą wiedzę i wykonują tylko część zadań eksperta; możliwa jest ich implementacja na komputerach osobistych PC,
systemy koleżeńskie, które charakteryzują się wiedzą o średnim rozmiarze i wykonują znaczną część zadań eksperta; odnośnie wymagań sprzętowych to implementowane są one zarówno na PC, stacjach roboczych oraz dużych komputerach,
systemy typu ekspert, które wyróżniają się bardzo dużą wiedzą i odpowiadają możliwościom eksperta w danej dziedzinie; do ich realizacji wymagany jest sprzęt
o dobrych parametrach i odpowiednie narzędzia programowe.
Ostatnio pojawia się też pojęcie systemów ekspertowych czasu rzeczywistego, które mogą zapewnić bardziej efektywne strategie monitorowania i sterowania. Dzięki ich pomocy znacznie zmniejszy się zapewne liczba operatorów obsługujących różne urządzenia, a także liczba operatorów wysoko wykwalifikowanych nadzorujących procesy. Dzięki temu firmy stosujące odpowiednie oprogramowanie zmniejszą wydatki związane z zatrudnianiem odpowiednich operatorów oraz koszty związane z ich trenowaniem. Następnie polepszyć się powinna jakość sterowanego procesu (mniejsza awaryjność). Zastosowania tych systemów mogą obejmować takie dziedziny jak: operacje przestrzeni kosmicznej, monitorowanie i sterowanie elektrowni jądrowych, kontrola ruchu lotniczego, interpretacja sygnałów radarowych, monitorowanie procesów produkcyjnych, finanse, giełda, itp.
Systemy czasu rzeczywistego dzieli się na dwie kategorie, z których pierwsza to tzw. „hard real-time”, gdzie poprawne rozwiązanie zależy od wyników obliczeń oraz od czasu obliczeń (odpowiedź poza przedziałem czasu jest bezużyteczna). Druga kategoria to tzw. „soft real-time”, gdzie również są wymagania czasowe, ale część zadania można ukończyć poza określonym przedziałem czasu. Systemy czasu rzeczywistego mają swoją specyfikę i dlatego większość narzędzi używanych do tworzenia tradycyjnych i szkieletowych systemów ekspertowych nie spełniają wymagań stawianych tym systemom.
Dla dopełnienia podziałów wzmiankowanych tutaj SE trzeba zaznaczyć, że mówiąc o systemach ekspertowych ma się na myśli zazwyczaj te klasyczne, a więc przedstawiające informacje w postaci symbolicznej. Istnieją jednak systemy ekspertowe, które oparte są na niesymbolicznych metodach przetwarzania informacji. Zasługującą na wspomnienie grupą takich systemów ekspertowych są systemy pracujące w oparciu o omawiane w tym skrypcie w innym rozdziale sieci neuronowe. O realizacji systemów ekspertowych z sieciami neuronowymi (systemów hybrydowych) będzie mowa w podrozdziale trzecim.
Rozwój systemów ekspertowych.
Wiedza na sprzedaż
Jak już powiedziano, pierwszy udany system ekspertowy powstał na użytek medycyny. Również dziedzina chemii znalazła szybko miejsce w systemach ekspertowych. W obu przypadkach chodziło o klasyfikowanie pewnych obiektów - w przypadku medycyny było to diagnozowanie chorób, a w przypadku chemii badanie substancji chemicznych. Przypadkami dobrze poddającymi się analizie ze strony systemów ekspertowych były choroby zakaźne obejmujące szeroką populację i liczne przypadki zachorowań. Systemami, które tego dokonały na początku badań, są MYCIN (diagnozowanie i terapia chorób zakaźnych), PIP (diagnozowanie chorób nerek) czy HEADMED (diagnozowanie psychofarmakologiczne). W następnej kolejności powstały systemy w chemii, jak DENDRAL (interpretacja masowych spektrogramów) czy CRYSTALIS (interpretacja krystalogramów). Można powiedzieć, że i ta pierwsza generacja systemów ekspertowych była jeszcze mało inteligentna, ponieważ analizowała wprawdzie bardzo rozległe bazy danych i wiedzy, wyprowadzając z nich wartościowe wnioski, lecz nie tworzyła zbyt nowatorskiej wiedzy.
Wkrótce pojawiły się jednak systemy konsultacyjne jako nowa, wyższa generacja systemów ekspertowych. W nawiązaniu do znalezionego już rozwiązania pewnego kompleksowego problemu (np. rozpoznanej ukrytej przyczyny powtarzających się chorób zakaźnych) system konsultacyjny stawia jeszcze dodatkowe pytania: w jaki sposób doszło do kluczowej konkluzji, dlaczego tak postawiono pytanie, jaki jest plan rozwiązania problemu, co trzeba jeszcze w nim uwzględnić itp. Pytania te są przykładem szczególnego rodzaju wiedzy - metawiedzy - pozwalającej na daleko idące, nowe, lepsze wnioski. Tu realizuje się dialog między inżynierem wiedzy a ekspertem dziedziny. Systemy konsultacyjne są w istocie szczególnymi “nakładkami” na poprzednie systemy.
Ważnym kolejnym krokiem w historii rozwoju systemów ekspertowych są komputerowe systemy wspomagania decyzji, dostosowane do wymogów całościowej oceny sytuacji problemowej w danej dziedzinie. Dysponują one z reguły bogatą bazą wiedzy i podejmują kompleksowe decyzje. Są to w istocie tradycyjne systemy ekspertowe rozbudowane o wzbogacony interfejs z użytkownikiem. Prowadzą one dialog z użytkownikiem w języku naturalnym, tworzą dla niego modele sytuacji decyzyjnych, prezentują mu w przystępnej formie zaproponowane rozwiązania, objaśniają mu je i w końcu współdecydują. Początkowo (w latach 70.) systemy te wspomagały decyzje w takich dziedzinach wiedzy jak rachunkowość, marketing, sprzedaż, planowanie kariery, prawo podatkowe. Od końca lat 80. zaczęły powstawać systemy “hybrydowe”, które łączyły algorytmiczno-heurystyczne metody maszynowego wnioskowania opierającego się na bazie wiedzy z autonomicznymi, wstępnymi decyzjami kierowniczej kadry opartymi na intuicji czy wyczuciu. Przykładem są powstałe w Manchester Institute of Science and Technology systemy o nazwie MARK-OPT (dynamiczna optymalizacja strategii marketingowej) czy PHARMAPLAN (marketingowa gra symulacyjna do użytku w przemyśle farmaceutycznym).
Systemy ekspertowe są obecnie produktem rynkowym. Minął już czas, gdy pasjonaci z akademickich ośrodków bezinteresownie tworzyli programy dowodzenia twierdzeń matematycznych czy gry w warcaby. Obecnie komputerowe systemy są tworzone
i wykorzystywane komercyjnie i jest to efekt “przemysłowej ery komputerów”. Ich cena jest odzwierciedleniem wartości, jaką ma właściwie przeprowadzona ekspertyza, dobrze postawiona diagnoza czy podjęta decyzja.
Czynniki rozwoju systemów ekspertowych.
Do najistotniejszych czynników sprzyjających rozwojowi systemów ekspertowych można zaliczyć:
zwiększenie dostępności do fachowej wiedzy (ekspertyza dostępna na wielu komputerach i przez całą dobę),
potrzeba upowszechnienia wiedzy eksperta, która jest zasobem rzadkim i bardzo kosztownym,
umożliwienie większemu gronu ludzi działać w roli eksperta,
redukcja kosztów (koszt porady SE jest tańszy niż u eksperta),
wszechstronność ekspertyz (kilka alternatywnych rozwiązań),
objaśnianie odpowiedzi,
skrócenie czasu konsultacji,
zmniejszenie ryzyka błędu,
możliwość przeanalizowania większej przestrzeni danych niż byłby to w stanie zrobić ekspert,
odporność psychiczna komputera (praca bez zakłóceń nawet w złych, stresujących warunkach),
zmniejszenie zagrożeń zdrowia człowieka (SE może być używany w środowiskach niebezpiecznych dla człowieka),
połączenie wiedzy kilku ekspertów może spowodować, że SE będzie działał lepiej niż każdy pojedynczy ekspert.
Rozwój systemów ekspertowych w kierunku różnorakich zastosowań.
Po udanym zastosowaniu systemu ekspertowego w medycynie, jakim był system MYCIN, nastąpił szybki rozwój w dziedzinie SE. Stworzono wiele systemów, z których jedne były bardziej, a inne mniej udane. Widząc potrzebę powstawania systemów ekspertowych, zaczęto ich budowę dla różnych zastosowań. Takie podstawowe obszary zastosowań SE przedstawia tabela 1.2.
Tabela. 2. Podstawowe obszary zastosowań systemów ekspertowych.
Sektor Zastoso-wanie |
Bankowość i ubezpieczenia |
Przemysł |
Handel i usługi |
Sektor publi-czny i inne |
Monitorowanie Sterowanie |
obserwowanie trendów |
nadzorowanie procesów, sterowanie procesami, raportowanie specjalnych sytuacji |
obserwowanie trendów |
Monitorowanie reaktorów jądrowych oraz dużych sieci (gazowe, wodne) |
Projektowanie |
|
projektowanie zakładów i produktów, komputerów |
wybór asortymentów, doradztwo dla rolnictwa |
sieci (pocztowe, energetyczne) |
Diagnostyka |
kredyty, pożyczki na nieruchomości, analiza ryzyka, przetwarzanie skarg |
wykrywanie uszkodzeń, utrzymanie zdolności produkcyjnej |
kredyty, analiza ryzyka |
diagnoza medyczna, diagnoza techniczna |
Planowanie |
analiza ryzyka, planowanie inwestycji |
projektowanie funkcji logicznych, planowanie projektu |
analiza ryzyka, analiza rynku |
planowanie inwestycji, planowanie na wypadek klęski, planowanie dystrybucji |
Jeśli chodzi o konkretne nazwy systemów ekspertowych to wśród udanych zastosowań można wyróżnić:
w zakresie diagnozowania to IDT (informatyka), NDS (elektronika);
w zakresie monitoringu to ANNA (medycyna), REACTOR (analiza strukturalna), YES/MVS (informatyka);
w zakresie interpretacji to DENDRAL (chemia), REACTOR (atomistyka), LITHO (geologia), PROSPECTOR (geologia), SPE (medycyna);
w rozwiązywaniu problemów matematycznych to MACSYMA;
... i wiele innych.
Rozwój systemów ekspertowych w kierunku systemów o oddziaływaniu strategicznym.
Zastosowania systemów ekspertowych można podzielić na cztery grupy. Podziału tego dokonano na Uniwersytecie Northeastern w Centrum Badawczym Technologii Zarządzania i oparto się na dwóch wymiarach, tj. poziomie kompleksowości wiedzy oraz poziomie złożoności technologii.
Jeśli chodzi o kompleksowość wiedzy to chodziło m.in. o odpowiedź na pytania:
jak wiele dyscyplin wiedzy obejmuje system (szerokość wiedzy),
jaki jest poziom doświadczenia lub umiejętności eksperta, wymaganych w danej dziedzinie wiedzy (głębokość wiedzy),
jak wiele źródeł informacji jest wykorzystywanych w podejmowaniu decyzji (szerokość informacji wejściowej),
jak pewna jest informacja używana w procesie podejmowania decyzji,
jakie są charakterystyki procesu decyzyjnego,
jaki jest poziom kompleksowości rezultatów systemu ekspertowego,
jak pewne są rezultaty systemu.
Natomiast przy określaniu złożoności technologii zadawano pytania takie, jak:
jaka jest różnorodność platform, zarówno na poziomie sprzętu, jak i na poziomie systemu operacyjnego, na których system operuje lub jest oczekiwane, że będzie operował,
czy system ekspertowy wykorzystuje technologie inne niż systemy szkieletowe lub języki programowania,
jaki jest poziom integracji systemowej między systemami ekspertowymi oraz innymi systemami w organizacji,
jak rozległy jest zakres wysiłków w programowaniu logicznym (liczba reguł i zaprogramowanej logiki).
Według powyższych kryteriów wyróżnia się więc:
Systemy potęgujące wydajność indywidualną - są to małe systemy ekspertowe (szkieletowe) o niskiej kompleksowości wiedzy i technologii. Najczęściej spotyka się na tym obszarze systemy budżetowania. Celem takiego systemu jest poprawa podejmowania decyzji personalnych oraz w ten sposób wzrost wydajności globalnej.
Złożone systemy decyzyjne - są to systemy o dużej kompleksowości wiedzy, relatywnie nieskomplikowane w swej technologii. Obejmują one wiedzę najbardziej doświadczonych decydentów, lecz nie ograniczają się do profesjonalistów pracujących nad trudnymi problemami. System operuje bez rozległych baz danych do przetwarzania. Chodzi tutaj o poprawę podejmowania decyzji przez całą grupę użytkowników wewnątrz organizacji, co zazwyczaj ma poważny wpływ na jakość produktu, czy usługi.
Zintegrowane systemy produkcji - mają one ograniczoną kompleksowość w dziedzinie wiedzy, lecz zawierają zaawansowaną technologię. Cechą takich systemów ekspertowych jest ich koncentracja na integracji z istniejącymi danymi oraz z istniejącym otoczeniem obliczeniowym. Celem jest zwiększenie wydajności oraz zmniejszenie kosztów.
Systemy o oddziaływaniu strategicznym - są to systemy o wysokim stopniu kompleksowości zarówno pod względem wiedzy, jak i technologii. Są one zarówno szerokie, jak i głębokie w swojej dziedzinie wiedzy. Typowo otrzymują informację z wielu niepewnych źródeł. Proces decyzyjny jest długi skomplikowany. Często wymagane jest testowanie licznych hipotez. Konieczny jest wysoki poziom integracji. Mając na uwadze typ złożoności, nieuniknione koszty oraz czas związany z budową takiego systemu, organizacja musi być bardzo pewna oczekiwanych korzyści z wprowadzenia takiego systemu. Systemy o oddziaływaniu strategicznym mają za cel bezpośrednie oddziaływanie na zwiększenie efektywności podejmowania decyzji oraz poprawę sterowalności procesów.
W organizacji istotne znaczenie ma dążenie w kierunku systemów o oddziaływaniu strategicznym, a więc systemów o dużej kompleksowości wiedzy i technologii ponieważ cząstkowa optymalizacja zazwyczaj nie przynosi oczekiwanych rezultatów. Z kolei bezpośrednia realizacja systemów o oddziaływaniu strategicznym z uwagi na czas realizacji
i koszty jest przedsięwzięciem ryzykownym oraz możliwym do zrealizowania tylko
w organizacjach o dużych doświadczeniach w zakresie wprowadzania współczesnej technologii informacyjnej. Stąd też są dwa podejścia etapowe.
W pierwszym podejściu organizacja posiadająca na wstępie system potęgujący wydajność personalną stworzony przez eksperta. Gdy system wzbudzi większe zainteresowanie możliwe, że zostanie przekształcony przy współudziale grupy ekspertów
w złożony system decyzyjny. Dalej, gdy ten wzbudzi zainteresowanie kierownictwa naczelnego organizacji i zostaną zaangażowani specjaliści z zakresu technologii informacyjnej, to może powstać system o oddziaływaniu strategicznym.
Z kolei w drugim podejściu punktem wyjścia jest zintegrowany system produkcji z elementami sztucznej inteligencji. System ma wysoki stopień kompleksowości w zakresie technologii oraz duże potencjalne możliwości rozwoju w heterogenicznym środowisku sprzętowo-programowym. Organizacja może więc zwiększać kompleksowość wiedzy i rozwijać swój system w kierunku systemu o oddziaływaniu strategicznym.
Działanie systemu ekspertowego.
Architektura systemu ekspertowego.
Przy omawianiu struktury systemu ekspertowego należy przypomnieć o ważnym paradygmacie ich działania, którym jest oddzielenie wiedzy dotyczącej problemów od algorytmów rozwiązywania tych problemów (czyli bazy wiedzy od mechanizmu wnioskowania). Jak już wzmiankowano wyżej, wiedza jest specyficzna dla poszczególnych dziedzin i rozwiązywanych zadań. Natomiast algorytmy rozwiązywania problemów mogą być zastosowane do różnych dziedzin i zadań.
Po powyższym stwierdzeniu przejdziemy do omówienia typowej struktury systemu ekspertowego. Architektura klasycznego systemu ekspertowego została przedstawiona na rys. 12. Składa się ona z następujących podstawowych elementów:
baza wiedzy,
pamięci roboczej,
mechanizmu wnioskowania,
interfejsu użytkownika.
Co do czwartego elementu, nie we wszystkich publikacjach wchodzących w skład fachowej literaturze jest on uznany jako element podstawowy. W tym skrypcie opieramy się na stwierdzeniu Forsyth, jednego z głównych fachowców tej dziedziny, który pisze, że system z bazą wiedzy może nie mieć wszystkich czterech składników (w tym interfejsu objaśniającego), ale system ekspertowy mieć je musi.
Dobry system ekspertowy powinien również posiadać moduł pozyskiwania wiedzy do bazy wiedzy, dzięki któremu będzie możliwe dalsze rozszerzanie i modyfikacja bazy. Ze względu na ważność tego modułu można go także zaliczyć do elementów podstawowych systemów ekspertowych.
Rys.12. Podstawowe elementy systemów ekspertowych. Źródło: opracowanie własne.
Baza wiedzy.
Czym jest baza wiedzy?
Jeśli chodzi o bazę wiedzy (BW) to jest ona elementem występującym w każdym systemie eksperckim, ale też jest elementem specyficznym dla każdej konkretnej dziedziny, gdyż baza wiedzy zawiera zawsze wyłącznie informacje używane przez ekspertów w rozwiązywaniu problemów z tej właśnie specyficznej dziedziny. Zawartość bazy wiedzy stanowi więc wiedzę problemową, pobraną od jednego lub kilku ekspertów. Zawiera ona zatem opis obiektów i zależności specyficznych dal danej dziedziny oraz jej właściwe prawidła proceduralne. Nie jest to jedyna zawartość bazy wiedzy, gdyż dobrze zbudowana baza obejmuje także wszystkie potrzebne heurystyki, jest więc zbiorem faktów i reguł oraz strategii rozwiązywania problemu (metareguł) stosowanych w celu rozwiązania problemu z danej dziedziny - zapisanych oczywiście w odpowiednim języku reprezentacji wiedzy.
Dobrze zbudowana baza wiedzy pozwala decydentowi otrzymać optymalną odpowiedź, którą system ustali na podstawie informacji zawartych w bazie, posługując się dodatkowo zależnościami heurystycznymi, probabilistycznymi i eksperymentalnymi.
Formalną postać zapisu informacji używanych przez system ekspertowy, wraz ze zdefiniowanymi sposobami operowania na zbiorze tych informacji, opisuje przyjęta reprezentacja wiedzy.
Wybór odpowiedniego sposobu reprezentacji wiedzy jest jedną z najbardziej krytycznych decyzji w całym procesie projektowania rozważanych tu systemów ekspertowych. Elementy wiedzy (reprezentowanej w systemie) są zazwyczaj powiązane między sobą, odzwierciedlając związki tematyczne, zakresy pojęć, relacje między wiadomościami, asocjacje merytoryczne i formalne, analogie i kontradykcje itp. Wszystkie te powiązania, występujące w rzeczywistości między „jednostkami wiedzy”, powinny znaleźć potem odbicie w postaci powiązania pomiędzy „jednostkami reprezentacji wiedzy”.
Wiedza w bazie wiedzy systemu ekspertowego musi być zapisana w postaci sformalizowanej, gdyż tylko w takiej formie będzie zrozumiała dla maszyny wnioskującej. Zapisana jest ona za pomocą symboli, dzięki temu łatwo można prześledzić sposób dojścia systemu do każdego konkretnego rozwiązania, ale także łatwo jest przeanalizować poprawność i niesprzeczność całej bazy wiedzy. Jest to duża zaleta w porównaniu do niesymbolicznych metod sztucznej inteligencji, gdzie przeanalizowanie drogi wnioskowania, jaką przebył komputer w celu uzyskania konkretnego rozwiązania, jest zawsze bardzo utrudnione.
Rola inżyniera wiedzy w tworzeniu bazy wiedzy.
Bazę wiedzy tworzy inżynier wiedzy. Gromadzi on wiedzę pochodzącą od ekspertów (oraz z innych źródeł jak: książki, katalogi, itp.) oraz przekształca ją do postaci zgodnej ze sposobem jej przedstawienia w bazie wiedzy. Następnie umieszcza odpowiednio przekształconą wiedzę w bazie, wykrywając i eliminując ewentualne sprzeczności, które prawie zawsze się ujawniają w procesie agregacji wiedzy pochodzącej z wielu źródeł. Proces gromadzenia wiedzy jest jednym z najtrudniejszych etapów podczas tworzenia systemów ekspertowych i wymaga dużych umiejętności komunikowania się inżyniera wiedzy z ekspertami. Wymagane są tu zarówno wysokie kwalifikacje fachowe, jak i odpowiednio miły sposób bycia, warunkujący skuteczność komunikacji z ekspertem.
Po utworzeniu bazy wiedzy inżynier może komunikować się z nią (dla uzupełniania czy poprawiania wiedzy) za pomocą interfejsu oraz tego samego modułu pozyskiwania wiedzy, który służył do początkowego napełnienia bazy wiedzą. Wart podkreślić, że inżynier wiedzy z reguły nie posiada doświadczenia i wiedzy eksperta, co poważnie utrudnia proces konstruowania systemów ekspertowych. Przystępując do zadania utworzenia bazy wiedzy inżynier powinien sobie odpowiedzieć na pewne szczególne pytania, odnośnie tego, jaka baza wiedzy ma powstać w wyniku jego pracy. Konieczna jest do tego celu pewna klasyfikacja baz wiedzy, którą teraz podamy.
Rodzaje baz wiedzy.
Wśród baz wiedzy należy wyróżnić:
bazę tekstów, gdzie strukturalizacja zawartych informacji jest naturalna. Baza taka nie jest z reguły uporządkowana semantycznie, a operacje są dokonywane na niej w dowolny sposób (przykładem są tu słowniki dziedzinowe),
bazę danych ustrukturalizowanych, która przechowuje specyficzne, szczegółowe informacje zapisane w sposób wysoce uporządkowany a operacje na nich są ściśle są zdeterminowane (zazwyczaj rozważa się tutaj numeryczny typ danych, które oczywiście także wchodzą typowo w skład bazy wiedzy),
bazę reguł zawierająca wiedzę o obowiązujących w danej dziedzinie zależnościach i relacjach między danymi. Ta część jest najważniejszą częścią BW, użyteczną jednak wyłącznie przy odpowiednio bogatej zawartości pozostałych składników bazy,
bazę modeli, gdzie mieszczą się modele matematyczne danej dziedziny. Modele te są logiczno-matematycznym przedstawieniem występujących w danej dziedzinie pojęć, działań i systemów. Są możliwe trzy rodzaje modeli:
deterministyczny (model ma swoje przedstawienie analityczne, wyniki są jednoznacznie przewidywalne dla ustalonych danych wielkości wejściowych),
niedetermistyczny (stochastyczny model, w którym zależności funkcyjne zależą od wielkości losowych; dlatego dla określonych danych wejściowych wyniki są tylko przewidywane z wykorzystaniem probabilistyki),
model wartości oczekiwanych (zależności funkcyjne zależą od wielkości oczekiwanych nadanych wielkościom losowym.
bazę wiedzy zdroworozsądkowej, która odzwierciedla potencjalne, racjonalne zachowania się człowieka wynikające z jego wiedzy ogólnej (nie związanej z konkretną dziedziną, dla której buduje się model). Baza wiedzy zdroworozsądkowej jest konieczna, gdyż dla komputera absolutnie nic nie jest oczywiste i absolutnie każda reguła, z której komputer ma skorzystać podczas automatycznie prowadzonego rozumowania, musi być gdzieś explicite podana. Właśnie do wyrażania takiej wiedzy oczywistej służy opisywany fragment bazy; zawiera ona reguły, które definiują sposoby na przykład sposoby podejmowania decyzji, reprezentuje metawiedzę (wiedzę o sposobie przetwarzania wiedzy z danej dziedziny, czyli “wiedzę o wiedzy”) oraz inne niezbędne uzupełnienia reguł sterujących pracą systemu ekspertowego.
Sposoby reprezentacji wiedzy w systemach ekspertowych.
Jeśli chodzi o reprezentację wiedzy to istnieją dwa zasadnicze sposoby jej przedstawiania. Może to być:
tzw. proceduralna reprezentacja wiedzy, która sprowadza się do opisu wykonania określonych działań (procedur), reprezentujących poprawny sposób użytkowania wiedzy; na ogół nie jest specyficzny zasób wiedzy o danej dziedzinie, tylko w istocie zasób wiedzy o wiedzy oraz
tzw. deklaratywna reprezentacja wiedzy, która wyrażana jest za pomocą statycznych faktów, stwierdzeń, reguł, które bezwzględnie są specyficzne dla danej dziedziny. Informacja dotycząca sposobu wykorzystania faktów i stwierdzeń jest tu ograniczona, natomiast podane są deklaracje o prawdziwości takich faktów czy stwierdzeń, jak np. „dom jest budynkiem”.
Dla rzeczywistych systemów ekspertowych preferuje się przedstawianie wiedzy w sposób mieszany.
Wiedzę, która ma znaleźć się w systemach ekspertowych, można zapisać za pomocą różnych formuł. Są to metody reprezentowania wiedzy takie, jak:
metody bazujące na bezpośrednim zastosowaniu logiki formalnej: rachunek zdań, rachunek predykatów;
metody wykorzystujące zapis stwierdzeń;
metody wykorzystujące systemy regułowe (wektory wiedzy);
metody z wykorzystaniem sieci semantycznych;
metody oparte na tzw. ramach;
metody używające modeli obliczeniowych.
Nie wszystkie wymienione metody będą omawiane w tej pracy. Ze względu ma dydaktyczny i raczej przeglądowy charakter tego skryptu ograniczymy się tylko do najczęściej wykorzystywanych metod, a mianowicie do stwierdzeń, reguł, ram oraz sieci semantycznych.
Stwierdzenia.
Stwierdzenia w bazie wiedzy są reprezentowane poprzez tzw. uporządkowaną trójkę:
{obiekt-atrybut-wartość},
która może być czasem zawężona do dwóch tylko elementów:
{atrybut-wartość}.
a czasem może zostać z kolei rozszerzona o dodatkowy element, jakim jest współczynnik pewności (CF od ang. Certainty Factor). Współczynnikiem pewności może być liczba z przedziału [-1,1]. Wówczas dla CF=-1 wiadomo, że stwierdzenie jest fałszywe, dla CF=1 stwierdzenie jest prawdziwe, a dla CF=0 nie wiadomo, czy jest ono prawdziwe, czy fałszywe.
Stwierdzenia są jednym z głównych elementów bazy wiedzy. Dotyczą one różnych obiektów, czyli zdarzeń, zjawisk, czynności. Charakteryzują one pewne obiekty, ale nie wyrażają relacji między nimi (relacje te najczęściej opisywane są poprzez ramy czy sieci semantyczne). Same stwierdzenia nie wystarczają więc do opisania jakiejkolwiek wiedzy, ale trudno jest też zbudować bazę wiedzy nie zawierającą pewnej liczby stwierdzeń.
Wspominane w schemacie stwierdzeń atrybuty są cechami obiektów i mogą przyjmować różne wartości (wartością atrybutu może być nie tylko wartość liczbowa, ale też np. kolor, kształt, itp.).
Przykładem stwierdzenia może być następująca trójka: {Dom, drzwi, dębowe}, która reprezentuje fakt: Dom ma dębowe drzwi. Połączenie {obiekt, atrybut} jest typu „ma”, a {atrybut, wartość} typu „jest”, co może zostać odzwierciedlone w sieci semantycznej, o której będzie mowa dalej. Oczywiście możliwe są także inne typy połączeń dla innych obiektów.
Reguły.
Reguły w bazie wiedzy mają zwykle postać:
IF <warunek logiczny/przesłanka>
THEN <konkluzja/działanie/produkcja>.
Warunkiem logicznym lub inaczej przesłanką reguły mogą być dowolne stwierdzenia, które dla stworzenia złożonego warunku zostają dodatkowo połączone funktorami zdaniotwórczymi. Konkluzja (działanie, produkcja) jest efektem końcowym reguły; najczęściej jest on stwierdzeniem, prawdziwym, gdy prawdziwa jest też przesłanka / przesłanki. Systemy ekspertowe oparte na regułach są klasą systemów ekspertowych, w których główną częścią składową bazy wiedzy jest zbiór reguł (obok zbioru faktów).
Do tej pory większość powstałych systemów ekspertowych opartych jest na tej właśnie reprezentacji wiedzy. Każda reguła w bazie wiedzy to jakiś fragment wiedzy. Jako że reguły są niezależne od siebie (takie być powinny dla dobrego funkcjonowania systemu), można więc bardzo łatwo rozszerzyć zakres systemu ekspertowego lub zwiększyć jego moc poprzez dodanie dalszych reguł do bazy wiedzy.
Przykładem reguły może być:
IF Dom ma dębowe drzwi THEN Dom jest solidnym budynkiem
gdzie na podstawie stwierdzenia {Dom, drzwi, dębowe} zostaje wydedukowany nowy fakt {Dom, budynek, solidny} .
Jak wiadomo systemy ekspertowe potrafią rozumować symbolicznie tzn. wnioskować na temat zdań (stwierdzeń) a nie tylko oznaczać je jako prawdę lub fałsz. Tak więc przykładowa reguła może mieć postać: IF Dom ma dębowe drzwi OR Dom ma grube ściany THEN Dom jest solidnym budynkiem. Poza tym jest możliwe rozumowanie symboliczne ze zmiennymi w wyniku czego mogą w bazie wiedzy powstawać reguły bardzo ogólne, które pozwalają na stosowanie ich dla różnych obiektów.
Czasami używa się bardziej zmatematyzowanej formy zapisu reguł, gdzie zostaje opuszczone funktory IF i THEN. Wówczas taka reguła wykorzystuje implikację i ma postać:
(przesłanka / przesłanki) ⇒ (konkluzja).
Systemy ekspertowe oparte na regułach mogą zawierać reguły, które są charakteryzowane, podobnie jak stwierdzenia, pewnym stopniem pewności. Są to zazwyczaj liczby z przedziału [-1,1] lub [0,1]. Liczby te określają, jaki jest stosunek twórcy systemu czy użytkownika do pewności konkluzji w danej regule. Reguły mogą mieć również postać rozwiniętą, która ma postać:
IF przesłanka THEN konkluzja1 ELSE konkluzja2.
Konkluzja2 jest wtedy dodatkowym stwierdzeniem, które jest wyprowadzane, gdy przesłanka nie jest spełniona.
Ze względu na rodzaj wysuwanych wniosków reguły można podzielić na:
proste - mają postać wniosków (hipotez) pośrednich,
złożone - umożliwiają bezpośrednie wyznaczenie wniosków przez system; nie jest wymagany mechanizm wnioskowania.
Sieci semantyczne.
Sieć semantyczna jest graficzną reprezentacją związków między jednostkami posiadanej wiedzy. Podstawowymi składnikami sieci są węzły (używane do opisu elementów, pojęć, obiektów) oraz łuki (do przedstawiania relacji pomiędzy opisywanymi elementami). Przypadkiem sieci semantycznej jest tzw. sieć stwierdzeń, która ma postać grafu z węzłami przedstawiającymi stwierdzenia i z łukami określającymi relacje pomiędzy nimi. Podobnie jak w stwierdzeniach i w regułach, także tutaj węzły mogą mieć przypisane stopnie pewności, które mówią o słuszności stwierdzeń. Odnośnie relacji to są one najczęściej typu: „jest ”, „ma”, „jest częścią...”, „jest rodzajem...”. Podstawową koncepcją sieci semantycznej jest zasada dziedziczenia, na podstawie której właściwości pewnych elementów są określane (na zasadzie dedukcji) według właściwości innych, nadrzędnych elementów.
Wnioskowanie przy użyciu sieci semantycznej jest proste i polega na „poruszaniu się” po grafie i dedukowaniu różnych konkluzji. Jednak rozważając ten typ reprezentacji wiedzy trzeba sobie wyraźnie uświadomić, że nie ma ścisłych reguł semantycznych, według których można by zawsze poprawnie wnioskować. Poza tym problem pojawia się przy określaniu, czy węzły sieci reprezentują jeden obiekt, czy całą klasę obiektów. W celu przezwyciężenia tych ograniczeń sieci semantyczne wiąże się często z ramami lub regułami. W przypadku zastosowania ram to one właśnie charakteryzują indywidualne obiekty, natomiast sieć semantyczna obrazuje relacje pomiędzy ramami.
Przedstawiony poniżej graf (rys. 13) opisuje budynek o nazwie dom. Przykładowa sieć semantyczna jest skierowana w ten sposób, że pomiędzy węzłami grafu zachodzą relacje w jedną stronę. Relacje są typu: M - ma, J - jest oraz W - jest w.... Na podstawie tej sieci można wyprowadzić stwierdzenie, że „Dom jest budynkiem”. Nie można natomiast wyprowadzić stwierdzenia odwrotnego, że „Budynek jest domem” (to byłoby równoznaczne, że każdy budynek należy do klasy o nazwie dom - co jest w oczywisty sposób nieprawdziwe). Można za to stwierdzić, że dom należący do klasy budynek ma okno, komin oraz drzwi, które z kolie posiadają klamkę. Na podstawie sieci można też wydedukować, że dom jest ogrzewany, ale to nie zawsze musi być prawdą. Jest tak zazwyczaj, gdy budynek jest w klimacie chłodnym.
Rys. 13. Przykładowa sieć semantyczna. Źródło: opracowanie własne.
Ramy.
Ramy zapewniają reprezentację specyficznego obiektu i całej informacji o tym obiekcie (lub klasie obiektów). Reprezentacja w postaci ram umożliwia bardziej zrozumiały strukturalny opis dziedziny problemu. Każda rama posiada swoją nazwę i jest złożona ze szczelin (klatek), które z kolei tworzą zbiory elementów tzw. fasety (ang. facet). Identyfikacja ram i szczelin dokonuje się poprzez ich nazwy. Szczeliny służą do przechowywania deskryptorów (cech charakterystycznych) obiektu, który opisuje rama. Deskryptorami są np. powiązania obiektu z innymi obiektami czy wartości cech obiektu (tymi wartościami mogą być liczby, teksty, a także kolejne ramy). Wartość szczeliny jako rzeczywista dana jest zapisana w fasecie typu VALUE; szczelina może jednak zawierać także fasety innych typów.
Koncepcja ram wykorzystuje, podobnie jak i sieci semantyczne, zasadę dziedziczenia, gdzie właściwości obiektów nadrzędnych przechodzą na obiekty podrzędne. Tak więc rama
o nazwie dom może dziedziczyć cechy obiektów z ram o nazwach budynek mieszkalny, budynek, budowla, itd. Pewna klasa obiektów może znajdować się w kilku różnych ramach, które przedstawiają te obiekty na różnym stopniu specyfikacji. Dla przykładu klasa obiektów o nazwie dom może się znaleźć w ramach o nazwach: budynek, budowla.
Wnioskowanie w systemach ramowych dokonuje się dzięki procedurom zawartym
w szczelinach lub poprzez wzajemne powiązanie ram i dziedziczenie. Powiązanie ram może mieć formę członkostwa lub podklasy.
Ponadto ramy mogą zostać użyte do organizacji reguł. Jeżeli reguły są reprezentowane jako rama, mogą być łatwo pogrupowane w klasy. Taka metawiedza może być reprezentowana w ramach mających połączenie z wszystkimi ramami reprezentującymi podklasy reguł lub regułami-członkami klasy.
Zarządzanie bazą wiedzy.
Zarządzanie bazą wiedzy dotyczy definiowania wiedzy i struktury oraz sposobu manipulowania tą wiedzą. Aby system ekspertowy mógł wykonać powyższe zadania, musi posiadać zbiór odpowiednich funkcji, które pozwolą mu dokonać odpowiednich czynności na podstawie ich definicji. W każdej bazie wiedzy musi być zawarty opis obiektów (faktów) i zależności, jak również opis sposobu rozwiązywania problemu. Bez tych dwóch elementów system nie będzie mógł działać. Oczywiście można skupić się na jednym z nich w większym stopniu niż na drugim i jeden z nich uczynić nadrzędnym w stosunku do drugiego. Stąd definiując wiedzę można zdecydować się na jedno z dwóch podejść, tj. na:
zorientowane na rozwiązywanie problemów,
zorientowane na obiekty.
W podejściu zorientowanym na rozwiązywanie problemów kładzie się nacisk na to, jak rozwiązywany jest problem. Wówczas do wnioskowania na określonym zbiorze danych wykorzystuje się heurystyki i różne strategie poszukiwania.
Ważną cechą zarządzania wiedzą staje się możliwość strukturalizacji wiedzy w zbiory reguł. Zbiór reguł jest zestawem reguł, które odnoszą się do definiowanego aspektu problemu. Zbiory te agregują i rozdzielają reguły według pewnych zdefiniowanych kryteriów. Zaletą jest to, że w dużych bazach wiedzy segmentacja wiedzy w zbiory reguł może znacznie zwiększyć efektywność przeszukiwania, a mechanizm wnioskowania może otrzymać informacje gdzie szukać wiedzy. Duża część bazy wiedzy może być wówczas ignorowana przy przeszukiwaniu, co znacząco przyspiesza ten proces. Jeżeli problem jest bardzo złożony, to może on być podzielony na podproblemy, z których każdy może dotyczyć pojedynczego, dobrze zdefiniowanego zagadnienia. Najczęściej bowiem, gdy ekspert ma rozwiązać problem, to podchodzi do niego kolejno z różnych punktów widzenia, dekomponując w ten sposób jedną złożoną czynność (którą musi docelowo wykonać) na szereg czynności składowych.
Co się tyczy drugiego podejścia, które jest zorientowane na obiekty, to przy jego przyjęciu rozwiązywany problem modelowany jest na zbiór obiektów i zależności. Obiekt może być rzeczą fizyczną, koncepcją lub procedurą. Tutaj następuje skupienie się na obiektach i wokół obiektów oraz ich klas organizuje się całą wiedzę z danej dziedziny. Jeśli chodzi o zarządzanie wiedzą od strony tego podejścia, to jego ważną cechą staje się możliwość ustrukturalizowanej reprezentacji obiektów i klas obiektów w postaci ram,
o których była wyżej mowa.
Pamięć robocza
Pamięć robocza, nazywana również przestrzenią roboczą lub chwilową bazą danych systemu, służy do tymczasowego przechowywania tych danych, które dotyczą aktualnie przetwarzanych problemów, lub inaczej, powstają na użytek konkretnego zagadnienia. Uaktualnianie i przeglądanie przestrzeni roboczej jest możliwe dzięki zastosowanemu mechanizmowi wnioskowania. W przestrzeni roboczej wykorzystywana jest wiedza aktualnie potrzebna, najczęściej pochodząca z bazy wiedzy albo wydobyta od użytkownika. W przestrzeniu tej przechowywane są dane o rozważanych obiektach, hipotezy i wyniki pomiarów, odpowiedzi użytkownika na pytania systemu.
Chwilowa baza danych różni się więc od głównej bazy wiedzy tym, że w przeciwieństwie do niej nie jest stała. Jest tworzona tylko dla rozwiązania konkretnego problemu. W chwili rozpoczęcia pracy nad innym zadaniem baza danych powstaje od początku.
Mechanizm wnioskowania.
Mechanizm wnioskowania dokonuje w automatyczny sposób rozumowania, które ostatecznie prowadzi do rozwiązania postawionego problemu na podstawie wiedzy zawartej w bazie wiedzy. Jest on elementem kontrolującym cały system ekspertowy. Mechanizm wnioskowania uruchamia wiedzę w bazie wiedzy w celu realizacji rozwiązań. W ten sposób „lokalizuje [on] wiedzę i tworzy nową wiedzę na podstawie istniejącej [w bazie wiedzy]”. Jest on aktywizowany, kiedy użytkownik inicjuje konsultację z systemem. Mechanizm wnioskowania również decyduje, które reguły należy uruchomić (i w jakiej kolejności), przegląda przestrzeń roboczą, gdzie przechowywane są informacje o stanie początkowym faktów i gdzie wywnioskowane fakty są przechowywane podczas procesu wnioskowania. Aby wykonać każdą elementarną dedukcję, mechanizm ten wykorzystuje logikę matematyczną (wzbogaconą czasem o elementy probabilistyki) do ewaluacji prawdziwości (lub prawdopodobieństwa) kolejnych reguł, tworzących łącznie łańcuch wnioskowania. Oparty na regułach system osiąga ostateczną konkluzję poprzez serię elementarnych konkluzji. Kiedy kolejno wydedukowany fakt jest umieszczany w przestrzeni roboczej, w wyniku czego tworzony jest nowy wzorzec danych, który może być dalej porównywany z innymi regułami. W kolejnym kroku mogą być wydedukowane nowe fakty itd., aż zostanie osiągnięta ostateczna konkluzja. Tak mniej więcej wygląda działanie mechanizmu wnioskowania.
Jednym z podstawowych postulatów tworzenia systemów ekspertowych, o którym już wspomniano, jest, by maszyna wnioskująca była oddzielona od bazy wiedzy. Dzięki temu
w szkieletowych systemach ekspertowych maszyna wnioskująca działa tak samo poprawnie dla dowolnych dziedzin wiedzy. Maszyna wnioskująca przeszukuje przestrzeń stanów rozważanego problemu za pomocą odpowiednio wbudowanych w system strategii przeszukiwań i heurystyk, stosując przy tym stale wybrane metody wnioskowania. Strategie przeszukiwania mówią, w jaki sposób maszyna wnioskująca ma sprawdzać prawdziwość kolejnych stanów środowiska. Heurystyki pomagają zoptymalizować poszukiwania rozwiązań: pozwalają pominąć te ścieżki poszukiwań, które nie rokują nadziei na odnalezienie rozwiązania, skracają czas dochodzenia do wyniku itp. Natomiast metody wnioskowania decydują o tym, w jaki sposób zachodzi proces „myślenia”, czy jest to na przykład wnioskowanie w przód (dedukcja), czy wstecz (indukcja). Te dwa typy wnioskowania odnoszą się do sposobu sprawdzania reguł przez mechanizm wnioskowania: czy rozpoczyna od przesłanek (w przód), czy od konkluzji (wstecz). O strategiach przeszukiwania i heurystykach oraz o metodach wnioskowania jest mowa w podrozdziałach 4.2.2 i 4.2.3.
Interfejs użytkownika.
Co to jest interfejs użytkownika?
Zadaniem interfejsu użytkownika jest umożliwienie formułowania zadań przez użytkownika oraz udzielania przez system odpowiedzi przedstawianych użytkownikowi jako wnioski z rozumowania przeprowadzonego przez system. W jednym i w drugim przypadku system zyskuje uznanie użytkownika jeśli forma komunikacji może maksymalnie przypominać swobodną komunikację językową miedzy ludźmi - co jest możliwe do osiągnięcia w sztucznym systemie dzięki procedurom sterowania dialogiem. Interfejs użytkownika działa nie tylko na początku (inicjując rozumowanie) i na końcu (podając rozwiązanie), ale z reguły pozwala także na przyjmowanie od użytkownika dodatkowych wskazówek i zapytań w dowolnym momencie wnioskowania. W tym celu istnieją w tym interfejsie procedury objaśniania, umożliwiające odpowiadanie na te bieżąco stawiane pytania i komentarze, poprzez które system ekspertowy staje się dla użytkownika bardziej wiarygodny. System objaśniający powinien zgłaszać się każdorazowo przy zadawaniu pytań przez użytkownika oraz w chwili, gdy zostanie osiągnięty wynik końcowy (zarówno pozytywny, jak i negatywny). System może się także zgłaszać gotowość do dialogu przy analizowaniu każdego warunku, gdy zostanie wprowadzona do niego odpowiednia opcja pozwalająca na bieżące śledzenie procesu rozumowania. Gdy częstotliwość takich zgłoszeń jest duża, użytkownik może śledzić dokładnie każdy krok systemu, w związku z tym ułatwione jest jego testowanie - na przykład dla nowo utworzonej bazy wiedzy. System ekspertowy powinien mieć maksymalnie „przyjazny” interfejs użytkownika, gdyż tylko wtedy mogą z niego korzystać osoby bez przygotowania informatycznego.
Rola użytkownika w systemach ekspertowych.
W literaturze dotyczącej systemów ekspertowych dużo pisze się o ekspertach i o pozyskiwaniu wiedzy, natomiast mało o użytkownikach i ich charakterystyce. A to przecież dla nich jest tworzony system ekspertowy i oni dokonają jego oceny. Według terminologii komputerowej „pracownik lub decydent wykorzystujący system ekspertowy określani są terminem użytkownik”. Charakterystyka użytkownika narzuca pewne ograniczenia przy projektowaniu systemu ekspertowego. Często rozpatrywany jest problem, na ile różnica w wiedzy pomiędzy ekspertem a użytkownikiem ogranicza funkcjonalność systemu ekspertowego. Dlatego zakłada się, że użytkownik zna przynajmniej podstawową terminologię w danej dziedzinie.
Użytkownik systemu ekspertowego może występować w następujących rolach:
jako osoba będąca rzeczoznawcą, która ma za zadanie sprawdzać użyteczność systemu; jest to zazwyczaj ekspert,
jako osoba, która ma za zadanie dostarczyć nową wiedzę lub zmodyfikować już istniejącą; jest to zazwyczaj inżynier wiedzy, ekspert lub ogólnie nauczyciel systemu,
jako osoba, która nie posiada odpowiedniej wiedzy do rozwiązania konkretnego problemu
i przyszła po poradę czyli wiedzę w danej dziedzinie; jest to zwykle „pospolity” użytkownik,
jako osoba, która chce poszerzyć swoją wiedzę w danej dziedzinie, zweryfikować własny osąd; zwykle jest to uczeń-ekspert.
Jak już wiadomo system ekspertowy musi rozwiązywać problem zadany mu przez użytkownika, jak również:
wyprowadzać konkluzje,
wyjaśniać swoje rozumowanie, przez co użytkownik będzie miał jasny obraz rozwiązanego problemu.
Wyprowadzona konkluzja może być na przykład diagnozą choroby (przy SE z dziedziny medycyny), czy zaleceniem dla konkretnej sytuacji finansowej (przy finansowych systemach ekspertowych). Ważne jest, aby zbiór konkluzji był w systemie pełni wyspecyfikowany. Natomiast działaniem, jakie wykona system ekspertowy, jest tylko wyszukanie odpowiedniego elementu tego zbioru. System ekspertowy pracuje w trybie konsultacji, tzn. użytkownik konsultuje się z systemem. W trakcie konsultacji występuje zwykle współdziałanie użytkownika i systemu, zwłaszcza w przypadku, gdy użytkownik (albo system!) potrzebuje dodatkowych informacji. Sam użytkownik nie ma bezpośredniego wpływu na proces wnioskowania, ale ma go informacja wprowadzana przez niego podczas konsultacji.
Istotnym aspektem rozwiązywania problemu przez człowieka jest możliwość uzyskania dodatkowych wyjaśnień eksperta. Chodzi o to, w jaki sposób pewna specyficzna konkluzja została osiągnięta lub dlaczego zadaje on pewne pytania. Od systemu ekspertowego oczekuje się więc, aby miał podobne możliwości.
Konsultacja.
Użytkownik może się konsultować z SE podczas wykonywania takich zadań, jak wystawianie diagnozy, przygotowanie planu lub uzyskanie zaleceń przy wyborze jednej
z alternatywnych decyzji. Zakres działań, jakie wykonuje system ekspertowy może być różny od zakresu działań, jakie wykonuje użytkownik, np. system ekspertowy z zakresu decyzji kredytowych może być zaprojektowany na przykład do takich zadań, jak:
zalecanie decyzji, akceptacja/odrzucenie,
pomoc w ocenie kredytu,
wykonanie diagnozy ogólnej sytuacji finansowej.
Jeśli chodzi o pierwszy przykład, to system prawie sam w pełni podejmuje decyzję. Decyzja kredytowa może być wtedy powierzona ludziom nie wyszkolonym w dziedzinie finansów i niezdolnym do samodzielnego podejmowania decyzji kredytowych - ale opierającym się na radach systemu ekspertowego. W przykładzie drugim system tylko wspomaga decydenta, który sam może podjąć ostateczną decyzję na podstawie dodatkowych danych. Natomiast w ostatnim przypadku analiza finansowa wykonana przez system jest tylko jednym z kilku raportów, na podstawie których można podjąć decyzję.
Jeżeli zaczyna się projektować system ekspertowy należy zwrócić szczególną uwagę na to, aby odróżnić zadania użytkownika i zadania samego systemu.
Diagnozowanie.
Wydanie diagnozy oznacza określenie przyczyny pojawiania się problemu na podstawie zbioru symptomów lub innych charakterystyk sytuacji. Medyczna diagnoza choroby może być otrzymana ze zbioru symptomów zaobserwowanych u pacjenta, natomiast w finansach diagnozą może być dla przykładu zyskowność czy płynność finansowa, które są otrzymane na podstawie analizy danych finansowych firmy. Problemy diagnozowania oparte są najczęściej na procesie wnioskowania w warunkach niepewności i rozwiązywane są poprzez proces generowania i weryfikowania hipotez. W małych zbiorach konkluzji diagnoza może być wyciągana w sposób systematyczny, gdzie każda odpowiedź jest sprawdzana indywidualnie i oceniana, czy jest prawdziwa lub fałszywa (z pewnym stopniem niepewności). Na końcu diagnozowania dostarczana jest lista konkluzji uporządkowana w kolejności malejącego prawdopodobieństwa.
Problem pojawia się wtedy, gdy istnieje równolegle wiele rozwiązań. Wówczas nie można wybrać najbardziej prawdopodobnego rozwiązania, jak też nie można uwzględnić wszystkich rozwiązań powyżej pewnego progu prawdopodobieństwa. Są jednak diagnostyczne systemy ekspertowe, które pracują z wieloma diagnozami jednocześnie. W dużych zbiorach konkluzji nie weryfikuje się wszystkich możliwych rozwiązań oddzielnie, ponieważ jest to nieefektywne. Wówczas pojawia się konieczność generowania hipotez. Tak więc symptomy mogą być użyte do generowania wiarygodnych, możliwych do przyjęcia hipotez, które są następnie testowane i weryfikowane.
Z diagnozowaniem powiązane jest klasyfikowanie. Jest to przypisywanie poszczególnych obiektów do określonych klas, które są z góry określone. Każda taka klasa jest zdefiniowana na podstawie zbioru typowych cech charakterystycznych. Klasyfikacja więc polega na porównywaniu poszczególnych cech obiektu z cechami charakterystycznymi jednej z klas. Dla przykładu diagnoza medyczna polega na określeniu choroby na podstawie zbioru objawów podanych przez pacjenta. Objawy pacjenta są porównywane ze zbiorem cech charakterystycznych dla jakiejś choroby. Jeżeli cechy choroby są zgodne z objawami to problem jest określony. Jednak i tutaj są komplikacje procesu wnioskowania. Jakie bowiem mają być warunki konieczne i wystarczające, aby zakwalifikować obiekt do jakiejś klasy?
A co jeśli jest wiele konkluzji, jak je interpretować?
Wyjaśnienia.
Moduł ten w systemach eksperckich powoduje, że poszczególne konkluzje stają się umotywowane, tzn. zostaje określone jak przebiegało wnioskowanie. Skoro eksperci potrafią objaśniać swoje decyzje, tak więc i od systemu ekspertowego oczekuje się tego.
Najpowszechniejszym typem wyjaśnień są wyjaśnienia retrospektywne. JAK (ang. how) poszczególna konkluzja została osiągnięta? W odpowiedzi na to system powinien wyświetlić łańcuch reguł, które były wykonane w celu osiągnięcia tej konkluzji. Opcja ta jest dostępna w dowolnej chwili. Przy wywołaniu po odpowiedzi końcowej system odpowie jak doszedł do celu, natomiast przy pozostałych wywołaniach system odpowie jak doszedł do faktu, którym zainteresował się użytkownik.
Powszechne są również wyjaśnienia typu DLACZEGO (ang. why) jest analizowany dany warunek. System wówczas podaje nazwę i postać reguły, która jest analizowana
z zaznaczeniem bieżącego warunku. Opcja ta jest niedostępna, gdy zostaną ustalone odpowiedzi końcowe.
Pytania typu JAK i DLACZEGO są ułatwieniami dla użytkownika. Przydatne może być posiadanie przebiegu całej drogi procesu wnioskowania, czyli wyświetlania wszystkich próbowanych reguł. Typowym poleceniem wykonującym tę funkcję jest tzw. ślad (ang. trace,), który jest najczęściej wykorzystywany przez inżynierów wiedzy podczas projektowania i testowania systemu.
Ponadto systemy ekspertowe wyposażone są typowo w mechanizmy wnioskowania typu CO-JEŻELI (ang. what will be if). System wyjaśnia co się stanie, jeżeli użytkownik wybierze jedną z możliwych odpowiedzi. Ma to pomóc użytkownikowi w udzielaniu odpowiedzi (opcja dostępna tylko przy zadawaniu pytań).
Istnieją alternatywne narzędzia objaśnień, od prostej listy numerów wykonanych reguł, poprzez wyświetlanie reguł tak jak są zawarte w bazie wiedzy, do tłumaczenia ich na język naturalny.
Jeśli chodzi o narzędzia objaśniania, to są jeszcze inne, m.in. i takie, które pozwalają wyjaśniać wartości numeryczne obliczane przez model, czy udzielać odpowiedzi podając zmienne wpływające pozytywnie i negatywnie na badane wskaźniki.
Strategie przeszukiwań i heurystyki w systemach ekspertowych.
Istota przeszukiwania.
Aby rozwiązać problem należy przejść drogę od jego definicji czyli stanu początkowego poprzez stan pośredni do ostatecznego rozwiązania czyli stanu końcowego. Przy rozwiązywaniu określonego problemu trzeba wybrać technikę postępowania.
W systemach ekspertowych stosuje się tzw. metodę przeszukiwania. Jest ona odpowiednia dla SE ponieważ nie ma konieczności określania z góry ciągu czynności prowadzących do rozwiązania, co byłoby trudne dla wielu problemów rozwiązywanych przez te właśnie systemy. Ma tu natomiast miejsce analiza alternatyw. Ponadto metoda przeszukiwania ogranicza się do określania zbioru stanów przestrzeni rozwiązywanego problemu, stanu początkowego i końcowego oraz zbioru operatorów, które przekształcają te stany.
Graficzną prezentacją procesu rozwiązywania problemu jest graf stanów. Tworzą go stany początkowe i operatory. Węzły odpowiadają stanom problemu, a połączenia między węzłami operatorom. Taki graf stanów ma najczęściej postać tzw. drzewa wyszukiwania, które zawiera wszystkie możliwe ścieżki (gałęzie) prowadzące od stanu początkowego do stanu końcowego.
Wyróżnia się dwie metody przeszukiwań:
metody ślepe (ang. blind search),
metody heurystyczne (ang. heuristic search) zwane skierowanymi.
Metody przeszukiwań określane jako „ślepe”.
Jeśli chodzi o metody ślepe to nie wykorzystują one informacji o dziedzinie rozwiązywanego problemu i rozważają wszystkie możliwe rozwiązania, mają więc charakter uniwersalny. Metody te przeszukują więc przestrzeń stanów bez świadomości prawdopodobieństwa sukcesu dla jednej lub innej drogi. W strategiach ślepych porządek przeszukiwań zależy tylko od informacji dostarczonej przez już zbadane węzły grafu i proces przeszukiwania.
Zalicza się tutaj strategie przeszukiwań takie jak: w głąb, wszerz, strategię
z powracaniem, strategię zachłanną (będzie mowa o nich dalej).
Metody heurystyczne przeszukiwań.
Natomiast charakteryzując metody heurystyczne należy zaznaczyć, że są one dostosowane do danego problemu i uwzględnia się w nich informacje o przestrzeni stanów oraz operatorach. Metody heurystyczne mają na celu wybrać kierunek postępowania gwarantujący efektywność rozwiązywania problemów. Pozwalają więc wybrać najbardziej obiecującą ścieżkę (operator), co ułatwia i przyspiesza proces rozwiązywania problemu. Wybór najlepszej ścieżki w przeszukiwaniu heurystycznym dokonywany jest m.in. poprzez analogie, uproszczenia, co jest związane z wiedzą prywatną eksperta o sposobie rozwiązania danego problemu (wiedzę tę stanowi intuicja, przypuszczenia, zdroworozsądkowe zasady sformułowane na podstawie wieloletniego doświadczenia czyli tzw. „rules of thumb”). Do strategii heurystycznych należą m.in. strategia „najpierw najlepszy” i strategia A*, które zostaną dalej krótko omówione.
Metody heurystyczne wykorzystuje się najczęściej tam, gdzie nie ma algorytmu lub istnieje algorytm, ale daje on niezadowalające wyniki. Bowiem heurystyki mogą zwiększać niepewność otrzymanego wyniku, np. ze względu na błędną intuicję. Metody te stosuje się też zazwyczaj dla zadań o złożoności obliczeniowej, gdzie dokładne algorytmy zawodzą.
Charakterystyka strategii przeszukiwań.
Kryteria, które są najczęściej wykorzystywane przy ocenie skuteczności strategii to:
jakość wyznaczonego rozwiązania,
koszt obliczeniowy,
potrzebny obszar pamięci.
Na podstawie tych kryteriów definiuje się szereg strategii przeszukiwania zbiorów rozwiązań:
Strategia w głąb (ang. depth - first).
Kolejność przeszukiwania grafu, jak sama nazwa mówi, jest w głąb czyli węzłami w dół. Przestrzeń jest przeszukiwana dopóki nie osiągnie się węzła celu lub węzła końcowego. W strategii tej ma miejsce tzw. ekspansja węzłów, tj. generowanie wszystkich ich potomków (rozgałęzień węzła). Ponadto wyznawana jest zasada, że po penetracji w dół powraca się do ostatnio sprawdzanego węzła, który ma gałęzie jeszcze nie rozwijane. Przykład przeszukiwania węzłów z wykorzystaniem strategii w głąb przedstawia poniższy rysunek 14, a kolejność przeszukiwanych węzłów podana jest za pomocą liczb arabskich. Węzłem celu jest węzeł zakreskowany i został on osiągnięty w kroku 11.
Rys. 14. Kolejność przeszukiwania grafu w strategii w głąb i w strategii wszerz. Źródło: opracowanie własne.
Wadą tej strategii jest to, że w przypadku dużej głębokości grafu strategia jest nieskuteczna i z dużym kosztem obliczeniowym, ponieważ węzły są badane wzdłuż jednej ścieżki aż do jej zakończenia (jak już wiadomo dopiero po zakończeniu ścieżki następuje powrót do ostatniego węzła z nierozwijaną gałęzią). Sytuacja się polepsza gdy zastosuje się mechanizm kontroli ograniczenia głębokości - rozwiązanie coraz bardziej powszechne. Jeśli chodzi o koszty pamięciowe to w pamięci znajdują się węzły z aktualnie badanej ścieżki.
Strategia wszerz (ang. breadth - first).
Kolejność przeszukiwania jest wszerz czyli przeszukuje się kolejno węzły na tym samym poziomie grafu (węzły o tej samej głębokości). Poszukiwanie rozpoczyna się od węzłów o mniejszej głębokości. Podobnie jak przy strategii w głąb ma miejsce ekspansja węzłów. Na poprzednim rysunku widać sposób przeszukiwania z wykorzystaniem również tej strategii. Są to liczby rzymskie, a węzeł celu został osiągnięty w kroku IX.
Zaleta strategii wszerz to przede wszystkim gwarancja osiągnięcia węzła celu dla lokalnie skończonych grafów, gdzie każdy węzeł ma skończoną liczbę gałęzi. Wyznaczone jest też rozwiązanie optymalne pod względem długości ścieżki rozwiązania. Z kolei wadą jest przeszukiwanie wszystkich węzłów, które mają mniejszą głębokość od głębokości węzła celu. Natomiast w pamięci przechowywane są wszystkie węzły o danej głębokości, aż zostanie wygenerowany węzeł o głębokości większej o 1.
Strategia z powracaniem (ang. backtracking).
Strategia ta jest podobna do strategii w głąb, z tą różnicą, że następuje zamiana ekspansji badanego węzła, czyli generowania wszystkich jego potomków, na generowanie tylko jednego potomka (gałęzi). W ten sposób jest rozszerzany węzeł, aż do momentu, gdy nie można wygenerować potomka. Wtedy następuje powrót do najbliższego przodka, przy którym jest możliwość wygenerowania innego potomka.
Zaletą strategii z powracaniem jest oszczędność pamięci w stosunku do strategii w głąb. Testowane są wszystkie wygenerowane węzły (tak nie musi być w strategii w głąb, gdzie od razu są generowani wszyscy potomkowi węzła, a nie wszystkie są później sprawdzane). Kosztem oszczędności pamięci jest jednak znacznie zwiększona liczba obliczeń.
Strategia zachłanna (ang. hill - climbing).
W tej strategii proces poszukiwania zaczyna się od tego, że wykonywana jest ekspansja węzłów, po której jest wybierany węzeł najbardziej obiecujący do dalszej ekspansji. Za wadę tej strategii uznaje się zwykle brak możliwości powrotu do przodka aktualnie badanego węzła (pojawia się w związku z tym problem, jeśli wybrana droga okaże się nieskończona), ale za zaletę tej metody uważa się prosty algorytm obliczeniowy.
Strategia „najpierw najlepszy” (ang. best - first).
Jest to strategia stosowana dla metody heurystycznej, gdzie do rozwiązania problemu wykorzystuje się pewną informację heurystyczną, aby zminimalizować koszty przeszukiwania. Wykorzystywana jest funkcja heurystyczna do oceny węzłów, a następnie wybrany zostaje węzeł, dla którego ta funkcja przyjmuje najmniejszą wartość (bez względu na jego położenie w grafie). Również i w tej strategii ma miejsce ekspansja węzłów do ich rozszerzania. Funkcję oblicza się ze względu na następujące kryteria:
zbieżności, czyli osiągnięcia celu,
najmniejszego kosztu drogi wyznaczanej od węzła początkowego do węzła końcowego,
najmniejszej złożoności obliczeniowej procesu przeszukiwania.
Strategia A*.
Jest to strategia, w której funkcja heurystyczna jest sumą dwóch składników, tj. kosztu drogi łączącej aktualny węzeł z węzłem celu i kosztu drogi łączącej węzeł początkowy
i aktualny. Celem jest wyznaczenie węzłów tak, aby droga w grafie była najtańsza.
Przedstawione wyżej strategie przeszukiwania są najbardziej popularne i stosowane
w systemach ekspertowych. Wybór jednej z nich jest uzależniony od różnych czynników. Takim wyznacznikiem efektywności danej strategii może być ich zachowanie w stosunku do przedstawionych kryteriów. Należy brać też pod uwagę wielkość przestrzeni przeszukiwań. Dla bliższego scharakteryzowania dyskutowanych metod podamy teraz kilka szczegółów na temat strategii wnioskowania, gdyż zwykle strategia wyszukiwania i strategia wnioskowania są ze sobą powiązane.
Metody wnioskowania w systemach ekspertowych.
Wnioskowanie w przód.
Wnioskowanie w przód nazywane jest też niekiedy progresywnym, ze względu na jego kierunek dochodzenia do celu. Przebieg wnioskowania w przód zostanie przedstawiony na przykładzie. Mechanizm wnioskowania powinien rozwiązać problem poprzez osiągnięcie postawionej hipotezy (celu). Niech tym przykładowym celem będzie wniosek E - co do którego trzeba orzec, czy jest prawdziwy, czy nie (na przykład może to być wniosek mówiący, że klientowi należy udzielić kredytu). W bazie wiedzy są dostępne pewne reguły oraz pewne fakty, z których mechanizm wnioskowania korzysta. Dla przykładu niech w przestrzeni roboczej znajdują się fakty A i B, a baza wiedzy składa się z 3 reguł R1, R2, R3:
R1: if A and B then C,
R2: if B then D,
R3: if C and D then E.
Przy metodzie wnioskowania w przód należy z nich wygenerować reguły, które mają warunki (przesłanki) zgadzające się z faktami w przestrzeni roboczej, czyli z A i B. Jak widać regułami takimi są R1 i R2. W ogólnym przypadku takich reguł może być bardzo dużo i problemem jest wybór jednej z nich albo ustalenie kolejności wykonywania pozostałych, co jest również zadaniem mechanizmu wnioskowania. Dlatego dla doboru reguł stosuje się (w ogólnym przypadku) różne strategie; w naszym przykładzie dla ułatwienia będzie to strategia „pierwsza pasująca”. Wybrana więc zostaje reguła R1. Zawiera ona fakty A i B, które są prawdziwe, ponieważ są w bazie. Z prawdziwości A i B wynika prawdziwość C, więc ten fakt zostaje dołączony do bazy wiedzy. Następnie wykonuje się reguła R2 i dołączony zostaje fakt D. I w końcu reguła R3, ponieważ zawiera ona fakty C i D, które zostały dołączone do bazy wiedzy, czyli są prawdziwe. Wskutek wykonania tej reguły zostaje wreszcie dołączony fakt E (jako konkluzja) i uznany za prawdziwy.
Wnioskowanie naszkicowane wyżej nazywa się też wnioskowaniem sterowaniem danymi, bo dodane fakty sterują mechanizmem wyboru reguł.
Cykl pracy podczas tego wnioskowania jest wykonywany wielokrotnie, tak długo, aż znajdzie się cel i doda się go do przestrzeni roboczej BW.
Ogólny algorytm dyskutowanej metody wygląda następująco:
wybór reguł, których przesłanki zgadzają się z potwierdzonymi faktami w przestrzeni roboczej BW,
wybór pierwszej reguły do wykonania,
uzupełnienie BW o nowe fakty.
Opisane kroki powtarza się aż do znalezienia potrzebnej konkluzji (lub aż do stwierdzenia, że konkluzja w zadanej postaci jest nieosiągalna).
Cechą tego wnioskowania jest to, że kolejno wszystkie istotne fakty zostają dołączone do przestrzeni roboczej BW co może z jednej strony może zapełnić dostępną pamięć operacyjną (wada), ale też z drugiej strony szybciej pozwala sprawdzić hipotezę przy wielu faktach (zaleta).
Wnioskowanie wstecz.
Wnioskowanie wstecz zwane jest regresywnym. Przebiega ono odwrotnie do wnioskowania w przód. Tutaj rozwiązanie problemu następuje poprzez hipotetyczne założenie (a'priori) o prawdziwości postawionej hipotezy (celu) - w rozważanym przykładzie jest to E. Hipotezę tę można potwierdzić, gdy osiągnie się (wnioskując wstecz) regułę związaną z faktami, które są wszystkie prawdziwe. Napotkawszy taką regułę możemy stwierdzić, reguła ta ma prawdziwą konkluzję (potwierdzoną w BW), a łańcuch wnioskowanie, który do niej doprowadził, stanowi gwarancję prawdziwości interesującej tezy E. Dla przykładu mamy te same reguły co poprzednio i te same dwa fakty A i B, potwierdzone w BW. Należy więc wykazać prawdziwość hipotezy E (fakt E jest naszym celem) stosując wnioskowanie wstecz.
Mechanizm tego wnioskowania na początku stwierdza, że E nie ma w roboczej BW. Ale konkluzja E występuje w regule R3. Jeszcze jednak nie można potwierdzić faktu E, ponieważ reguła R3 zawiera fakty C i D, które także nie występują w roboczej BW. Więc najpierw należy wykazać ich prawdziwość. To można już w miarę prosto dowieść, poprzez generowanie kolejno reguł R1 i R2, które zawierają prawdziwe fakty A i B - przez co i C oraz D stają się prawdziwe. Ostatecznie to potwierdza prawdziwość E. Uaktywniana jest więc reguła R3 i fakt E zostaje dołączony do roboczej BW.
Wnioskowanie to nazywa się wnioskowaniem sterowanym przez cel, a cykl pracy systemu podczas tego wnioskowania jest wykonywany tak długo, aż cel zostanie potwierdzony przez fakty z roboczej BW. Rozumowanie opisane wyżej w postaci formalnego algorytmu przedstawia się następująco:
wyszukiwanie reguły/reguł gdzie konkluzja odpowiada celowi/podcelom,
wybór jednej reguły stosując odpowiednią strategię,
zamiana podcelów na cel.
We wnioskowaniu wstecz (porównując je z wnioskowaniem w przód) nie można jednocześnie wykazywać kilku hipotez (wada), ale za to jest mniejsza liczba generowanych faktów i zazwyczaj krótszy czas oczekiwania na potwierdzenie hipotezy (zaleta).
Wnioskowanie mieszane.
Przy posiadaniu dwóch strategii (wnioskowania w przód i wstecz) o komplementarnych właściwościach celowe jest rozważenie możliwości zastosowania strategii mieszanej (hybrydowej). Ogranicza się ona zwykle do stosowania wnioskowania w przód i wstecz w różnych proporcjach. Przełączanie od jednej strategii do drugiej odbywa się za pomocą tzw. metareguł, które zawierają metawiedzę. Przy wnioskowaniu mieszanym w systemach ekspertowych obok bazy wiedzy musi więc znajdować się zbiór metareguł, których zbudowanie w ogólnym przypadku nie jest łatwe. Pewnym rozwiązaniem może tutaj być podział bazy wiedzy na 2 części, gdzie w jednej zgromadzone są reguły do wnioskowania w przód, a w drugiej reguły do wnioskowania wstecz. Metareguły mogą preferować to z wnioskowań, od którego najłatwiej zaczyna się wyszukiwanie odpowiednich reguł. Gdy nie osiągnie się celu wybraną drogą. to następuje automatyczne przełączenie na drugi rodzaj wnioskowania z wykorzystaniem reguł z drugiej części bazy wiedzy.
Problemem jest odpowiednie stworzenie metareguł dla rozwiązywania danych problemów. Źle pozyskana metawiedza może znacznie spowolnić otrzymanie rozwiązania.
Wnioskowanie rozmyte.
Krótko charakteryzując wnioskowanie rozmyte należy stwierdzić, że jest ono wykorzystywane w przypadku informacji niejednoznacznej, niekompletnej i niepewnej. Istotą tego podejścia jest pojęcie przynależności określonych obiektów do określonych zbiorów, jako wartości ciągłej z przedziału [0,1]. Fakty niepewne mogą być zawarte w tym zbiorze rozmytym poprzez nadanie im odpowiedniej wartości przynależności, przy czym 0 oznacza, że fakt nie należy do zbioru, 1 oznacza, że fakt na pewno należy do zbioru, pozostałe wartości określają stopień z jakim fakt przynależy do zbioru. Przynależność można niekiedy interpretować jako prawdopodobieństwo, ale nie jest to jedyna możliwa interpretacja.
Najczęściej korzysta się z reguł, gdzie konkluzja jest funkcją wartości przynależności faktów zawartych w przesłance. Funkcję tę można określić nadając wagi dla każdej z reguł (waga obliczana jako prawdopodobieństwo przynależności przesłanki). Następnie jest obliczana średnia ważona każdej konkluzji reguły.
Strategie wyboru reguł w sytuacjach konfliktowych.
Jeśli chodzi o strategie stosowane w systemach ekspertowych do wyboru jednej reguły ze zbioru reguł możliwych do uruchomienia w danej chwili to można wyróżnić:
strategię świeżości - wybór reguły najpóźniej dołączonej do danego obszaru pamięci,
strategię wyboru reguły pierwszej znalezionej, najrzadziej używanej czy najczęściej stosowanej,
strategię blokowania - powoduje ona jednokrotne wykorzystanie danej reguły dla uniknięcia nieskończonej pętli (informacji o tym, czy dana reguła była już używana dla rozwiązania określonego problemu może udzielać dodatkowe pole w rekordach danych),
strategię specyficzności - jest strategia wyboru najbardziej złożonego warunku: preferuje się reguły z większą liczbą warunków (przesłanek), a gdy to nie rozstrzygnie to wybiera się regułę z mniejszą liczbą zmiennych, lub strategia najmniej złożonego: preferuje się reguły z mniejszą liczbą warunków,
strategię priorytetu - reguły mają przypisane priorytety; w szczególności mogą mieć oddzielne priorytety przesłanki lub konkluzje reguł, co ułatwia ich wybór przy stosowaniu odpowiednio strategii wnioskowania w przód oraz wstecz,
strategię przypadkowości - reguła wybierana jest spośród kandydatów w sposób losowy (strategia ta stosowana wyłącznie w sytuacji, gdy po zastosowaniu innych strategii nadal nie dokonano wyboru tej jednej).
Zasady budowy systemów ekspertowych.
Systemy ekspertowe podobnie jak inne systemy informatyczne mają pewien specyficzny cykl tworzenia. Budowa systemu ekspertowego zazwyczaj przebiega w sześciu etapach, przy czym ukończenie realizacji określonego etapu nie wyklucza możliwości powrotu do niego. Wręcz przeciwnie, system ekspertowy w trakcie tworzenia wymaga ciągłej modyfikacji i odnosi się to do wszystkich etapów jego budowy. Cykl życia SE ma postać zbioru pętli, które odzwierciedlają konieczność powtarzania różnych działań w poszczególnych fazach tworzenia systemu. Wyróżnionymi etapami przy budowie systemu ekspertowego są:
działania początkowe,
analiza i projektowanie,
wykonanie prototypu,
tworzenie roboczej wersji SE,
wdrożenie oraz
eksploatacja.
Działania początkowe.
Etap działań początkowych sprowadza się do wyboru obszaru zastosowań przyszłego systemu oraz zdefiniowania zadania projektowego poprzez określenie celu i zakresu projektu. Należy przeprowadzić oszacowanie wymagań, wziąć pod uwagę dostępność ekspertów i innych źródeł wiedzy oraz ocenić możliwość uzyskania rozwiązań alternatywnych. Dokonując weryfikacji potrzeby utworzenia SE trzeba porównać koszty jego budowy z przyszłymi efektami jego użytkowania.
Analiza i projektowanie.
Na tym etapie należy wykonać pełny plan dalszych działań. Należy w szczególności ustalić czy projekt zostanie zrealizowany we własnym zakresie czy poprzez wybraną firmę software'ową. Ponadto trzeba określić źródła wiedzy (eksperci, wiedza udokumentowana w postaci katalogów, książek, baz danych), wybrać język programowania lub pakiet narzędziowy (shell) oraz przeprowadzić ocenę wykonalności ekonomicznej, technicznej i użytkowej planowanego systemu. Również tutaj dokonuje się analizy kosztów i zysków (którą trzeba dodatkowo weryfikować i aktualizować praktycznie po każdym z etapów).
Wykonanie prototypu.
Zbudowanie prototypu pozwala sprawdzić poprawność koncepcji systemu oraz ułatwia dalsze projektowanie. Zazwyczaj przedstawia się go przyszłemu użytkownikowi. Prototyp ma z reguły w miarę kompletny interfejs użytkownika, natomiast dysponuje jeszcze bardzo ograniczoną wiedzą i może zadowalać się bardzo uproszczonymi metodami wyszukiwania i wnioskowania.
Tworzenie systemu ekspertowego.
Po ocenie poprawności prototypu rozwija się go do pełnej postaci systemu lub też odrzuca i tworzy się system jeszcze raz od początku. Na tym etapie realizacji systemu skupia się prace głównie na utworzeniu odpowiedniej bazy wiedzy. Jakość systemu sprawdza się przy tym stosując różne kryteria, w tym także pewną namiastkę wzmiankowanego wcześniej testu Turinga, w którym porównywane są ekspertyzy pochodzące od eksperta i od systemu formułowane dla kilku testowych zagadnień. W przypadku stwierdzenia podobieństwa ekspertyz „ludzkich” i generowanych automatycznie - SE uznaje się za poprawny.
Wdrożenie.
Wdrożenia systemu ekspertowego dokonuje się po zaakceptowaniu go przez użytkownika. System ma dobrą jakość, gdy rozwiązuje ponad 75% przypadków stawianych mu zadań, a liczba błędów nie przekracza 5%. Przy wdrażaniu należy dokonać demonstracji systemu, przedstawić sposób jego użytkowania, zwrócić uwagę na zabezpieczenie systemu, zwłaszcza bazy wiedzy, oraz przeprowadzić badania w rzeczywistych warunkach.
Eksploatacja.
Ostatni etap sprowadza się do pielęgnacji i konserwacji systemu podczas jego normalnej eksploatacji przez użytkownika. Konserwacja dotyczy przede wszystkim stałej aktualizacji wiedzy oraz związanego z tym ciągłego utrzymywania bazy wiedzy w stanie spójności logicznej i poprawności formalnej.
Podstawowe zasady, jakimi należy się kierować przy zamiarze stworzeniu systemu ekspertowego są następujące:
należy uzyskać pozytywne odpowiedzi na pytania:
czy istnieją specjaliści z danej dziedziny, którzy są gotowi do współpracy z inżynierem wiedzy;
czy przyszły SE będzie mógł znaleźć szersze zastosowania u wielu odbiorców;
czy obszar problemu jest na tyle wąski, że można go określić precyzyjnie, lecz zarazem na tyle szeroki, żeby był istotny;
czy natura zadań w rozważanym zakresie wymaga stosowania rozwiązań typu heurystycznego,
po wyborze tematyki SE nie powinno się znacznie odbiegać od niej w trakcie eksploatacji, chociaż należy przewidzieć sposoby uzupełniania tej wiedzy i jej poszerzania używając do tego informacji od człowieka (inżynieria wiedzy po konsultacji z ekspertem dziedzinowym), bądź przez samouczenie się systemu,
warto pamiętać, że lepiej później rozszerzyć rozwiązania niż je zawężać,
należy mieć na uwadze fakt, że zakres zastosowań SE uzależniony jest od „problemu wiedzy” - braku jej dostępności dla pewnych osób lub w pewnych okolicznościach,
należy rozważać celowość tworzenia systemów eksperckich także dla użytkowników mających aktualnie wygodny dostęp do potrzebnych informacji, lecz zagrożonych utratą dostępu do wiedzy ze względu na perspektywę odejścia specjalisty,
wiedzę należy zorganizować na 3 poziomach: danych opisujących zadanie użytkownika, na poziomie bazy wiedzy z danego zakresu oraz na poziomie algorytmu sterującego wykorzystaniem tej wiedzy do rozwiązywania zadania,
mechanizm wnioskowania powinien być możliwie jak najprostszy; trzeba jednak zapewnić zawsze możliwość udzielania wyjaśnień na żądanie użytkownika, a także trzeba uwzględnić wymagania w sprawie zdolności SE posługiwania się informacjami niepewnymi, obciążonymi błędami, sprzecznymi itp.,
budowa systemu ekspertowego powinna być zawsze skierowana na rozwiązywanie rzeczywistych problemów, dywagacje teoretyczne nie są mocną stroną komputerów,
należy zawsze wykonać prototyp i przeprowadzić jego testowanie z udziałem przyszłego użytkownika.
Rozwiązywanie problemów niedokładnie określonych.
Problemy niepewności pojawiają się w kontekście budowy systemów eksperckich bardzo często, głównie na skutek zaistnienia pewnych sytuacji, do których zalicza się najczęściej:
niepewność danych opisujących rozwiązywane zadanie,
niepewność lub niekompletność wiedzy wynikająca z faktu, że ekspert rozważa często tylko pewne aspekty problemu z danej dziedziny, a system może się zetknąć także z innymi aspektami,
brak danych (lub konieczność oparcia się na danych niepełnych) spowodowany niedostępnością części istotnych informacji w czasie podejmowania decyzji,
naturalna stochastyczność, która charakteryzuje wiele dziedzin.
System ekspertowy powinien radzić sobie z niepewnością i niepełnością zarówno bazy wiedzy, jak i samych danych wprowadzanych przez użytkownika. W tym też celu istnieją specjalne narzędzia, które pomagają rozwiązywać te problemy. Do najczęściej używanych należą: współczynnik pewności, rachunek prawdopodobieństwa, rozumowanie rozmyte, system utrzymania prawdy.
Współczynnik pewności (ang. cerainty factor - CF) jest wartością liczbową, którą można przypisać zarówno faktom (warunkom) jak i konkluzjom. Jest on miarą możliwości zaakceptowania czy uznania danego faktu lub konkluzji. Współczynnik pewności najczęściej stosuje się do reguł, ale jego użycie jest możliwe także i w strukturze ram, w sieciach semantycznych czy w prostych stwierdzeniach. Także i w przypadku wniosków częściowych, wyciąganych przez system w trakcie jego normalnej pracy, można także z powodzeniem stosować współczynniki pewności (o czym była mowa przy omawianiu metod reprezentacji wiedzy). CF jest subiektywną kwantyfikacją opinii i intuicji eksperta. Zazwyczaj przyjmuje się, że współczynnik pewności może przyjmować wartości z określonego przedziału jak np.: [-1,1] czy [0,1]. Rozważając przedział pierwszy można się umówić, że CF = -1 oznacza całkowite odrzucenie np. konkluzji a CF = 1 jej całkowitą akceptację.
Rachunek prawdopodobieństwa ma w systemach ekspertowych ograniczone zastosowanie ze względu na trudności z właściwym określeniem (numerycznym!) prawdopodobieństwa określonego zdarzenia nawet przez samego eksperta. Dodatkowo różne fragmenty wiedzy wymagają różnych charakterystyk prawdopodobieństwa, co wiąże się z koniecznością uwzględniania przy ich wykorzystaniu kombinacji tych prawdopodobieństw. Najczęściej w automatycznym rozumowaniu probabilistycznym stosuje się prawo Bayesa zwłaszcza w rozwiązywaniu problemów diagnostycznych. Swego rodzaju rozwiązaniem problemu braku możliwości numerycznego wyznaczenia prawdopodobieństwa przez eksperta jest możliwość opisywania niepewności słowami. Stosowane są na przykład rozwiązania, w których system poza odpowiedziami użytkownika „tak” i „nie” uwzględnia także inne, jak np.: „prawdopodobnie”, „chyba”, „prawie na pewno”. Odpowiedzi takie mogą zostać wpisane na skalę niepewności, gdzie np. „prawdopodobnie” dla systemu ma wartość słabszą niż „tak”. Jest to możliwe dzięki dostępności narzędzi do symbolicznego rozumowania w systemach ekspertowych.
Z kolei rozumowanie rozmyte rozszerza logikę dwuwartościową, uznającą tylko prawdę i fałsz, o dodatkowe wartości mieszczące się pomiędzy nimi. Rozumowanie to określa pewien przedział i prawdopodobieństwo bycia w tym przedziale dla pewnego niejasnego terminu. Na rozumowaniu rozmytym oparte jest już wspominane wnioskowanie rozmyte, którego rola w rozwiązywaniu problemów niewyraźnie określonych znacznie wzrasta.
System ekspertowy może też zostać wyposażony w system utrzymania prawdy, który działa jako system zarządzania bazą wiedzy w momencie, gdy mechanizm wnioskowania tworzy nowa prawdę. System ten wykorzystuje tzw. niemonotoniczne rozumowanie, które wykorzystuje wiele tymczasowych założeń, związanych z niepełną informacją o danym problemie. Wraz z pojawiającą się w systemie nową wiedzą założenia te są rewidowane. Rozumowanie to jednak wymaga dużej pamięci do przechowywania tymczasowych założeń i znacznej ilości czasu do zmieniania poczynionych ustaleń.
Wiedza w systemach ekspertowych.
Pozyskiwanie wiedzy w systemach ekspertowych.
Wiedza eksperta a baza wiedzy.
Przy budowie systemów ekspertowych podstawowym i zarazem najtrudniejszym (obok etapu reprezentacji wiedzy) jest pozyskiwanie wiedzy (ang. knowledge acquisition). Pozyskiwanie lub inaczej akwizycja wiedzy charakteryzowana jest jako proces transformacji wiedzy eksperta, która dotyczy sposobu rozwiązania danego problemu, na wiedzę zawartą w bazie wiedzy systemu ekspertowego.
Rozwiązując różne rzeczywiste problemy można zauważyć, iż rzadko zdarza się, aby ktoś dysponował pełną wiedzą o danej dziedzinie. Dlatego często podejmuje się pewne decyzje, pomimo braku kompletnej wiedzy. Bardzo ważnymi elementami w SE, które mają pomóc przy podejmowaniu decyzji i rozwiązywaniu problemów, stają się: właściwe zbieranie informacji i danych oraz ich poprawne gromadzenie, analiza i ocena. Bowiem od tego, w jaki sposób zostanie utworzona baza wiedzy, zależy w zasadniczym stopniu poprawność, efektywność i skuteczność systemów ekspertowych.
Problemy, jakie mogą się pojawić przy pozyskiwaniu wiedzy zależą w dużym stopniu od osobowości eksperta z danej dziedziny, którego pomoc udało się nam zagwarantować. Przy akwizycji wiedzy mają miejsce najczęściej następujące sytuacje:
wiedza jest zależna od umiejętności eksperta, który może przekazać ją w sposób niekompletny lub fałszywy (ekspert potrafi świetnie rozwiązać problem, lecz nie zawsze potrafi zwerbalizować swoją wiedzę na ten temat),
ekspertowi może być trudno podać ogólne reguły prowadzące do rozwiązania danego zagadnienia, a przy podawaniu reguł często podaje także listę ograniczeń, limitujących ich stosowalność,
werbalizując wiedzę ekspert często używa ukrytych założeń, które są dla niego oczywiste, ale nie są oczywiste dla komputera korzystającego z wiedzy sformalizowanej. Jest to związane z nabywaniem przez system wiedzy zdroworozsądkowej, której pełne uwzględnienie jest zwykle niemożliwe,
ekspert może się obawiać, iż ujawnienie wiedzy może spowodować, że będzie niepotrzebny, w wyniku czego udziela informacji celowo niepełnych, nie całkiem prawdziwych, czasem nadmiarowych itp.
Akwizycja wiedzy jest ściśle związana z procesem reprezentacji wiedzy, szczególnie, gdy wiedza jest niepewna, niekompletna, czy zdroworozsądkowa. Często w takich sytuacjach, przy wybraniu nieodpowiedniej formy reprezentacji wiedzy, wiedza pozyskana i skutecznie wprowadzona do bazy wiedzy jest tylko podzbiorem wiedzy eksperta. Oczywiście dla systemów ekspertowych najbardziej odpowiednia byłaby wiedza kompletna i pewna. Poniższy rysunek nr 15 przedstawia, w jaki sposób wiedza pozyskana może odbiegać od rzeczywistej wiedzy eksperta-człowieka.
Rys. 15. Wiedza SE jako podzbiór wiedzy eksperta. Źródło: opracowanie własne na podstawie literatury.
Utrzymywanie poprawności i aktualności bazy wiedzy.
Aby system ekspertowy był dobry, powinien spełniać wymagania czasowe, które są niezwykle istotne dla ludzkiego myślenia i działania. Wiedza w BW starzeje się. Dlatego system ekspertowy powinien na bieżąco weryfikować pozyskaną wiedzę oraz proces maszyny wnioskującej.
Działanie SE może zostać ulepszone poprzez wprowadzenie m.in. mechanizmów do kontroli niesprzeczności i zgodności reguł nowo wprowadzonych do BW z regułami w niej zawartymi oraz mechanizmów do oceny częstości stosowania poszczególnych reguł. System może być wzbogacony również przez mechanizmy, które pozwolą w razie potrzeby rozbudować istniejącą bazę reguł. System ekspertowy działa właściwie, gdy baza wiedzy jest stale kompletna, oprogramowanie obsługujące BW jest dobre i istnieje możliwość ciągłego rozszerzania wiedzy o nowe fakty i nowe reguły wnioskowania.
Poza tym, aby utrzymać dobry, poprawny system ekspertowy należy dokonywać częstej weryfikacji i wartościowania wiedzy w BW. Rozważania nasze na ten temat zostaną ograniczone do regułowej reprezentacji wiedzy, ale przy innych reprezentacjach problem również występuje i ma podobny wydźwięk. Dla weryfikacji wiedzy w systemie regułowym należy stwierdzić, czy podczas eksploatacji systemu reguły były właściwie zastosowane i czy zgodnie z nimi mechanizm wnioskowania przebiegał poprawnie i skutecznie. O tym powinien zadecydować zaproszony na inspekcję ekspert. Natomiast weryfikacji systemu od strony programu dokonuje specjalista informatyk.
Baza reguł powinna być weryfikowana już w trakcie powstawania a także przy każdej zmianie jej zawartości. Należy także wspomnieć, że technikami najczęściej stosowanymi do analizy poprawności bazy reguł są tablice decyzyjne i drzewa decyzyjne, osobno opisane w tym skrypcie.
Za kryteria weryfikacji najczęściej przyjmuje się:
kompletność,
spójność.
Przez kompletność bazy reguł rozumie się gotowość bazy wiedzy do odpowiedzi na wszystkie pytania, które wyrastają z danej dziedziny. Sprawdzanie kompletności będzie zatem poszukiwaniem logicznych przypadków (reguł), które nie zostały uwzględnione
w bazie wiedzy, a powinny - bo mogą się zdarzyć. Często też sprawdzanie kompletności bazy reguł sprowadza się do rozpatrzenia przez system pewnych przypadków, jakie mogą występować dla części reguł. Są to przypadki, gdy:
nie jest określona wartość przynajmniej jednego atrybutu warunku (wartość ta nie jest zgodna z częścią warunkową przynajmniej jednej reguły) i można przypuszczać, że brakuje reguły,
atrybut przyjmuje niedopuszczalną wartość (wartość niedopuszczalną do zbioru wartości danego atrybutu) i należy błąd ten poprawić,
reguła ma nieosiągalne wartości przesłanek i nie zostanie uaktywniona, konieczne jest usunięcie reguły lub korekta błędu w źle zapisanej regule,
nie jest osiągalna pewna akcja (konkluzje reguł nie odpowiadają faktom występującym
w przesłankach innych reguł) i następuje przerwanie wnioskowania, konieczne jest uzupełnienie zbioru reguł lub korekta błędu w postaci zmian przesłanek,
nie jest osiągalny pewien ważny cel (nie zawiera go konkluzja żadnej reguły), koniecznej jest dodanie brakujących reguł.
Z kolei badanie spójności jest poszukiwaniem wiedzy konfliktowej i wiedzy redundantnej. Wiedza konfliktowa wskazuje na to, że warunki (przesłanki) reguł nie zostały wystarczająco precyzyjnie określone, pozwalając systemowi na różne akcje (konkluzje)
w tych samych warunkach. Wiedza redundantna (nadmiarowa, dublująca inne znane fakty) nie jest wprawdzie bezpośrednią przyczyną błędów we wnioskowaniu, ale niepotrzebnie poszerza przestrzeń poszukiwań i pogarsza sprawność działania systemu.
Sprawdzanie spójności bazy reguł jest najczęściej związane z poszukiwaniem:
reguł redundantnych (redundancyjnych)
Reguły są redundantne jeżeli osiągają te same konkluzje w tych samych warunkach . Dwie reguły R1 i R2, gdzie:
R1:JEŻELI p(x) i q(x) TO r(x),
R2:JEŻELI p(y) i q(y) TO r(y),
są redundantne jeżeli ich przesłanki są równoważne i konkluzje są równoważne. Przesłanki są równoważne wtedy i tylko wtedy, gdy przesłanki te mają taką samą liczbę warunków i każdy warunek jednej przesłanki jest równoważny warunkowi drugiej przesłanki.
reguł konfliktowych (sprzecznych)
Reguły są konfliktowe jeżeli w tych samych warunkach osiągają sprzeczne konkluzje. Oznacza to, że przesłanki są równoważne a konkluzje są sprzeczne, tak jak poniżej:
R1:JEŻELI p(x) i q(x) TO r(x),
R2:JEŻELI p(x) i q(x) TO z(x).
reguł zawierających się w innych regułach (pochłanialnych)
Reguła zawiera drugą regułę, jeżeli reguły te mają te same konkluzje i zbiór warunków przesłanki jednej reguły jest podzbiorem właściwym zbioru warunków przesłanki drugiej reguły. Na przykład dla reguł:
R1:JEŻELI p(x) i q(x) TO r(z),
R2:JEŻELI p(x) TO r(z),
reguła R1 zawiera R2.
reguł tworzących pętlę
Reguły tworzą pętlę, jeżeli łańcuch tych reguł tworzy cykl, tak jak dla przykładu poniższe reguły:
R1:JEŻELI p(x) TO q(x),
R2:JEŻELI q(x) TO r(x),
R3:JEŻELI r(x) TO p(x).
Jeśli chodzi o proces wartościowania wiedzy, to zazwyczaj stosuje się następujące kryteria:
adekwatność - dotyczy porównania wiedzy SE z wiedzą eksperta,
kompletność - obejmuje porównanie BW SE z całą wiedzą niezbędną do rozwiązania problemu,
wiarygodność - potwierdzenie prawdziwości wiedzy zawartej w SE, pokazanie, że wykorzystanie pewnych fragmentów BW zagwarantuje osiągnięcie celu,
spójność - czynnik świadczący o efektywnym reprezentowaniu wiedzy w SE, ale nie przesądzający o jej dyskwalifikacji.
Procesu wartościowania wiedzy dokonuje ekspert. Natomiast od strony programu zajmuje się tym inżynier i rzeczoznawca.
Istnieją różne inne podejścia odnoszące się do badania poprawności bazy wiedzy. Badanie to może być sprawdzaniem zgodności i zupełności. Zgodność wyraża fakt, że wiedza tworzy bazę niesprzeczną, acykliczną, bez reguł redundancyjnych i pochłaniających, natomiast zupełność zapewnia, że do każdej sensownej hipotezy istnieje ścieżka od pewnych faktów początkowych, a także odwrotnie: od każdego faktu możemy do jakiejś końcowej hipotezy. Jeśli nie udaje się wykazać zupełności bazy wiedzy, to winę za to ponosi brak reguł w bazie lub przerwa logiczna w „zazębianiu” reguł wnioskowania.
Stworzona baza wiedzy ma ogromny wpływ na działanie systemu ekspertowego. Dlatego wiedzę w BW należy poprawnie oceniać poprzez wspomniane wyżej procesy jej weryfikacji i wartościowania. Dla skuteczności działania SE wiedzę trzeba także stale aktualizować, gdyż z czasem staje się mniej wartościowa. System oparty na nie aktualizowanej bazie wiedzy jest bezużyteczny i na podstawie wnioskowania takiego systemu ekspertowego decydent może podjąć decyzję, która przyniesie mu znaczne straty.
Proces tworzenia bazy wiedzy.
W tym podrozdziale spróbujemy pokazać, jak należy konstruować taką bazę wiedzy, aby system ekspertowy oparty na niej działał najlepiej? W fachowej literaturze stwierdzono, że wiedzę od eksperta należy pozyskiwać stopniowo. Dlatego proces konstruowania BW zostaje podzielony na następujące fazy:
Faza I - identyfikacja problemu, gdzie inżynier wiedzy wspólnie z ekspertem przystępują do zdefiniowania problemu. Zastanawiają się nad sposobem rozwiązania tego problemu poruszając przy tym zagadnienia związane z metodologią, potrzebnymi zasobami wiedzy oraz możliwością podziału problemu na podproblemy.
Faza II - reprezentacja, której efektem powinno być znalezienie odpowiedniego sposobu reprezentowania wiedzy. Najpierw inżynier wiedzy wraz z ekspertem przystępują do ustalenia potrzebnych informacji i danych, a następnie zbierają i gromadzą te informacje, dane i heurystyki, które stanowić będą wiedzę o rozwiązywanym problemie. W przypadku braku pewnych danych należy próbować je zastąpić lub pomyśleć o innych alternatywnych rozwiązaniach nie wymagających tych danych. Z fazą tą związane są sposoby nabywania wiedzy do BW, które zostaną przedstawione w dalszej części pracy.
Faza III - formalizacja problemu, dotycząca przełożenia koncepcji, reguł i relacji na język formalny. Etap ten obejmuje także zaprojektowanie struktur organizujących wiedzę.
Faza IV - implementacja, gdzie inżynier wiedzy dokonuje połączenia sformalizowanej wiedzy i powstaje pewna struktura, zestaw ram i reguł zawierających wiedzę. Wynikiem realizacji tej fazy jest prototypowy system ekspertowy.
Faza V - testowanie, czyli sprawdzanie stworzonego zestawu reguł i ram. Relacje sprawdzane są pod kątem zgodności wygenerowanych przez nie odpowiedzi
z odpowiedziami, których by sobie życzył ekspert. Wskazane jest, aby system był przetestowany poprzez takiego eksperta z danej dziedziny, który nie brał udziału w budowie tego systemu ekspertowego. Może on bowiem mieć ciekawe spostrzeżenia jeśli chodzi o wprowadzone do systemu elementy wiedzy i inne informacje, a także może zaproponować zupełnie nowe zapytania do systemu oraz zgłosić istotnie nowatorskie uwagi co do odpowiedzi, które generuje system. Na podstawie testowania należy ocenić system ekspertowy. Najczęściej ocena taka obejmuje próbę odpowiedzi na następujące kwestie:
czy system zadaje pytania w sposób naturalny i wyczerpujący,
czy system udziela porad zbliżonych do porad niezależnego eksperta,
czy porady te są w pełni zrozumiałe dla użytkownika i udzielone w odpowiednim czasie,
czy system udziela wymaganych wyjaśnień.
Metody nabywania wiedzy.
Jeśli chodzi o metody nabywania wiedzy i jej wprowadzanie do bazy wiedzy to wyróżnia się następujące metody:
Manualne nabywanie wiedzy - podstawą tego działania jest relacja człowiek-człowiek-komputer, gdzie inżynier wiedzy kontaktuje się z ekspertem w celu uzyskania potrzebnej wiedzy, a następnie umieszcza tę wiedzę w bazie wiedzy; jak już wiemy głównie ekspert stanowi źródło wiedzy dziedzinowej ogólnej, jak i wiedzy nabytej poprzez praktykę i doświadczenie, co przyspiesza proces rozwiązywania problemu; przekazanie wiedzy eksperta inżynierowi wiedzy dokonuje się poprzez rozmowę, obserwację bierną lub czynną eksperta przy pracy,
Półautomatyczne nabywanie wiedzy - podstawą tego działania relacja człowiek-komputer, która polega na udostępnianiu ekspertowi szkieletowego systemu komputerowego wyposażonego w moduł pozyskiwania wiedzy, za pomocą którego ekspert może samodzielnie wprowadzać wiedzę do SE.
Automatyczne nabywanie wiedzy - korzysta się tu z metod maszynowego uczenia się, zaś baza wiedzy jest tworzona automatycznie na podstawie przykładów ze znikomym udziałem eksperta. Taki sposób gromadzenia wiedzy ma coraz większe znaczenie.
Uwagi końcowe
Przedstawiony tu przegląd zagadnień nie wyczerpuje oczywiście całokształtu problematyki systemów ekspertowych, daje jednak czytelnikom wstępny pogląd na temat tego, czym jest system ekspertowy, jak go można zbudować i do czego go można używać. Należy oczekiwać, że w miarę doskonalenia tej techniki wzrastać także będzie liczba okazji pozwalających poznać systemy ekspertowe także w codziennej praktyce gospodarczej.
por. [Kwaśnicka, 1995], ss.10-13.
por. [Coveney i in., 1997], s.169.
Obecna tendencja rozwojowa systemów ekspertowych w kierunku problemów słabo ustrukturalizowanych m.in. z wykorzystaniem sieci neuronowych, jest stosunkowo nowa.
[Mulawka, 1996], s.208.
por.: [Waterman, 1986]
A. Baborski, Wiedza i sztuczna inteligencja, [w:] [Owoc, 1991], s.8.
B. Smok, Pojęcie systemu ekspertowego, [w:] [Baborski, 1994], s.36.
J. Liebowitz, cyt. za [Stefanowicz, 1993], s.81.
por.: [Słownik ..., 1992]
Asocjacja to kojarzenie, łączenie się wyobrażeń i wrażeń w taki sposób, że pojawienie się w świadomości jednego z nich powoduje wystąpienie pozostałych.
[Stefanowicz, 1993], s.84.
[Mulawka, 1996], s.29.
Obejmują takie dziedziny jak: operacje przestrzeni kosmicznej, monitorowanie i sterowanie elektrowni jądrowych, kontrola ruchu lotniczego, interpretacja sygnałów radarowych, monitorowanie procesów produkcyjnych, finanse, giełda, itp.
[Bubnicki, 1990], s.1.
[Bubnicki, 1990], ss.5-9.
M. Minsky, cyt. za [Mulawka, 1996], s.17.
E. Feigenbaum, cyt. za [Mulawka, 1996], s.17.
[Bubnicki, 1990], s.1.
[Baborski, 1997], s.8.
[Mulawka, 1996], s.24.
[Mulawka, 1996], s.25.
[Mulawka, 1996], s.26.
[Stefanowicz, 1993], s.84.
M. Owoc, Kierunki zastosowań systemów ekspertowych w zarzadzaniu, [w:] [Baborski, 1994], s.77.
Ibidem, s.76.
Jest to system logiki, gdzie występują tylko dwie wartości logiczne: prawda i fałsz; wartości boolowskie 0 i 1 oraz operatory boolowskie: i, lub, zaprzeczenie; związany z tym sposób wnioskowania.
Jest to system logiki, gdzie obok prawdy i fałszu przyjmuje się inne wartości logiczne (np. możliwości); zdania mogą przyjmować więcej niż dwie wartości, rzadziej stosowana.
Istotą logiki rozmytej jest pojęcie przynależności jako wartości ciągłej z przedziału [0,1]. Zdanie mające wartość 0 oznacza, że nie należy do zbioru; mające wartość 1 oznacza, że należy do zbioru;; pozostałe wartości określają prawdopodobieństwo z jakim zdanie przynależy do zbioru.
por.: [Zieliński, 2000], s.29.
[Mulawka, 1996], ss.38-42.
[Mulawka, 1996], s.27.
Zestaw pytań charakteryzujących analizowane zastosowania przedstawiony jest w pracy: [Stanek, 1994], ss.41,42.
[Stanek, 1994], ss.26-31.
R. Forsyth, Expert Systems. Principles and case studies, cyt.za: [Kwaśnicka, 1995], s.10.
Na podstawie [Mulawka, 1996], ss.22,23.
L. Bolc, M. Cichy, L. Różański, Przetwarzanie języka naturalnego,[w:] [Kwaśnicka, 1995], s.12.
Chodzi tutaj przede wszystkim o sieci neuronowe i algorytmy genetyczne.
[Mulawka, 1996], s.32.
[Mulawka, 1996], s.31,32 .
[Zieliński, 2000], s.32.
W logice formalnej wykonywane są działania na zdaniach posiadających wartość logiczną (prawda, fałsz), bez względu na treść tych zdań. SE oparte tylko na klasycznej logice mają tendencje do nadmiarowości bazy. Rachunek predykatów to rozszerzenie rachunku zdań o kwantyfikatory, zob. [Mulawka, 1996], ss.46-47,
54-56.
Wektory wiedzy są swego rodzaju uogólnienie reguł, zob.: [Mulawka, 1996], ss.52,53.
W ten sposób reprezentuje się zwykle wiedzę potrzebną do rozwiązywania prostych problemów z dziedzin elementarnych jak matematyka czy fizyka, zob.: [Mulawka, 1996], s.67 i następne.
[Mulawka, 1996], ss.47,48.
Są to spójniki logiczne: negacja, koniunkcja, alternatywa, implikacja, równoważność.
[Mulawka, 1996], ss.48-52.
[Zieliński, 2000], s.37.
[Mulawka, 1996], ss.57,58.
[Mulawka, 1996], ss. 62,63.
Rama dziedziczy klatki członkowskie klasy ram, z którą ma połączenie przez członkostwo; klasa ram (ramy reprezentujące klasę) ma połączenie przez podklasę do jednej lub więcej innych klas ram.
[Mulawka, 1996], ss.58 i następne.
[Sroka, 1994], ss.43-46.
[Zieliński, 2000], ss.29,30.
W odniesieniu do systemów ekspertowych opartych na regułowej reprezentacji wiedzy; reguły jak wiadomo są jedną z kilku form przedstawiania wiedzy w SE.
[Sroka, 1994], s.38.
[Zieliński, 2000], s.31.
[Mulawka, 1996], s.72 i n.
[Mulawka, 1996], s.75.
Na podstawie [Mulawka, 1996], s.76.
[Mulawka, 1996], s.77.
[Mulawka, 1996], s.81-83.
[Mulawka, 1996], s.84,85.
Zob. J. Jakubczyc, Systemy sztucznej inteligencji, [w:] [Baborski, 1994] oraz [Mulawka, 1996], s.88 i następne.
[Zieliński, 2000], s.43.
[Zieliński, 2000], ss.45-48.
[Stefanowicz, 1993], ss.88-92.
[Zieliński, 2000], s.44.
Chodzi tutaj o prawo Bayesa dla prawdopodobieństwa warunkowego, gdzie każda hipoteza ma pewne prawdopodobieństwo początkowe (przedział od 0 do 1), które można zmodyfikować pod wpływem dodatkowych faktów; prawo jednak dotyczy zdarzeń niezależnych co nie często zdarza się w przypadku reguł.
M. Owoc, J. Surma, cyt. za: J. Surma, Pozyskiwanie wiedzy w systemach zarządzania, [w:] [Baborski, 1994], s.46.
[Mulawka, 1996], s.114.
M. Ochmańska, Wybrane metody weryfikacji wiedzy, [w:] [Baborski, 1997], s.79 i n.
[Owoc, 1997], s.123 i n.
[Smok, 1994], ss.111-114.
[Owoc, 1991], s.90.
77
planująco-harmonogra-
-mujące
Typ zadania
proceduralne
Duża
Rozmiar i złożoność systemu
Mała
Zawartość bazy wiedzy
wiedza wyartykułowana przez eksperta
wiedza nabyta przez inżyniera wiedzy
wiedza eksperta
Łatwe
Trudne
diagnostyczne
monitorujące
konfiguracyjno-projektujące