Systemy ekspertowe
Wstęp: Narastająca wraz z rozwojem wiedzy złożoność problemów w wielu dziedzinach zmusza do sięgnięcia po metody, które umożliwią opanowanie i uporządkowanie nawału danych i informacji, ujmując potoki informacyjne w systemy komputerowe, które przyjęłyby role gromadzenia, przechowywania oraz przetwarzania danych, a także odpowiedniego ich udostępniania. Tym ważniejsze, że umysł ludzki ma ograniczoną zdolność przetwarzania i wykorzystania informacji. Jak wykazują badania liczba informacji przetwarzanych jednocześnie w umyśle człowieka wynosi ok. 7, a przy większej ich liczbie proces analizy odbywa się sekwencyjnie, porcjami też po 7.
Szybkość działania komputera, pojemność pamięci, bezbłędne operacje w bardzo złożonym labiryncie logicznym z możliwością szybkiego docierania do zadanych informacji, ich selekcjonowania i agregowania według wieloparametrowych relacji określanych przez użytkownika, stały się bezcenne w tworzeniu i obsłudze baz danych w wielu dziedzinach. Badania z zakresu sztucznej inteligencji dowiodły, że w wielu dziedzinach, w tym i w obszarze ekonomii i zarządzania, pewne czynności konsultacyjne mogą być odwzorowane w postaci algorytmu matematyczno-logicznego. Tym samym stało się możliwe zbudowanie programów z bazą wiedzy zdolnych do samodzielnego rozwiązywania problemów, stawiania diagnoz i formułowania porad.
Systemy ekspertowe - są programami komputerowymi przeznaczonymi do rozwiązywania specjalistycznych problemów wymagających profesjonalnej ekspertyzy. Zorganizowane są w zasadzie w ten sposób, że wiedza dotycząca danej dziedziny jest odseparowana od reszty systemu.
Inżynieria wiedzy - dziedzina pozyskiwania i przetwarzania wiedzy, z którą są związane systemy ekspertowe. Wiedza uznawana jest obecnie za najważniejszą wartość w rozwoju cywilizacji. Doświadczenia państw zachodnich pokazują, że wygrywają przedsiębiorstwa mające duży kapitał wiedzy i umiejętność jej wykorzystania. Ich wartość giełdowa jest znacznie większa niż firm z podobnymi obrotami - ale z produktem mniej „inteligentnym”.
Istota Zintegrowanych Systemów Informatycznych: Działalność produkcyjna Wiedza i informacja biznesowa Czas Przewaga konkurencyjna
Koncepcje systemów ekspertowych: Określenie „system ekspertowy” może być zastosowane do dowolnego programu komputerowego, który na podstawie szczegółowej wiedzy może wyciągać wnioski i podejmować decyzje, działając w sposób zbliżony do procesu rozumowania człowieka. Należałoby jednak termin system ekspertowy używać w szerszym znaczeniu, niekoniecznie bowiem system ten zastępuje eksperta- człowieka.
W wielu sytuacjach, np. podczas podejmowania decyzji w siłowniach energetycznych, podczas sterowania skomplikowanych urządzeń i maszyn, na pokładzie statków kosmicznych itd., człowiek nie mógłby swymi zmysłami ogarnąć całej sytuacji. Są więc potrzebne systemy, które pracują w czasie rzeczywistym i wykonują swoje funkcje lepiej niż człowiek. Z tego względu przez system ekspertowy należałoby rozumieć program komputerowy przeznaczony do rozwiązywania specjalistycznych problemów, które wymagają profesjonalnej ekspertyzy.
Porównanie ekspertyzy naturalnej z ekspertyzą sztuczną: Ekspertyza naturalna, wykonana przez człowieka Ekspertyza sztuczna Wady tracąca na wartości z upływem czasu trudna do przeniesienia trudna do dokumentacji nie dająca się przewidzieć kosztowna Zalety stała łatwa do przeniesienia łatwa do dokumentacji zgodna z bazą wiedzy dostępna twórcza adaptacyjna wykorzystane zmysłów szeroki zakres wiedza zdrowego rozsądku nie inspirująca wymaga wprowadzenia wiedzy wejścia symboliczne wąski zakres wiedza przetwarzana w sposób mechaniczny
Kategorie systemów ekspertowych: Systemy doradcze - prezentują rozwiązania dla użytkownika, który jest w stanie ocenić ich jakość. Użytkownik może odrzucić rozwiązanie oferowane przez system i zażądać innego rozwiązania. Systemy podejmujące decyzje bez kontroli człowieka są same dla siebie końcowym autorytetem. Są używane np. do sterowania różnymi obiektami, gdzie udział człowieka jest utrudniony lub wręcz niemożliwy. Systemom krytykującym jest przedstawiany problem jak też jego rozwiązanie. System dokonuje w tym przypadku analizy i komentuje uzyskane rozwiązanie.
Podstawowe bloki systemu ekspertowego: Fakty Reguły Baza wiedzy Maszyna wnioskująca wraz z jednostką sterującą
Struktura systemów ekspertowych: Rozważając szczegółowo strukturę systemów ekspertowych możemy w niej wyróżnić następujące podstawowe elementy: baza wiedzy (np. zbiór reguł), baza danych (np. dane o obiekcie, wyniki pomiarów, hipotezy), procedury wnioskowania - maszyna wnioskująca, procedury objaśniania - objaśniają strategię wnioskowania, procedury sterowania dialogiem - procedury wejścia/wyjścia umożliwiają formułowanie zadań przez użytkownika i przekazywanie rozwiązania przez program, procedury umożliwiające rozszerzanie oraz modyfikację wiedzy- pozyskiwanie wiedzy.
Budowa systemu ekspertowego: System doradczy Kontroler wywodu Baza wiedzy Interfejs Wyniki Dane
Baza wiedzy: - jest częścią systemu w której zebrana jest wiedza z danej dziedziny oraz reguły podejmowania decyzji przez eksperta. Informacje te mogą być przechowywane w różnej postaci, ale zawsze są podstawą wnioskowania. Niemożliwe jest istnienie systemu ekspertowego bez bazy wiedzy bowiem taki system jest jedynie uniwersalną platformą, w której po umieszczeniu analogicznie reprezentowanej bazy wiedzy z innej dziedziny otrzymujemy nowy system doradczy.
Kontroler wywodu Interfejs - część systemu kierująca rozwiązaniem problemu, odpowiedzialna za sposób wnioskowania, poprawne wykorzystanie wiedzy, obsługę sporadycznie występujących sytuacji. Również bez kontrolera wywodu system ekspercki nie zadziała, ponieważ nie będzie potrafił wykorzystać posiadanej wiedzy. Interfejs - część systemu odpowiedzialna jest za komunikację z użytkownikiem (wprowadzanie danych) i wyprowadzanie wyników działania. Program bez interfejsu nie wykona żadnych czynności z powodu braku danych (nawet gdyby je posiadał to nie mógłby wyprowadzić wyników).
Rodzaje systemów ekspertowych: Aby ocenić system ekspertowy należy najpierw odpowiedzieć na pytania, co otrzymujemy na jego wyjściu. Otóż wyniki te możemy podzielić na trzy zasadnicze grupy: diagnozy, prognozy oraz plany. Diagnoza to ocena stanu istniejącego na podstawie posiadanych danych Prognoza jest to przewidywanie stanu przyszłego na podstawie istniejących danych. Plan wreszcie jest rozumiany jako opis pewnego stanu, do którego należy dążyć.
Ze względu na sposoby realizacji systemy ekspertowe możemy podzielić na dwie grupy: Systemy dedykowane są tworzone od podstaw przez inżyniera wiedzy współpracującego z informatykiem. Systemy szkieletowe (shells) są to systemy z pustą bazą wiedzy. Proces tworzenia finalnego systemu ekspertowego jest w tym przypadku krótszy niż w pierwszym, gdyż jest wymagane tylko pozyskanie wiedzy i jej odpowiednia implementacja w systemie.
Ze względu na metodę prowadzenia procesu wnioskowania systemy ekspertowe dzieli się na systemy: z logiką dwuwartościową (Boole'a), z logiką wielowartościową, z logiką rozmytą. Ze względu na rodzaj przetwarzanej informacji systemy ekspertowe dzielą się na dwie grupy: systemy z wiedzą pewną, czyli zdeterminowaną, systemy z wiedzą niepewną, w przetwarzaniu której wykorzystuje się przede wszystkim aparat probabilistyczny.
Cykl projektowania systemu ekspertowego: Etap projektowania informacyjnego: Wydzielanie dziedziny przedmiotowej; Nabywanie wiedzy; Wybór rodzaju systemu (od podstaw lub w oparciu o system szkieletowy); Projekty szczegółowe modułów: - mechanizm wnioskujący; - baza wiedzy; - moduł współpracy z użytkownikiem.
Etap projektowania informatycznego: Wybór metody programowania (język symboliczny lub język ogólnego przeznaczenia); Programowanie. Weryfikacja; Wdrożenie.
Typowy proces pozyskiwania wiedzy: Inżynier wiedzy Dane, problemy, pytania Wiedza, koncepcje, rozwiązania Wiedza strukturalizowana Ekspert dziedziny Baza Należy zdawać sobie sprawę, że dużą trudnością podczas procesu akwizycji wiedzy stanowić może nastawienie eksperta do inżyniera wiedzy. Przyczyną złego nastawienia może być poczucie zagrożenia, różnica wieku, posługiwanie się różnymi językami specjalistycznymi, wrogi stosunek do komputeryzacji, obawa przed utratą strefy wpływów.
Problem akwizycji wiedzy: Ponieważ pozyskanie i strukturalizacja wiedzy eksperta jest zajęciem pracochłonnym, więc wysiłek włożony w utworzenie systemu ekspertowego jest uzasadniony wówczas, gdy będzie on wykorzystywany w długim odstępie czasu przez wystarczająco dużą liczbę użytkowników. Okazuje się, że moc programu ekspertowego (w zakresie rozwiązywania danego problemu) tkwi w zakodowanej w nim wiedzy, a nie w formalizmie i schematach wnioskowania, których ten program używa. Tak więc problem z posiadaniem pełnej wiedzy tkwi w bazie wiedzy, a nie w sposobie realizacji procesu wnioskowania systemu ekspertowego.
Sposoby pozyskiwania wiedzy eksperta: Obserwacja eksperta w miejscu pracy. Inżynier wiedzy staje się wówczas biernym obserwatorem, starając się uzyskać wgląd na złożoność problemu. Dyskusja problemu. Celem takiej dyskusji jest określenie sposobu organizacji wiedzy eksperta o problemie. Opisywanie problemu. W etapie tym ekspert opisuje problem dla każdej mogącej się pojawić kategorii danych wejściowych, podawanych przez użytkownika. Pomaga to sformułować prototypowy problem; później następuje selekcja strategii rozwiązania problemu.
Analizowanie problemu Analizowanie problemu. Inżynier wiedzy stawia ekspertowi do rozwiązania szereg problemów, badając sposób rozumowania eksperta w trakcie ich rozwiązywania. Właściwa analiza przyczynia się wydatnie do poprawnego zrozumienia problemu oraz opracowania efektywnej metody jego rozwiązania. Lepiej jest zbyt dokładnie przeanalizować problem, niż dokonać analizy w sposób niezadowalający. Udoskonalanie systemu. Ekspert zadaje inżynierowi wiedzy problemy do rozwiązania, począwszy od bardzo łatwych, a skończywszy na dość trudnych. W ten sposób ekspert przekonuje się czy przekazał swoją wiedzę we właściwy sposób. Jest to jak gdyby sprzężenie zwrotne między inżynierem wiedzy a ekspertem.
Testowanie systemu. W tym etapie ekspert testuje i wydaje opinie a każdej regule w prototypowym systemie ekspertowym, a także ocenia strategie stosowaną do wyboru reguł. Dzięki temu sprawdza się, czy koncepcje wyrażone w sposób abstrakcyjny zostały prawidłowo zaimplementowane w systemie. Legalizacja systemu. Prototyp systemu ekspertowego powinien być udostępniony innym ekspertom w celu oceny poprawności merytorycznej działania i krytyki systemu. Wniesione poprawki mają umożliwić udoskonalenie systemu.
Baza wiedzy: Konstrukcja właściwej bazy wiedzy jest podstawą poprawnego funkcjonowania systemu ekspertowego. Wymaga ona wyboru odpowiednich faktów z dziedziny działania systemu, uniknięcia błędów i wyboru odpowiedniej struktury dla tych faktów. Podczas tworzenia bazy wiedzy należy odpowiedzieć sobie na następujące pytania: Jakie obiekty należy zdefiniować? Jakie są relacje między obiektami? Jak należy formułować i przetwarzać reguły? Czy pod względem rozwiązania specyficznego problemu baza wiedzy jest kompletna i spójna?
Etapy konstruowania bazy wiedzy: Identyfikacja - określenie charakterystyki problemu do rozwiązania (ekspert i inżynier wiedzy określają problem do rozwiązania i jego zakres - ponadto określają potrzebne środki); Reprezentacja - znalezienie sposobu reprezentacji wiedzy (przeprowadzana jest analiza problemu, bardzo istotne jest przeprowadzenie jej w gruntowny sposób, co niweluje występowanie trudności w późniejszym czasie. Gdy problem jest już zrozumiały należy przystąpić do ustalenia informacji oraz danych potrzebnych do jego rozwiązania a następnie zacząć je kompletować);
Formalizacja - zaprojektowanie struktur organizujących wiedzy (przełożenie kluczowych koncepcji, reguł i relacji na język formalny. Inżynier wiedzy powinien zaprojektować syntaktykę i semantykę tego języka, a następnie wraz z ekspertem ustalić wszystkie podstawowe pojęcia i relacje, które są niezbędne do rozwiązania postawionego problemu); Implementacja - sformułowanie reguł lub ram zawierających wiedzę (inżynier wiedzy łączy i reorganizuje sformalizowaną wiedzę tak, aby stała się zgodna z charakterystyką przepływu informacji danego problemu. Powstały zestaw reguł lub ram i powiązana z nimi struktura kontrolna tworzy prototypowy program); Testowanie - sprawdzenie zastosowanych w systemie reguł lub ram (reguły i relacje są sprawdzane pod kątem generowania przez nie odpowiedzi zgodnych z wymaganiami eksperta.).
Badanie poprawności bazy wiedzy: Testowanie spójności polega na wykrywaniu reguł zbędnych, sprzecznych, pochłaniających, reguł z niepotrzebnym warunkiem oraz reguł zapętlonych. Redundancja bazy wiedzy występuje wówczas, gdy pojawiają się reguły zbyteczne. Dwie reguły są redundancyjne, jeśli obie ich części warunkowe są równocześnie spełnione lub nie spełniane we wszystkich możliwych sytuacjach np.: Przy czym atrybut a może przyjąć dwie wartości: L i R. Mimo, ze redundancja powoduje nadmiarowość bazy wiedzy, proces wnioskowania odbywa się bez przeszkód, chociaż jest wymagane przeszukiwanie większej liczby reguł.
Dwie reguły są sprzeczne (konfliktowe) wówczas, gdy ich części warunkowe są równocześnie spełnione lub nie spełnione we wszystkich możliwych sytuacjach i ich części konkluzyjne są różne dla przynajmniej jednej sytuacji, np.: Przy czym atrybut d może przyjąć dwie wartości: H i L. Niektóre systemy do sprawdzania poprawności bazy wiedzy pokazują sprzeczne reguły, umożliwiając inżynierowi wiedzy eliminację tego błędu.
Jedna reguła jest pochłaniana przez inną wówczas, gdy część warunkowa pierwszej reguły jest spełniona, jeśli jest spełniona część warunkowa drugiej reguły (odwrotne stwierdzenie nie jest prawdziwe) i części konkluzyjne obu reguł są identyczne. Na przykład reguła jest pochłania prze regułę Pochłaniające reguły dają podobny efekt jak reguły zredundowane (jeżeli pierwsza reguła daje się zastosować, to druga także).
Dwie reguły mają niepotrzebne warunki, jeśli obie są pochłaniane przez trzecią regułę. Baza reguł może nie zawierać tej trzeciej reguły i w takiej sytuacji sprawdzanie pochłaniania nie daje rezultatu. Następujące dwie reguły mają niepotrzebne warunki: Przy czym warunkowy atrybut a może mieć wartości L i R. Obie reguły są pochłaniane przez regułę W tym przypadku efekt jest podobny jak dla redundancji reguł.
Zestaw reguł tworzy pętlę, jeżeli uaktywnienie tych reguł jest cykliczne. Trzy reguły Tworzą pętlę, gdy w bazie wiedzy istnieją następujące fakty
Wielokrotne odwołanie do jednego atrybutu zachodzi wówczas, gdy w części warunkowej występuje kilka członów zawierających ten sam atrybut. W przypadku, gdy odwołania są identyczne, wówczas powtarzające się warunki są zbędne. Natomiast w przypadku, gdy nie są one identyczne, wówczas reguła nigdy nie będzie uaktywniona, ponieważ atrybut nie może jednocześnie przyjmować kilku wartości, np. Wielokrotne odwołanie do jednego atrybutu w części wynikowej jest błędem logicznym, stwarzającym domniemanie wystąpienia błędnego powiązania atrybutu wynikowego z jego wartością.
Sprawdzanie kompletności bazy reguł polega na poszukiwaniu brakujących reguł. W niektórych rozwiązaniach sprawdza się, czy istnieje reguła dla każdej kombinacji atrybutu przesłanki i wartości, jaką atrybut może przyjąć. Większość systemów w celu sprawdzenia poprawności reguł rozpatruje różne przypadki, jakie mogą się zdarzyć dla części reguł: nie określone wartości przesłanek, niedopuszczalne wartości atrybutów, nieosiągalne wartości przesłanek, nieosiągalna akcja (uaktywnienie reguły) i nieosiągalny cel. Wartość atrybutu warunku jest nie określona wówczas, gdy nie jest zgodna z częścią warunkową przynajmniej jednej reguły. Niekoniecznie oznacza to, ze jakaś reguła nie została wprowadzona do bazy wiedzy (jest to jednak możliwe). Sytuacja ta oznacza, ze zbiór wartości atrybutów w częściach warunkowych reguł jest mniejszy od zbioru możliwych wartości atrybutów.