WYKŁAD 2 SYSTEMY EKSPERTOWE cz.2
STRUKTURA BAZY WIEDZY Baza wiedzy Baza reguł Baza rad Baza ograniczeń Pliki rad Baza modeli
Przypomnienie - warunki dopytywalne i niedopytywalne Warunki dopytywalne: nie są wnioskami reguł. Wartość logiczna tych warunków jest określana przez użytkownika systemu ekspertowego. Warunki niedopytywalne: są wnioskami reguł. Wartość logiczna tych warunków jest określana przez system ekspertowy
Przypomnienie – bazy reguł elementarne i rozwinięte Ze względu na sposób występowania warunków niedopytywalnych rozróżniam: bazy reguł elementarne: warunki niedopytywalne nie występują w postaci zanegowanej bazy reguł rozwinięte: warunki niedopytywalne mogą występować w postaci zanegowanej
Przypomnienie – bazy reguł dokładne i przybliżone Ze względu na pewność reguł, warunków i wniosków rozróżnia się: bazy reguł dokładne, których reguły są prawdą, których warunki i wnioski mogą być albo prawdą, albo nieprawdą bazy reguł przybliżone, których reguły, warunki i wnioski mogą mieć różne stopnie pewności
BAZA OGRANICZEŃ Baza ograniczeń zawiera zbiory warunków dopytywalnych wykluczających się. Klauzule bazy ograniczeń: ograniczenie(Nr_ograniczenia, Lista_warunków_dopytywalnych_ _wykluczających_się) np.: (”temperatura jest wyższa od 40ºC”, ”temperatura jest niższa od 10 ºC”, ”temperatura jest pomiędzy 10ºC i 40ºC”).
Baza modeli Rozróżniamy modele: 1. Arytmetyczne: a. elementarne b. rozwinięte c. liniowe d. wielomianowe 2. Relacyjne:
Model Model (Numer_modelu, warunek_startowy, Wynik/Wniosek, Pierwszy_Argument, Operacja/Relacja, Drugi_Argument, Wyświetlanie) Warunek_startowy jest logiczną zmienną łańcuchową. Wynik modelu jest wyznaczany tylko gdy Warunek_startowy jest prawdą Warunek_startowy “bez warunku” jest zawsze prawdą.
Model cd. Wynik – rzeczywista zmienna łańcuchowa dla modelu arytmetycznego. Wniosek - logiczna zmienna łańcuchowa dla modelu relacyjnego Pierwszy_Argument, Drugi_Argument - rzeczywiste lub całkowite zmienne łańcuchowe, zarówno dla modelu arytmetycznego jak i dla modelu relacyjnego
Model cd. “+”, “-”, “”, “/”, “div”, “mod”, Operacja/Relacja: - modele arytmetyczne z dwoma argumentami wykonują operacje: “+”, “-”, “”, “/”, “div”, “mod”, - modele arytmetyczne z jednym argumentem wykonują operacje “sqrt”, “sin”, “cos”, “tan”, “arctan”, “ log”, “ln”, “exp”, “round”, “trunc”, “abs”, “=”, przy czym Drugi_Argument= “ 0”
Model cd. Operacja/Relacja - modele relacyjne testują relacje: “>”, “==”, “<”, “>=”, “<=”, “><”, “<>” Wyświetlanie – = 0 informacja o stosowaniu modelu nie jest wyświetlana w trakcie wnioskowania. = 1 informacja o stosowaniu modelu jest wyświetlana w trakcie wnioskowania
Model cd. Sens modelu arytmetycznego: model(Nr_Modelu, “Start”, “Wynik”, “X1”, “+”, “X2”,wyświetlanie) Jeżeli Start jest prawdą to Wynik = X1 + X2 Sens modelu relacyjnego: model(Nr_Modelu, “Start”, “Wniosek”, “X1”, “<=”, “X2”, , Wyświetlanie) Jeżeli Start jest prawdą i X1 <= X2 to Wniosek jest prawdą
Zagnieżdżanie modeli Zagnieżdżanie modeli arytmetycznych: wynik jednego modelu może być argumentem innego modelu. Zagnieżdżanie modeli relacyjnych: wniosek jednego modelu może być warunkiem stosowania innego modelu.
Zagnieżdżanie modeli Modele relacyjne i reguły mogą się zagnieżdżać: wniosek modelu relacyjnego może być warunkiem reguły: model(N, War_start_M, Wniosek_N, A, “R_N”, B, 1]) regula(M, Wniosek_M, [...,Wniosek_N,..])
Zagnieżdżanie modeli Zagnieżdżanie reguł i modeli: wniosek reguły może być warunkiem startowym modelu: regula(N, Wniosek_N, Lista_warunków) model (M, Wniosek_N, Wynik_M, A ,”op_M”, B, 1)
Zagnieżdżanie modeli Zagnieżdżające się modele mogą mieć argumenty dwojakiego rodzaju: Argumenty dopytywalne: nie są wynikami modeli. Wartość tych argumentów jest określana przez użytkownika systemu ekspertowego Argumenty niedopytywalne: są wynikami modeli. Wartość liczbowa tych argumentów jest określana przez system ekspertowy
Zagnieżdżanie modeli Zagnieżdżające się modele mogą mieć warunki startowe dwojakiego rodzaju: Warunki startowe dopytywalne: nie są wynikami modeli ani wnioskami reguł. Wartość tych warunków startowych jest określana przez użytkownika systemu ekspertowego Warunki startowe niedopytywalne: są wnioskami modeli relacyjnych lub wnioskami reguł. Wartość logiczna tych warunków startowych jest określana przez system ekspertowy
Baza rad Klauzule bazy rad: rada(numer_reguły/modelu, nazwa_pliku_rady_dla_reguły/modelu) Każdej regule i każdemu modelowi może być przyporządkowana co najwyżej jedna rada
Dynamiczna baza danych Dynamiczna baza danych jest bazą relacyjną. Podstawowe relacje: - prawda(Warunek) = „Warunek jest prawdą” - nieprawda(Warunek) = „Warunek jest nieprawdą” Zawiera deklaracje użytkownika odnośnie do warunków dopytywalnych albo warunki niedopytywalne, uznane za prawdziwe w wyniku dotychczasowych wnioskowań.
Metody wnioskowania Wnioskowanie w przód (forward chaining, od warunków do wniosku) Wnioskowanie wstecz (backward chaining, od hipotezy do warunków) Przeznaczenie wnioskowania elementarnego dokładnego w przód Wyznaczenie - dla danej bazy wiedzy - wszystkich faktów i wszystkich wartości zmiennych wynikających: - z warunków dopytywalnych, które zostały uznane przez użytkownika za fakty, oraz - z argumentów dopytywalnych, których wartości zostały zadeklarowane przez użytkownika.
Przeznaczenie wnioskowania elementarnego dokładnego w przód Nie jesteśmy informowani: o wnioskach nie wynikających z warunków dopytywalnych uznanych przez użytkownika za fakty, oraz o wynikach, których wartości nie można wyznaczyć z wartości argumentów dopytywalnych zadeklarowanych przez użytkownika
Przeznaczenie wnioskowania elementarnego dokładnego w przód Przeznaczone dla baz wiedzy BED, tzn. dla baz nie zawierających zanegowanych warunków niedopytywalnych. Można stosować dla baz z zanegowanymi warunkami dopytywalnymi.
Algorytm wnioskowania w przód System typu ‘forward chaining’ jest strategią wnioskowania rozpoczynającą się od znanych faktów. Następnie odpytywany jest zestaw reguł w celu zidentyfikowania reguł odpowiadających danemu zestawowi faktów i ewentualnemu dodaniu nowych faktów do pamięci roboczej. Proces ten trwa aż do momentu kiedy nie można już uzyskać żadnych nowych faktów lub osiągnięty jest stan docelowy. System ten w skrócie jest procesem dedukcyjnym, który używa znanych faktów do przejścia przez pamięć roboczą i zestaw reguł w celu wygenerowania nowych faktów.
Wnioskowanie elementarne dokładne w przód: przykład (a) A C H B E Dynamiczna baza danych: Fakty 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Baza Reguł Nowy fakt: D A C H D B E 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Nowy fakt: L A C H D B E L
Wnioskowanie elementarne dokładne w przód: przykład (b) Dynamiczna baza danych: Fakty Baza Reguł 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J A C H D B E L F Nowy fakt: F A C H D B E L F G Nowy fakt: G 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J
Wnioskowanie elementarne dokładne w przód: przykład (c) 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Baza Reguł A C H D B E L F G J Dynamiczna baza danych: Fakty Nowy fakt:J B E L F A C H D G J M 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Nowy akt:M
Wnioskowanie elementarne dokładne w przód z bazą ograniczeń: A H D Dynamiczna baza danych: Fakty 1. (A , C, E) 2. (B, H) Baza Ograniczeń Baza Reguł 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Nowy fakt: D Z faktów A i H wynika tym razem tylko fakt D.
Słabość wnioskowania elementarnego dokładnego w przód - Wyznacza wszystkie wnioski będące prawdą, nawet te, które nie są dla użytkownika interesujące
Przeznaczenie wnioskowania elementarnego dokładnego wstecz Weryfikowanie hipotez Hipoteza: wniosek reguły, którego prawdziwość próbuje się potwierdzić na podstawie: warunków dopytywalnych uznanych za fakty, oraz argumentów dopytywalnych o znanych wartościach
Wnioskowanie elementarne dokładne wstecz Przeznaczone dla baz wiedzy BED, tzn. dla baz nie zawierających zanegowanych warunków niedopytywalnych. Można stosować dla baz z zanegowanymi warunkami dopytywalnymi.
Algorytm wnioskowania wstecz System typu ‘backward chaining’ jest strategią wnioskowania, która rozpoczyna się od hipotezy ( docelowego stanu ) i działa wstecz poprzez kolejne reguły w celu stworzenia nowej hipotezy i zestawu faktów dostępnych w danym momencie. Poprzez dotarcie do początkowego zestawu faktów, udowadnia się prawdziwość hipotezy.
Wnioskowanie elementarne dokładne wstecz: przykład (a) Weryfikacja hipotezy F 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Baza Reguł A C H B E Dynamiczna baza danych: Fakty Brak F Czy jest C i D? 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J B E A C H Jest C, brak D.
Wnioskowanie elementarne dokładne wstecz: przykład (b) Weryfikacja hipotezy F 1. A D 2. F , H G 3. B L 4. D , J M 5. C , D F 6. A , E J Baza Reguł B E F A C H Dynamiczna baza danych: Fakty Czy jest A? Jest A, więc jest D, więc jest F
Sprzeczności w elementarnych dokładnych bazach reguł (1) 1. Sprzeczności typu SED1: wniosek reguły jest tożsamy z jednym z jej warunków. Możliwe są następujące typy tej sprzeczności: Reguła jest zewnętrznie SED1-samosprzeczna, jeżeli jednym z jej warunków jest jej wniosek. Np.: 1. M , N , X X
Sprzeczności w elementarnych dokładnych bazach reguł (2) Reguła n jest zewnętrznie bezpośrednio SED1-sprzeczna z regułą m, jeżeli: wniosek reguły m jest warunkiem reguły n, i wniosek reguły n jest warunkiem reguły m. Np.: 1. M , N , Y X 2. P , Q , X Y Zastąpienie warunku X reguły 2 warunkami reguły 1 czyni z reguły 2 regułę 3 będącą zewnętrznie SED1-samosprzeczną: 3. P , Q , M , N , Y Y
Sprzeczności w elementarnych dokładnych bazach reguł (3) Reguła n jest zewnętrznie pośrednio SED1-sprzeczna z regułą m, jeżeli podstawienie reguły m do innej reguły, tej zaś do jeszcze innej itd., doprowadza do reguły bezpośrednio SED1-sprzecznej z regułą n. Np. reguła 1 jest zewnętrznie pośrednio SED1-sprzeczna z regułą 3: 1. K , B H 2. C , D , X K 3. H , A X Pośrednikiem jest tutaj reguła 2. Podstawienie warunków reguły 3 w miejsce warunku X reguły 2 daje bowiem regułę 4: 4. C , D , H , A K która jest zewnętrznie bezpośrednio SED1-sprzeczna z regułą 1.
Nadmiarowości w elementarnych dokładnych bazach reguł (1) 1. Nadmiarowości typu NED1_1: występowanie reguł o jednakowych wnioskach i jednakowych warunkach. Np.w przypadku reguł: 1. A , B , G Y 2. C , D A 3. E , F B 4. C , D , E , F, G Y reguła 4 ma takie same warunki i taki sam wniosek jak reguła 1 wraz z regułami 2 i 3.
Nadmiarowości w elementarnych dokładnych bazach reguł (2) 2. Nadmiarowości typu NED1_2: występowanie reguł subsumowanych. Np.w przypadku reguł 1. A , B , C , D W 2. A , B W reguła 1 jest subsumowana (zawarta) w regule 2, gdyż obydwie mają taki sam wniosek, a warunki reguły 2 są podzbiorem warunków reguły 1. Regułę 1 można więc usunąć z bazy reguł.
Nadmiarowości w elementarnych dokładnych bazach reguł (3) 2. Nadmiarowości typu NED2: Źródłem nadmiarowości typu NED2 jest interakcja elementarnej dokładnej bazy reguł i bazy ograniczeń. Np 1. A , B , C W 2. A , B , D W 3. A , B , E W Baza Reguł Baza Ograniczeń 1. (C , D , E) redukują się do: 1. A , B W Baza Reguł
Wnioskowanie rozwinięte dokładne w przód Wnioskowanie rozwinięte dokładne w przód jest wnioskowaniem w przód dla baz reguł rozwiniętych dokładnych, tzn. baz dokładnych mogących zawierać zanegowane warunki niedopytywalnych. Wnioskowanie to można stosować również dla baz reguł elementarnych dokładnych Konwencja: W - warunek niezanegowany nW - warunek zanegowany
Wnioskowanie rozwinięte dokładne w przód Istotna różnica: w trakcie wnioskowania zapamiętuje się w dynamicznej bazie danych nie tylko wnioski prawdziwe (jak w przypadku wnioskowania elementarnego dokładnego), lecz również wnioski nieprawdziwe. Wnioski nieprawdziwe mogą bowiem okazać się warunkami reguł.
Wnioskowanie rozwinięte dokładne w przód Cel wnioskowania: Wyznaczenie wszystkich wniosków prawdziwych i wszystkich wniosków nieprawdziwych dla: danego początkowego zbioru prawdziwych i nieprawdziwych warunków dopytywalnych danej bazy reguł rozwiniętej dokładnej i odpowiadającej jej bazy ograniczeń - danego początkowego wartości argumentów danej bazy modeli dokładnej
Wnioskowanie rozwinięte dokładne wstecz Wnioskowanie rozwinięte wstecz jest wnioskowaniem wstecz dla baz reguł rozwiniętych dokładnych, tzn. mogących zawierać zanegowane warunki niedopytywalnych. Wnioskowanie to można stosować również dla baz reguł elementarnych dokładnych.
Wnioskowanie rozwinięte dokładne wstecz Cel wnioskowania: Potwierdzenie (weryfikowanie) lub zaprzeczenie (falsyfikowanie) iż dana hipoteza wynika z: - danego początkowego zbioru prawdziwych i nieprawdziwych warunków dopytywalnych - danej bazy reguł rozwiniętej dokładnej i odpowiadającej jej bazy ograniczeń
Potrzeba wnioskowania przybliżonego dla szeregu zastosowań systemów ekspertowych podejmowanie poprawnych decyzji wymaga rezygnacji z logiki arystotelowskiej i zastąpienia jej logiką przybliżoną Paradoks: aby nasze decyzje były bardziej poprawne, należy wnioskować w sposób przybliżony
Przybliżony charakter reguł, modeli i faktów może być właściwym i użytecznym odbiciem skomplikowanej rzeczywistości jeżeli reguły stosowane przez ekspertów nie są całkowicie pewne i jeżeli eksperci różnią się w ocenie tego, czy coś jest czy nie jest faktem, wyprowadzane przez nich wnioski oczywiście nie mogą być całkowicie pewne;
ponieważ jednak w oparciu o te wnioski trzeba częstokroć podejmować trudne i odpowiedzialne decyzje, dobrze jest umieć oszacować stopień pewności owych wniosków; dlatego zasadnym jest postulat, by niepewność ekspertów znalazła odzwierciedlenie w systemach ekspertowych korzystających z wiedzy owych ekspertów.
Istota wnioskowania przybliżonego Wnioski i warunki nie przyjmują wartości ze zbioru stałych logicznych: “prawda” i “nieprawda”, lecz wartości ze zbioru współczynników pewności CF (Certainty Factor): -1<=CF <=1
Budowa bazy wiedzy przybliżonej Baza reguł (przybliżonych) Baza modeli (przybliżonych) Baza ograniczeń dokładnych Baza ograniczeń przybliżonych Baza rad
Wnioskowanie elementarne przybliżone przy czym: CF=1 warunek dopytywalny jest prawdą CF= –1 warunek dopytywalny jest nieprawdą CF= 0 warunek dopytywalny jest nieokreślony CF= 0.5 warunek dopytywalny jest być może prawdą CF= –0.5 warunek dopytywalny jest być może nieprawdą
Wnioskowanie elementarne przybliżone CF= – 1 CF=1 CF Wzrost pewności – malenie niepewności Wzrost niepewności – malenie pewności
Wnioskowanie elementarne przybliżone Każdej regule jest przyporządkowany współczynnik pewności reguły CF (Certainty Factor), będący liczbą z przedziału [-1, 1]: regula(Nr, Wniosek, Lista_warunków, CF) Współczynniki pewności reguł CF są elementami bazy reguł
Wnioskowanie elementarne przybliżone Jeżeli warunek dopytywalny A ma współczynnik pewności CF_A, to warunek dopytywalny nie_A ma wspólczynnik pewności CF_nie_A= – CF_A, i na odwrót: A(CF_A) nie_A(– CF_A) Współczynnik pewności warunku dopytywalnego zanegowanego jest równy dopełnieniu do 0 współczynnika pewności tego warunku.
Definicja bazy ograniczeń dokładnych Zawiera listy warunków dokładnych wzajemnie wykluczających się. ograniczenie(3, [”Wiek <=30 lat”, ”30 lat <Wiek<40 lat”, ”40 lat<Wiek”] ) CF(”Wiek <=30 lat”) = -1 CF(”40 lat <=Wiek”) = -1 CF(”30 lat <Wiek < 40 lat”) = 1
Wady i zalety Zaletą tego typu reprezentacji wiedzy jest łatwość uzupełniania wiedzy (tzn. powiększanie, uzupełnianie, wymienianie lub zmniejszanie zapasów wiedzy). Struktura reguły jest bardzo przejrzysta i umożliwia łatwe budowanie baz wiedzy wąsko-dziedzinowej, a to z kolei znacznie zwiększa efektywność wnioskowania. Wadą tego typu metod reprezentacji wiedzy może być: brak możliwości „uczenia się” systemu na podstawie poprzednich doświadczeń małe zdolności oceny problemu z różnych punktów widzenia (dla zadanych faktów prezentowana jest na ogół stale ta sama linia rozumowania)
w bardzo dużych systemach można spotkać się z : Wady i zalety c.d w bardzo dużych systemach można spotkać się z : - nakładaniem się warunków logicznych, - trudnościami w śledzeniu linii rozumowania podczas rozwiązywania problemów (ang. backtracking), - małą efektywnością realizacji spowodowaną sekwencyjnym przetwarzaniem reguł składniowych.