wiszące drzewo

Transkrypt

wiszące drzewo
2016 © Adam Meissner
Instytut Automatyki i Inżynierii Informatycznej
Politechniki Poznańskiej
Adam Meissner
[email protected]
http://www.man.poznan.pl/~ameis
SZTUCZNA INTELIGENCJA
Architektury systemów eksperckich
Literatura
[1] Chwiałkowska E., Sztuczna inteligencja w systemach eksperckich, Wyd. MIKOM, Warszawa, 1991.
[2] Cichosz P., Systemy uczące się, WNT, Warszawa, 2000.
[3] Lebowitz J., The Handbook of Applied Expert Systems,
CRC Press, 1998.
[4] Martinek J., Materiały do wykładów z przedmiotu sztuczna
inteligencja, prowadzonych w latach 1998 - 2008 na Wydz.
Elektrycznym Politechniki Poznańskiej.
[5] Puppe F., Systematic Introduction to Expert Systems,
Springer-Verlag, 1993.
[6] Russell S.J., Norvig P., Artificial Intelligence: A Modern Approach, Prentice Hall, New Jersey, 2009.
1
2016 © Adam Meissner
Plan wykładu
1.Wprowadzenie.
2.Metody pozyskiwania (akwizycji) wiedzy od ekspertów.
3.Metody reprezentowania i przetwarzania wiedzy.
4.Zagadnienia komunikacji z użytkownikiem i udzielania
objaśnień.
5.Środowiska do tworzenia systemów eksperckich.
6.Podsumowanie.
Wprowadzenie
znaczenie terminu „system ekspercki”
„System ekspercki to program komputerowy wyposażony
w wiedzę i umiejętności wnioskowania właściwe dla specjalistów z pewnej dziedziny” [5]
typowa architektura systemu eksperckiego (wg. [5])
użytkownik
interfejs z
użytkownikiem
przypadki
specyficzne,
dotyczące
analizowanego
problemu
ekspert
moduł
udzielania
objaśnień
moduł
akwizycji
wiedzy
wiedza
dziedzinowa
eksperta
mechanizm wnioskujący
wyniki pośrednie oraz rozwiązanie problemu
2
2016 © Adam Meissner
rys historyczny
 lata 50-te: rozwój teorii gier, zdefiniowanie podstawowych strategii prowadzenia gier dwuosobowych (np.
strategia minimaksowa), badania nad algorytmami
przeszukiwania heurystycznego (np. algorytm A*),
 lata 60-te: skonstruowanie pierwszych systemów rozwiązujących proste problemy, np. GPS (Newell A, Simon H.) oraz SHRDLU (Winograd T.), badania nad automatycznym wnioskowaniem – zdefiniowanie reguły
rezolucji (Robinson J.R.),
 lata 70-te: ukształtowanie się koncepcji systemu eksperckiego, powstanie pierwszych systemów eksperckich, takich jak:
 MYCIN (Feigenbaum E., 1976) – diagnozowanie bakteryjnych zakażeń krwi, regułowa reprezentacja wiedzy, wnioskowanie na podstawie współczynników
pewności,
 CADUCEUS (Uniw. Pittsburgh, 1974 - ok. 1985) –
diagnozowanie chorób wewnętrznych, zaimplementowany w języku INTERLISP, rozpoznaje ok. 1000 tj.
75% wszystkich znanych jednostek chorobowych,
problem współwystępowania chorób,
 PUFF (1979) – system diagnozowania chorób płuc,
zaimplementowany z wykorzystaniem powłoki EMYCIN, duża trafność postawionych diagnoz (ok. 85%),
3
2016 © Adam Meissner
 DENDRAL (Feigenbaum E., Buchanan B., Lederberg
J.) – określanie struktury związku chemicznego na
podstawie analizy spektralnej, zaimplementowany w
INTERLISPie, generowanie i testowanie hipotez,
 PROSPECTOR (SRI Int., przełom lat 70/80) – interpretowanie map geologicznych, odkrycie bogatych
złóż rudy molibdenu w stanie Washington (wartych
ok. 1 mld USD),
 MACSYMA – (MIT, początek lat 70-tych) – wykony-wanie obliczeń symbolicznych, zaimplementowany
w języku LISP, popularny wśród matematyków i inżynierów,
 HERSAY I i II (Uniw. Carnegie-Mellon) – rozpozna-wanie mowy, pionierskie rozwiązania z zakresu architektur tablicowych.
kryteria klasyfikowania systemów eksperckich ([1])
 dziedzina zastosowań (np. medycyna, inżynieria, matematyka, chemia, fizyka, geologia, meteorologia, rolnictwo, prawo, zarządzanie, doradztwo finansowe, wojskowość, transport, kosmonautyka, sterowanie produkcją)
 przeznaczenie:
 s. kontrolne – sterowanie złożonymi procesami (np.
produkcją),
 s. diagnostyczne – rozpoznawanie i klasyfikowanie
przypadków, systemy te są szeroko stosowane w
technice, medycynie, analizie chemicznej i wielu innych dziedzinach,
4
2016 © Adam Meissner
 s. testujące – wykrywanie wad w badanych wyro-bach, ich rozszerzeniem są systemy naprawcze,
proponujące metody usuwania usterek,
 s. projektujące – (np. CAD, CAM) wspomaganie procesów projektowania, stosowane np. w elektronice,
mechanice i inżynierii budowlanej,
 s. edukacyjne – (Intelligent Computer Aided Instruction), wspomaganie nauczania,
 s. interpretujące – interpretowanie danych, np. system PROSPECTOR,
 s. planistyczne – wspomaganie konstruowania planów działań, systemy te są wykorzystywane m. in.
przez strategów wojskowych,
 s. prognostyczne – przewidywanie zachowań układów dynamicznych na podstawie stanów wcześniejszych, systemy te wykorzystuje się np. do prognozowania pogody.
 sposób reprezentowania wiedzy i metody jej przetwarzania [5]
 logika pierwszego rzędu i jej podzbiory (np. logika
klauzul Horna, język Prolog),
 reguły JEŻELI-TO, wnioskowanie progresywne (ang.
forward chaining), wnioskowanie regresywne (ang.
backward chaining),
 ramy i obiekty,
 logiki nieklasyczne - np. modalne, temporalne, wnioskowanie niemonotoniczne, algorytmy utrzy-mywania
wiarygodności.
5
2016 © Adam Meissner
Metody pozyskiwania wiedzy od ekspertów
 metody manualne
 kluczowa rola inżyniera wiedzy,
 prowadzenie wywiadów z ekspertem, wykorzystanie
kwestionariuszy i diagramów, analiza raportów eksperta, obserwowanie pracy eksperta,
 zalety w porównaniu z metodami automatycznymi:
większe możliwość porozumiewania się eksperta i inżyniera wiedzy, możliwość uwzględnienia w modelu
specyficznych aspektów rozpatrywanych zagadnień,
 wady: niechęć ekspertów do współpracy, problemy z
werbalizowaniem wiedzy przez eksperta, przekłamania wynikające z udziału inżyniera wiedzy, czasochłonność,
 metody automatyczne i półautomatyczne
 środowiska do pozyskiwania wiedzy od eksperta, np.
systemy TEIRESIAS, ACQUIST, KNACK, KRITON,
KSSO
 "odkrywanie" wiedzy na podstawie decyzji eksperta algorytmy uczenia maszynowego.
6
2016 © Adam Meissner
konstruowanie drzew decyzyjnych
 założenia: dany jest zbiór D decyzji eksperta, klasyfikujących
podany zbiór przykładów S na podstawie wartości wyróżnio-nych cech,
 zadanie: skonstruować drzewo, którego wierzchołki wiszące
reprezentują elementy zbioru D, a wierzchołki wewnętrzne odpowiadają cechom; każda krawędź wychodząca z wierzchołka wewnętrznego reprezentuje jedną z możliwych wartości
cechy przypisanej temu wierzchołkowi,
 ww. zadanie jest przykładem problemu indukowania pojęć,
który wchodzi w zakres uczenia maszynowego [2],
 do najpopularniejszych metod konstruowania drzew decyzyjnych należy algorytm ID3 Rossa Quinlanna (1979) oraz jego
warianty i udoskonalenia.
Algorytm ID3
Dane: zbiór przykładów S.
Wynik: korzeń w drzewa decyzyjnego dla S.
Metoda:
1. Utworzyć wierzchołek w.
2. Jeżeli zbiór S zawiera wyłącznie przykłady pozytywne, to w jest
liściem o etykiecie 1; stop.
3. Jeżeli zbiór S zawiera wyłącznie przykłady negatywne, to w jest
liściem o etykiecie 0; stop.
4. Wśród wszystkich cech występujących w zbiorze S znaleźć cechę c o maksymalnym zysku informacyjnym.
5. Podzielić zbiór S na podzbiory S1, ..., Sn w których cecha c ma
odpowiednio tę samą wartość; n jest liczbą wartości cechy c.
6. Nadać wierzchołkowi w etykietę c.
7. Dla każdego zbioru Si (i = 1, ..., n) skonstruować drzewo decyzyjne ID3(Si) i połączyć jego korzeń z wierzchołkiem w krawędzią o etykiecie reprezentującej wartość cechy c w zbiorze Si.
7
2016 © Adam Meissner
Przykład 1 (wg. [2])
Dany jest zbiór przykładowych decyzji eksperta w kwestii, czy
przy danym stanie pogody można (d(x) = 1) albo nie można
(d(x) = 0) grać w tenisa.
x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
aura
słoneczna
słoneczna
pochmurna
deszczowa
deszczowa
deszczowa
pochmurna
słoneczna
słoneczna
deszczowa
słoneczna
pochmurna
pochmurna
deszczowa
temperatura
wysoka
wysoka
wysoka
umiarkowana
niska
niska
niska
umiarkowana
niska
umiarkowana
umiarkowana
umiarkowana
wysoka
umiarkowana
wilgotność
duża
duża
duża
duża
normalna
normalna
normalna
duża
normalna
normalna
normalna
duża
normalna
duża
wiatr
słaby
silny
słaby
słaby
słaby
silny
silny
słaby
słaby
słaby
silny
silny
słaby
silny
d(x)
0
0
1
1
1
0
1
0
1
1
1
1
1
0
drzewo decyzyjne
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}
aura
słoneczna
{1, 2, 8, 9, 11}
pochmurna
{3, 7, 12, 13}
wiatr
duża
{9, 11}
1
{4, 5, 6, 10, 14}
1
wilgotność
normalna
deszczowa
słaby
{1, 2, 8}
{4, 5, 10}
0
1
8
silny
{6, 14}
0
2016 © Adam Meissner
Metody reprezentowania i przetwarzania wiedzy
 regułowa reprezentacja wiedzy
 wiedza dziedzinowa na temat rozpatrywanego wycinka
rzeczywistości (tzw. świata) jest skończonym zbiorem
reguł,
 każda reguła ma ogólną postać
JEŻELI Warunek TO Akcja
 wyrażenie Warunek jest zazwyczaj koniunkcją
literałów, np. pacjent_skarży_się_na(ból_gardła) 
Temperatura > 37,5,
 wyrażenie Akcja jest skończonym, niepustym ciągiem,
w którym wyróżnia się
 wnioski (ang. implications), czyli implikowane formuły
np. stwierdzona_dolegliwość(angina),
 instrukcje, czyli działania zmieniające stan świata,
np. zaaplikować_pacejntowi(aspiryna)
Przykład 2 (wg. [2])
Drzewo decyzyjne z przykładu 1 można reprezentować w postaci następującego zbioru reguł.
JEŻELI aura(słoneczna)  wilgotność(duża) TO 0
JEŻELI aura(słoneczna)  wilgotność(normalna) TO 1
JEŻELI aura(pochmurna) TO 1
JEŻELI aura(deszczowa)  wiatr(silny) TO 0
JEŻELI aura(deszczowa)  wiatr(słaby) TO 1
9
2016 © Adam Meissner
przetwarzanie wiedzy regułowej
 istnieją dwie, podstawowe metody przetwarzania wiedzy regułowej
 wnioskowanie progresywne (ang. forward chaining),
 wnioskowanie regresywne (ang. backward chaining),
 jednym z elementarnych działań, wykonywanych w ramach obu ww. metod jest porównywanie wyrażeń; wykorzystuje się do tego celu algorytm
 unifikacji,
 dopasowania wyrażenia do wzorca (ang. pattern
matching)
wnioskowanie progresywne [5]
Algorytm FC
Dane: baza wiedzy KB obejmująca zbiór reguł R i zbiór
faktów F oraz hipoteza H.
Wynik: sygnał tak, jeżeli KB  H albo sygnał nie
w przeciwnym wypadku; nowy zbiór F.
Metoda:
1. Jeżeli HF to stop(tak).
2. Skonstruować zbiór C złożony ze wszystkich reguł ze zbioru
R, których warunki są spełnione, tj. dla dowolnej reguły postaci L1  ...  Ln  A ze zbioru C, LiF gdzie i = 1, n.
3. Jeżeli C =  to stop(nie), w przeciwnym wypadku uszeregować zbiór C zgodnie z przyjętymi kryteriami.
4. Wykonać akcję A pierwszej reguły ze zbioru C; jeżeli akcja
A jest wnioskiem to dołączyć A do zbioru F.
5. Przejść do kroku 1.
10
2016 © Adam Meissner
Popularne strategie szeregowania zbioru C:
● przyjąć naturalny porządek w zbiorze
● uszeregować zbiór począwszy od reguł, których warunki odnoszą się do przypadków wprowadzonych
do bazy wiedzy jako ostatnie (tj. najpóźniej)
● uszeregować zbiór począwszy od reguł o najbardziej
złożonych warunkach
● uszeregować zbiór z wykorzystaniem wiedzy
dodatkowej, np. przypisującej regułom priorytety.
Udoskonalenia algorytmu ogólnego
● „przyrostowe” konstruowanie zbioru C
● grafowa reprezentacja zbioru reguł
● klasyfikowanie reguł ze względu na podobieństwo
warunków
● indeksowanie reguł ze względu na zmienne
występujące w warunkach.
Powyższe udoskonalenia zrealizowano w algorytmie
RETE (C.L. Forgy, 1974) wykorzystywanym w wielu
popularnych systemach eksperckich i w środowiskach
do ich konstruowania (np. CLIPS, OPS5).
11
2016 © Adam Meissner
wnioskowanie regresywne [5]
Algorytm BC
Dane: baza wiedzy KB obejmująca zbiór reguł R i zbiór
faktów F oraz hipoteza H.
Wynik: sygnał tak, jeżeli KB  H albo sygnał nie
w przeciwnym wypadku.
Metoda:
1. Jeżeli HF to stop(tak).
2. Skonstruować zbiór C złożony ze wszystkich reguł ze zbioru
R postaci W  A, takich że A = H (W jest dowolną koniunkcją literałów).
3. Jeżeli C =  to stop(nie), w przeciwnym wypadku ze zbioru
C wybrać dowolną regułę L1  ...  Ln  A.
4. Wykonać algorytm BC dla każdego Li, gdzie i = 1, n. Jeżeli
każdą z uzyskanych odpowiedzi jest tak to stop(tak), w przeciwnym wypadku usunąć wybraną regułę ze zbioru C.
5. Przejść do kroku 3.
12
2016 © Adam Meissner
reprezentowanie wiedzy za pomocą ram
 koncepcja reprezentowania wiedzy za pomocą ram (ang. frames) pochodzi od Marvina Minskyego (1975)
 baza wiedzy jest zbiorem klas i ich wystąpień (czyli obiektów),
 definicja klasy obejmuje atrybuty, ich wartości domyślne
(opcjonalnie) i metody, które dzielą się na tzw. sługi (ang.
servants) oraz demony (ang. demons)
 w zbiorze klas określa się relację dziedziczenia
 atrybuty obiektu mają wartości określone ("konkretne")
 do reprezentowania klas, jak również obiektów, służą ramy
 elementami ramy są klatki (ang. slots), które wypełnia się fasetami (ang. facets)
 faseta jest parą nazwa:wartość; za pomocą faset określa się
m. in. wartości przechowywane w klatce i ich typy.
Przykład 3 (wg. [5])
Reprezentacja klasy i obiektów za pomocą ram w języku FRL
Frame: expert system
Slots: AKO:
$value: program
Programming environment:
$require: (LISP, PROLOG, OPS5, C)
$default: LISP
$if-needed: "look up references".
Frame: MYCIN
Slots: AKO:
$value: expert system.
13
2016 © Adam Meissner
komunikacja z użytkownikiem i udzielanie
objaśnień
 ogólne metody komunikowania się systemu z użytkownikiem
 język stylizowany na naturalny (wykorzystywany w
tzw. systemach dialogowych),
 język symboli graficznych (piktogramy, ikony),
 metody udzielania objaśnień
 objaśnianie przez retrospekcję (ang. retrospective
explanation),
 objaśnianie kontrfaktyczne (ang. counterfactual
explanation) [1], udzielanie odpowiedzi intensjonalnych (ang. intensional answers).
środowiska do tworzenia systemów eksperckich
 języki programowania: PROLOG, LISP,
 powłoki (ang. shells)
 EMYCIN,
 KAS (powłoka systemu PROSPECTOR),
 AGE (powłoka systemu HERSAY),
 środowiska narzędziowe (ang. toolkits)
 Personal Consultant Plus, produkt firmy Texas Instruments, zaprogramowany w języku IQLISP, reprezentowanie
wiedzy w postaci reguł lub ram, możliwość wnioskowania
progresywnego i regresywnego, przetwarzanie informacji
niepewnej, edytor bazy wiedzy, moduł udzielania objaśnień
(język stylizowany na angielski),
14
2016 © Adam Meissner
 OPS5, system opracowany i zaprogramowany na Uniwersytecie Carnegie–Mellon (początkowo) w języku LISP, reprezentowanie wiedzy w postaci reguł, wnioskowanie progresywne, edytor bazy wiedzy wyposażony w mechanizm usuwania błędów,
 KES, produkt firmy Software Architecture & Engineering
Inc., zaprogramowany w języki FRANZ LISP, konstruowanie
systemu na podstawie wymagań sformułowanych w języku
stylizowanym na naturalny, reprezentowanie wiedzy za pomocą reguł i ram, wnioskowanie regresywne, przetwarzanie
informacji niepewnej,
 KEE, system opracowany przez firmę IntelliCorp, zaprogramowany w języku INTERLISP, przeznaczony do wspomagania tworzenia baz wiedzy z wykorzystaniem ram,
 SRL, opracowany przez Instytut Robotyki Uniwersytetu Carnegie–Mellon, zaprogramowany w języku FRANZ LISP,
przeznaczony do wspomagania tworzenia baz wiedzy z wykorzystaniem ram, umożliwia posługiwanie się metawiedzą,
 RULEMASTER, system opracowany przez Radian
Corporation, przeznaczony do wspomagania tworzenia systemów eksperckich z regułową reprezentacją wiedzy, zawiera m.in. interpreter języka RADIAL służącego do wyrażania
reguł (wnioskowanie progresywne i regresywne) oraz kompilator RADIAL  C, moduł indukowania reguł na podstawie
przykładów moduł udzielania objaśnień w języku stylizowanym na angielski.
15
2016 © Adam Meissner
Podsumowanie
 weryfikowanie i testowanie systemów eksperckich
 kryteria formalne: niesprzeczność i pełność zgromadzonej
wiedzy,
 kryteria nieformalne: np. „konsekwencja”, użyteczność,
 zagadnienia istotne przy budowaniu systemów eksperckich
 skuteczne pozyskiwanie wiedzy od ekspertów,
 zapewnienie niesprzeczności, pełności i użyteczności wiedzy zgromadzonej w bazie,
 konieczność udzielania zrozumiałych i wyczerpujących odpowiedzi użytkownikowi,
 trudności z realizacją wnioskowania na podstawie wiedzy
„zdroworozsądkowej” (ang. commonsense knowledge)
 kierunki rozwoju systemów eksperckich
 nowe rozwiązania w zakresie komunikowanie się systemu z
użytkownikiem (system „przyjazny użytkownikowi”),
 poszukiwanie rozwiązań problemu dużych baz wiedzy,
 badania nad metodami reprezentowania wiedzy niepełnej,
niepewnej i zmieniającej się w czasie.
16