Systemy eksperowe
Agnieszka Nowak – Brzezińska Wykład I
Zakres materiału:
• Metody wnioskowania w regułowych bazach wiedzy
• PC-Shell jako narzędzie do budowy szkieletowych systemów ekspertowych (Sprawozdanie z własnej bazy wiedzy)
• Zbiory przybliżone: podstawowe pojęcia, usuwanie
niespójności z tablic decyzyjnych, generowanie reduktu i rdzenia tablicy decyzyjnej, generowanie reguł minimalnych.
(kolokwium nr 1)
• Rachunek zdań I i II rzędu. Rachunek predykatów. (kolokwium nr 2) + Prolog.
• Rachunek perceptów.
• Reprezentacja wiedzy niepewnej. (kolokwium nr 1)
• Sieci semantyczne i Ramy jako alternatywna do regułowej reprezentacja wiedzy.
Przebieg egzaminu:
• Egzamin ma formę pisemną i ustną. Składać się będzie zarówno z części praktycznej
(rozwiązywanie zadań) jak i teoretycznej (wiadomości z wykładów).
Architektura SE
Pojęcia z dziedziny systemów ekspertowych
• Inżynieria wiedzy - dziedzina sztucznej inteligencji zajmująca się projektowaniem i realizacją systemów ekspertowych.
• Inżynier wiedzy – projektant SE, osoba łącząca wiedzę na temat technik budowy SE z umiejętnością pozyskiwania i formalizacji wiedzy eksperckiej.
• Akwizycja wiedzy – proces pozyskiwania wiedzy niezbędnej do realizacji systemu ekspertowego.
• Na proces składają się: rozpoznanie problemu, wywiady z ekspertem, oraz reprezentacja wiedzy eksperta. Akwizycja kończy się w momencie zapisania wiedzy eksperta w bazie wiedzy SE.
Właściwości systemów ekspertowych:
• Są narzędziem kodyfikacji wiedzy;
• Mają zdolność rozwiązywania problemów specjalistycznych, w których dużą rolę odgrywa doświadczenie a wiedza ekspercka jest dobrem rzadkim i kosztownym;
• Zwiększają dostępność ekspertyzy;
• Zapewniają możliwość prowadzenia jednolitej polityki przez centralę firm mających wiele oddziałów;
• Poziom ekspertyzy jest stabilny – jej jakość nie zależy od warunków zewnętrznych i czasu pracy systemu;
• Jawna reprezentacja wiedzy w postaci zrozumiałej dla użytkownika końcowego;
• Zdolność do objaśniania znalezionych przez system rozwiązań;
• Możliwość przyrostowej budowy i pielęgnacji bazy wiedzy.
Przyczyny tworzenia systemu ekspertowego (uogólnione):
• tylko jeden (lub bardzo niewielu) specjalista posiada niezbędną wiedzę, co grozi jej utratą;
• ekspertyza jest wymagana często lub jest niezbędna w wielu miejscach;
• ekspertyza jest niezbędna w miejscach
niedostępnych dla człowieka lub szkodliwych dla zdrowia.
Wnioskowanie
Typy wnioskowania
• Wnioskowanie w przód (data driven)
• Wnioskowanie wstecz (goal driven)
• Wnioskowanie mieszane
Sterowanie wnioskowaniem
Mechanizm wnioskowanie w przód
Mechanizm wnioskowanie w przód
Idea wnioskowania wstecz
Algorytm wnioskowania wstecz
Mechanizm wnioskowania wstecz dla
hipotezy „v”
Idea wnioskowania mieszanego
Dodatkowo…
• WnioskowanieR.pdf
Prezentacja algorytmy RETE
Przykład dla regułowej bazy wiedzy z 9 regułami:
Fakty: a1 , b1, d4 R1: a1 & b1 -> c1 R2: a1 & b2 -> c2 R3: a1 & b3 -> c1 R4: b3 & d3 -> e1 R5: b3 & d2 -> e1 R6: b3 -> e2
R7: d4 -> f1
R8: d4 & g1 -> f1 R9: a1 -> d4
Przykład dla regułowej bazy wiedzy z 9 regułami:
Fakty: a1 , b1, d4 R1: a1 & b1 -> c1 R2: a1 & b2 -> c2 R3: a1 & b3 -> c1 R4: b3 & d3 -> e1 R5: b3 & d2 -> e1 R6: b3 -> e2
R7: d4 -> f1
R8: d4 & g1 -> f1 R9: a1 -> d4
Fakty: a1 , b1, d4 R1: a1 & b1 -> c1 R2: a1 & b2 -> c2 R3: a1 & b3 -> c1 R4: b3 & d3 -> e1 R5: b3 & d2 -> e1 R6: b3 -> e2
R7: d4-> f1
R8: d4& g1 -> f1 R9: a1 -> d4
Czyli teoretycznie dla takich faktów jak a1, b1 i d4 można
uaktywnić reguły:
r1,r7 i r9.
Algorytm RETE (1974 r.)
1. Graf budujemy tak, że od korzenia (root) prowadzimy tyle węzłów ile mamy atrybutów w częściach warunkowych reguł: „a”,”b”,”d”,”g”
2. Następnie od każdego węzła „atrybut” prowadzimy węzły z wartościami
atrybutów z przesłanek reguł…np. od „a” prowadzimy węzeł „1” (czy „a1”) ale od b już prowadzimy „1”,”2” i „3” bo w regułach mamy przesłanki typu b1,b2,b3
3. Gdy jakaś reguła ma więcej niż jedną przesłankę prowadzimy węzeł łączący wartości atrybutów tworzące przesłanki np. a1 & b1
4. Węzły końcowe (terminalne) stanowi numer porządkowy (ID) reguły.
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b
root
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b
root
Końcowy Graf RETE
korzeń atrybut
Wartość atrybutu (przesłanka reguły, jedna lub więcej. To tzw. Węzły typu alfa, beta)
Węzeł terminalny – ID reguły
Pojawia się fakt: a1 …więc zapalamy węzły z a1
Reguła r9 zostaje dodana do „conflict set” i bierzemy kolejne fakty…
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b
root
r9 Conflict set
Conflict set
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b Pojawia się fakt: b1 …więc zapalamy węzły z b1 root
Reguła r1 zostaje dodana do „conflict set” i bierzemy kolejne fakty…
r9 r1
Conflict set
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b Pojawia się fakt: d4 …więc zapalamy węzły z d4 root
Reguła r7 zostaje dodana do „conflict set” i kończymy bo nie ma więcej faktów…Inne reguły nie były niepotrzebnie analizowane r9
r1 r7
Algorytm RETE krok po kroku
1. Tworzymy graf skierowany (acykliczny) gdzie węzłami są elementy tworzące części
przesłankowe reguł a liśćmi są numery porządkowe reguł.
2. Następnie dopasowujemy fakty do węzłów w grafie i te reguły, które mogą być uaktywnione zapisujemy w tzw. CONFLICT SET w formie stosu.
3. W zależności od wybranej strategii LIFO/FIFO uaktywniamy reguły.
Wnioskowanie…dla strategii LIFO
r9 r1 r7
r9 r1
r7
d4 c1
f1 NOWE FAKTY…
a1 b1 d4 f1 c1 d4
Kierunek generowania faktów
Wnioskowanie…dla strategii FIFO
r9 r1 r7
r7 r1
r9
f1 c1
d4 NOWE FAKTY…
a1 b1 d4 d4 c1 f1
Kierunek generowania faktów
Wnioskowanie…dla strategii FIFO
r9 r1 r7
r7 r1
r9
c1 f1 NOWE FAKTY… d4
Kierunek generowania faktów
Wnioskowanie…dla strategii LIFO
r9 r1 r7
r7 r1 r9
f1 c1 d4
NOWE FAKTY…
Kierunek generowania faktów
Pseudokod algorytmu RETE
Procedure RETE() {
Graph := CreateGraphRETE(R);
ConflictSet:= MatchingRules(K,Graph);
newFacts:=ActiveAgenda(ConflictSet,strategy);
return newFacts;
}
R- reguły K- fakty
CreateGraphRETE – generuje graf z warunkowych części reguł.
MatchingRules(K,Graph) – dopasuje fakty do węzłów w grafie i zapisuje do ConflictSet te reguły które można uaktywnić!
ActiveAgenda – zgodnie z wybraną strategią Lifo albo Fifo uaktywnia reguły z ConflictSet i wyprowadza nowe fakty.
Metody realizacji systemów ekspertowych w środowisku systemu PC-Shell
Właściwości:
• są narzędziem kodyfikacji wiedzy eksperckiej,
• mają zdolność rozwiązywania problemów specjalistycznych, w których duża rolę odgrywa doświadczenie a wiedza ekspercka jest dobrem rzadkim i kosztownym.
• zwiększają dostępność ekspertyzy,
• zapewniają możliwość prowadzenia jednolitej polityki przez centralę firm mających wiele oddziałów,
• poziom ekspertyzy jest stabilny - jej jakość nie zależy od warunków zewnętrznych i czasu pracy systemu,
• jawna reprezentacja wiedzy w postaci zrozumiałej dla użytkownika końcowego,
• zdolność do objaśniania znalezionych przez system rozwiązań,
• możliwość przyrostowej budowy i pielęgnacji bazy wiedzy.
Zastosowania
• analiza ryzyka,
• ocena wniosków kredytowych, uczestników przetargów,
• monitorowanie, diagnostyka, predykcja,
• wspomaganie procesów diagnostycznych,
• analiza i interpretacja danych,
• instruktaż, dydaktyka, szkolenia.
Tworzenie systemu ekspertowego
Ogólna charakterystyka szkieletowego systemu ekspertowego PC-Shell
PC–Shell jest podstawowym elementem pakietu sztucznej inteligencji Sphinx®
• PC–Shell jest dziedzinowo niezależnym narzędziem do budowy systemów ekspertowych, posiada właściwości hybrydowe, wykorzystuje elementy architektury tablicowej;
• wykorzystuje różne metody reprezentacji wiedzy:
1. deklaratywna w postaci reguł i faktów, 2. wiedza rozproszona w sieci neuronowej,
3. imperatywna w formie programu algorytmicznego,
4. faktograficzna w formie tekstów, grafiki, dźwięku, sekwencji wideo;
• system zapewnia wyjaśnienia:
1. jak (ang. how), 2. dlaczego (ang. why), 3. co to jest (ang. what is), 4. metafory (ang. metaphor), 5. opisu faktów;
• wykorzystywane jest wnioskowanie wstecz (z nawrotami),
• bazy wiedzy mogą być parametryzowane,
• system ma możliwość bezpośredniego pozyskiwania informacji z baz danych (ODBC), wykorzystuje mechanizm DDE,
• system PC–Shell współpracuje z innymi elementami pakietu – systemem Neuronix przeznaczonym do tworzenia sieci neuronowych, systemem CAKE przeznaczonym do wspomagania pracy
inżyniera wiedzy oraz realizującym funkcje systemu dbMaker, zarządzającego bazami wyjaśnień.
Architektura SE
Struktura BW
Blok deklaracji źródeł wiedzy
Wykłady z PC-Shella
• http://zsi.tech.us.edu.pl/~nowak/zaocznese/tworzenieBW.pdf
• http://zsi.tech.us.edu.pl/~nowak/zaocznese/Sphinx.pdf
Drools
Jess
Wnioskowanie w Jess/Drools
Wnioskowanie c.d.
Tworzenie BW
Przykładowa BW
BW w Jess
WinJess – przykładowe narzędzie JESS
BW w PC-Shell
PC-Shell
Podsumowanie
Laboratorium nr 1
• Wnioskowanie w regułowych bazach wiedzy.
Wykonanie ćwiczeń 1-6.
Przykład1
Dana jest baza wiedzy :
• R1: Jeżeli„a” i „b” i „c” to „d”
• R2: Jeżeli„a” i „b” to „g”
• R3: Jeżeli„b” i „c” to „e”
• R4: Jeżeli„a” i „c” to „f”
• R5: Jeżeli„e” i „b” i „c” to „f”
Dane sa fakty : „a”, „b”, „c”.
Wyprowadź całą możliwą wiedzę z systemu.
Przykład2
Dana jest baza wiedzy :
• R1: Jeżeli „a” i „b” i „c” to „d”
• R2: Jeżeli „a” i „d” to „g”
• R3: Jeżeli „a” i „f” to „b”
• R4: Jeżeli „b” i „g” to „f”
• R5: Jeżeli„a” i „e” to „f”
• R6: Jeżeli„e” i „f” to „a”
• R7: Jeżeli „a” i „b” to „c” Dane są fakty : „a” i „e”.
Udowodnić hipotezę „g”.
Ćwiczenie 3
• Dana jest baza wiedzy:
• R1: Jeżeli „b” i „d” to „f”
• R2: Jeżeli „a” to „b”
• R3: Jeżeli„e” i „f” to „g”
• R4: Jeżeli „b” i „c” to „e”
• Fakty: „a”, „c” i „d”. Szukane „b”
Ćwiczenie 4
• Dana jest baza wiedzy:
• R1: Jeżeli „j” i „k” to „l”
• R2: Jeżeli „j” to „n”
• R3: Jeżeli „n” i „m” to „o”
• R4: Jeżeli „n” i „l” to „m”
• Fakty: „j”, „k”, „l”, „p”. Szukane „p”.
Ćwiczenie 5
• Dana jest baza wiedzy:
• R1: Jeżeli „l” i „m” to „n”
• R2: Jeżeli „j” to „o”
• R3: Jeżeli „j” i „k” to „m”
• R4: Jeżeli „n” i „o” to „p”
• Fakty: „j”, „k”, „l”. Szukane „p”.