Systemy ekspertowe - ciąg dalszy
Metody reprezentacji wiedzy – ciąg dalszy
Fakty
Jednym z podstawowych elementów bazy wiedzy są fakty
opisujące to, co zachodzi w rzeczywistości, lub zaszło. Dotyczą
one: zjawisk, objawów, zdarzeń, określonych stanów rzeczy
itp. Stwierdzenie, że atrybut o nazwie A i wartości V
przysługuje obiektowi O, zapisywane jest w postaci
następującej trójki uporządkowanej:
<A,0,V> = < <NAZWA ATRYBUTU>, <OBIEKT>,
<WARTOŚĆ ATRYBUTU> >
Obiektem może być dowolna rzecz lub pojęcie. Atrybutem jest
cecha posiadana przez obiekt i wyróżniająca go spośród innych
obiektów. Nazwa atrybutu jest parą
<NAZWA ATRYBUTU> = < <CHARAKTER
POSIADANIA CECHY>,
<NAZWA CECHY> >
gdzie <CHARAKTER POSIADANIA CECHY> zastępowany
jest często domyślnie określeniem " posiada" lub " jest".
Wartość atrybutu jest w takim ujęciu wartością odpowiedniej
cechy, gdzie wartość cechy może być elementem dowolnego
typu (np. 13, tak, prawy,...) . Trójka uporządkowana
<A,O,V> jest zapisem posiadania przez obiekt wybranej
własności lub właściwości.
Wprowadzone pojęcia ilustruje następujący przykład:
<NAZWA OBIEKTU> ="cytryna",
<NAZWA CECHY> ="kolor",
<CHARAKTER POSIADANIA CECHY> ="posiada",
<WARTOŚĆ CECHY> ="żółty"
w którym zapis stwierdzenia, że jabłko posiada kolor
czerwony przyjmuje postać:
<"posiada kolor", "jabłko", "czerwony">
Stwierdzenie to zapisane w języku PROLOG ma postać:
posiada_kolor (jabłko, czerwony)
Należy podkreślić, że baza wiedzy powinna być kompletna, w
takim sensie, że brak stwierdzenia w bazie wiedzy iż
obiektowi przysługuje jakiś atrybut, oznacza, że atrybut ten
obiektowi nie przysługuje.
W niektórych systemach fakty są one zapisywane w postaci
uporządkowanej czwórki. Składa się ona z tych samych
elementów co poprzednio omówiona trójka, plus stopień
pewności CF (ang. Certainty Factor).
<A,O,V,CF> = < <NAZWA ATRYBUTU>,
<OBIEKT>,
<WARTOŚĆ ATRYBUTU>, <CF> >
Mamy wtedy do czynienia ze stwierdzeniami przybliżonymi.
Każdemu faktowi przypisany jest współczynnik określający
stopień pewności. Zazwyczaj jest to liczba z przedziału [-1,1],
lub [0,1]. Oczywiście im wyższy stopień tym stwierdzenie jest
bardziej prawdziwe.
Nie ma precyzyjnej definicji stopnia pewności, nie ma też
formalnych metod jego określania. Celem jest umożliwienie
zapisywania hipotez, przypuszczeń, itp. W niektórych
systemach współczynnik pewności przypisywany jest nie
stwierdzeniom, lecz wartościom atrybutów.
Dla uproszczenia zapisów faktów w bazie wiedzy stosuje się
słowniki nazw obiektów, atrybutów oraz ich wartości.
Wymaga się przy tym, aby słowniki były zbiorami otwartymi,
co umożliwia prowadzenie dialogu systemu z użytkownikiem
(który może np. użyć w odpowiedzi nieznanego systemowi
nazwiska pacjenta). Ważniejszym jest jednak umożliwienie
aktualizacji bazy wiedzy przez uzupełnianie jej nowymi
stwierdzeniami. Inną zaletą jest możliwość uwzględniania w
bazie wiedzy synonimów nazw, a zwłaszcza możliwość
uzupełniania bazy wiedzy o opisowe definicje nazw (używane
przez procedury objaśniające).
Regułowa reprezentacja wiedzy
Wśród różnych metod reprezentacji wiedzy zasadniczą rolę
odgrywają metody oparte na regułach. Ich ogólna postać
może być wyrażona jako:
IF przesłanka THEN konkluzja
Zdecydowana większość powstałych do tej pory systemów
ekspertowych jest oparta na regułach, lub wykorzystuje
reguły.
Reprezentacja regułowa często jest wykorzystywana w
systemach
dedukcyjnych,
w
których
zbiór
faktów
początkowych jest przekształcany w pewien zbiór faktów
końcowych. W zależności od przeznaczenia system może
spełniać różne funkcje, np. klasyfikowanie, diagnozowanie,
dowodzenie, ustalanie przyczyn, najlepszy dobór, planowanie,
prognozowanie, monitorowanie, itp.
Reguła może zawierać więcej warunków połączonych
funktorem koniunkcji:
IF A przyjmuje wartość u
AND F przyjmuje wartość w
THEN G przyjmuje wartość y
Za pomocą stopnia pewności CF można dodatkowo zapisać,
jaki jest stosunek użytkownika, lub twórcy systemu do
pewności konkluzji występującej w danej regule.
IF Zawodnik jest praworęczny
AND Rzuca prawą ręką
AND Nikt mu nie przeszkadza
AND Zawodnik jest w formie rzutowej
THEN (ze stopniem pewności0.9)
Zawodnik trafi do kosza
W tym przykładzie spełnienie wszystkich czterech warunków
prowadzi do przyjęcia konkluzji, co jest równoważne z
przyjęciem faktu zapisanego następująco: <A,O,V,CF>
gdzie:
A-Nazwa Atrybutu, O-Obiekt, V- wartość atrybutu,
CF- współczynnik wiarygodności)
<"zdobycie kosza", "zawodnik", "trafi,
"0.9”>
Ogólna postać tzw. reguły rozwiniętej jest następująca:
IF przesłanka THEN konkluzja1
ELSE konkluzja2
przy czym konkluzja2 jest dodatkowym stwierdzeniem
uznawanym za prawdziwe w razie niespełnienia przesłanki.
Taka postać reguł może jednak czasami prowadzić do uznania
nieoczekiwanych konkluzji jeśli brak przesłanki uznamy za
przesłankę fałszywą. W związku z tym wskazane jest
stosowanie
reguł
w
postaci
podstawowej
( IF...THEN ... ). Postępowanie takie upraszcza zresztą
działanie maszyny wnioskującej. Jeżeli warunki w złożonej
przesłance są połączone funktorami koniunkcji, to proces
analizowania takiej przesłanki jest przerywany, z wynikiem
negatywnym, po napotkaniu pierwszego nie spełnionego
warunku. W niektórych systemach w regułach może
występować funktor alternatywy, np.
IF nie działa monitor
OR płyta główna jest spalona
THEN obsługa komputera nie jest możliwa
Można taką regułę zamienić na zestaw dwóch równoważnych
reguł nie zawierających funktora alternatywy:
IF nie działa monitor
THEN obsługa komputera nie jest możliwa
IF płyta główna jest spalona THEN obsługa
komputera nie jest możliwa
Stosowanie spójnika OR jest dopuszczalne, lecz nie zalecane ze
względu
na
większe
skomplikowanie
modułu
wnioskującego.
Jak to już wcześniej powiedziano, reguły można rozpatrywać
jako szczególny sposób zapisu pewnej sieci stwierdzeń,
ponieważ z prawdziwości jednego stwierdzenia mogą wynikać
inne.
Szczególną postać reguły stanowi
IF przesłanka THEN działanie
Dotychczas omawiane postacie reguł nie pozwalały na proste
reprezentowanie wiedzy o procesach ciągłych (układach
dynamicznych), gdzie jednym z elementów bazy wiedzy
powinny być informacje o kolejności wykonywania różnych
działań. W celu umożliwienia zapisu takich informacji
wprowadzono pokazaną wyżej postać reguły. Przyjęto, że
konkluzja reguły jest opisem pewnego działania a nie
stwierdzeniem i nazwano ją regułą działania. Należy ją
interpretować jako przepis poprawnego postępowania,
któremu nie przysługuje żaden fakt.
Pozwoliło to na znaczne rozszerzenie zakresu stosowania
reguł. W szczególności umożliwiło formułowanie reguł
dotyczących przebiegu procesu wnioskowania (zapis strategii
procesu) za pomocą tzw. meta-reguł. Użycie meta-reguł
sprawia, że reprezentacja wiedzy przyjmuje charakter
reprezentacji deklaratywno-proceduralnej.
Z punktu widzenia mechanizmu wnioskowania lepiej jest
używać większego zbioru reguł prostych, niż mniejszego, ale
reguł bardziej złożonych.
Reguły złożone nie wymagają co prawda bardzo złożonych
maszyn wnioskujących, ponieważ każda reguła w konkluzji
zawiera już jakiś wniosek końcowy. Niekiedy wystarczy
uaktywniać tylko jedną regułę, aby osiągnąć interesujący
wynik.
Wadą takiego podejścia jest jednak trudność formułowania
odpowiedniego zbioru wzajemnie z sobą powiązanych reguł,
oraz złożony sposób weryfikacji i uzupełniania takiego zbioru
reguł.
Zaletą stosowania reguł prostych jest przede wszystkim
łatwość weryfikacji i uzupełniania zbioru reguł. Wzrasta też
bardzo elastyczność takiej bazy wiedzy, co się objawia ilością
możliwych badań i konkluzji końcowych. W maszynie
wnioskującej stosować jednak musimy bardziej złożone
algorytmy wnioskowania a sam proces wnioskowania
wymagać będzie uaktywniania nieraz wielu reguł. Kolejne
udowodnione
wnioski
pośrednie
tworzą
łańcuch
wnioskowania.
W systemach ekspertowych badanie elementów przesłanek w
regułach jest najczęściej związane z licznymi efektami
ubocznymi w postaci: potrzeby analizowania innych reguł,
zadawania pytań użytkownikowi, itp. Dla podkreślenia
znaczenia kolejności elementów w przesłance wprowadzono
pojęcie kontekstu. Kontekst umożliwił jawne rozpatrywanie
warunków koniecznych badania określonego elementu
przesłanki.
W systemach ekspertowych są stosowane zarówno reguły,
które odnoszą się do konkretnych obiektów, jak też reguły
obejmujące pewien zbiór obiektów - tzw. reguły ogólne.
Mogą one być spełnione przez różne obiekty pewnego zbioru
obiektów. Umożliwia to znaczne zwiększenie stopnia
ogólności tworzonej bazy wiedzy. Wprowadźmy napisy
poprzedzone symbolem @ traktowane jako zmienne i
rozważmy poniższą regułę
IF (@corka, jest_córka, @matka)
AND (@matka, jest_córka, @babcia)
THEN (@corka, jest_wnuczka, @babcia)
Podczas
wnioskowania
zmienne
są
zastępowane
odpowiednimi stałymi określonymi w wyniku dopasowania
reguły do istniejącego zbioru stwierdzeń. Jest to proces tzw.
unifikacji. Dla powyższej reguły ogólnej możemy na
przykład zmienne zastąpić następującymi stałymi:
@corka => Kasia, @matka => Basia,
©babcia => Marysia
co prowadzi do reguły konkretnej
IF (Kasia,jest_corka,Basia)
AND(Basia,jest_corka,Marysia) THEN
(Kasia,jest_wnuczka,Marysi)
W ten sposób na podstawie jednej reguły zawierającej
zmienne można generować wiele reguł dopasowanych do
danej bazy faktów.
Reprezentacja wiedzy za pomocą ram
Czy człowiek używa w procesie wnioskowania reguł? Wydaje
się, że jedynie w nielicznych przypadkach. Próby analizy
tekstów w oparciu o reguły wykazały bardzo szybko rosnącą
liczbą faktów i reguł, które należy zastosować by rozwiązać
nieco bardziej złożone zadanie. Reprezentacja wiedzy w
postaci struktur zwanych ramami, daje ciekawe możliwości.
Ramy zawierają wiedzę ogólną o obiektach, gromadząc
wewnątrz opis cech obiektów danego typu. Mogą mieć też
procedury związane z używaniem wiedzy zawartej w ramach.
Za ojca „ram” uważa się Minskyègo, który teorię swoją oparł
na sposobie zachowania się człowieka znajdującego się w
nowej sytuacji (otoczeniu), ale mającego jakieś pojęcie
(wyobrażenie) o tym co robi. Minsky „ramą” nazwał strukturę
danych opisującą pewien obiekt, w której umieszcza się
wszystkie typowe i oczekiwane informacje, ale także
przypuszczenia o tym obiekcie.
Człowiek wydobywa wówczas z pamięci określoną strukturę,
czyli ramę, i porównuje tę sytuację z wiedzą zawartą w ramie.
Z kolei, gdy człowiek zetknie się z całkowicie nowym
obiektem, wówczas jego pierwszą reakcją będzie próba
zapamiętania go i wprowadzenia jego nazwy. Jest to
równoważne wykreowaniu nowej ramy.
Rama jest semantyczną definicją wybranego pojęcia. Ramy
służą określaniu struktury obiektów odpowiadających danej
ramie. Rama sama w sobie jest strukturą składająca się z:
- podstruktur – klatek, zwanych również szczelinami (ang.
slots). Klatka reprezentuje pewną właściwość bądź cechę
obiektu. Mogą to być m.in. relacje tego obiektu z innymi
obiektami.
- w klatkach znajdują się mniejsze części, tzw. fasety.
Każdej klatce jest przyporządkowany określony zbiór
faset. Nie ma żadnych ograniczeń co do typów i wartości
faset - mogą to być liczby, teksty, kolejne ramy; mogą w
nich być zapisane warunki uznania wartości atrybutu
jako wartości dopuszczalnej, procedury pozyskiwania tej
wartości itp. Mówiąc bardziej ogólnie każda faseta jest
pewną wartością klatki, albo określoną funkcją Zbiór
faset w klatce może być dowolnie uzupełniany fasetami
wynikającymi z potrzeb specyficznego zastosowania.
Ramy, klatki i fasety są identyfikowane za pomocą
przypisanych im nazw.
Ramy mogą być łączone w strukturę hierarchiczną ( graf lub
drzewo ). Wierzchołkami takiego grafu są ramy, a jego gałęzie
tworzą relację podrzędności ram. Relacja podrzędności
oznacza dziedziczenie właściwości obiektu określonego ramą
nadrzędną przez obiekt określony ramą podrzędną. Wymaga
to wprowadzenia klatki zawierającą nazwę ramy nadrzędnej.
W ten sposób uzyskuje się odwołania do innych ram.
Wprowadzenie takiego mechanizmu dziedziczenia znacznie
ogranicza redundancję baz wiedzy.
Przykład definicji ramy:
Nazwa ramy :Płyta
Rodzic :Korzeń ( TOP-FRAME)
Klatka :Nazwa-nagrania Wartość :
Klatka :Kolor Wartość :
Klatka :Wielkość Wartość :
Klatka :Rodzaj-nośnika Wartość :
Klatka :Producent Wartość :
Klatka :Data-produkcji Wartość :
Tak zdefiniowana rama może służyć za wzorzec dla ram
dziedziczących. Instancją (obiektem) tej ramy mogłaby być
rama:
Nazwa ramy : Płyta_123
Rodzic : Płyta
Klatka :Nazwa-nagrania Wartość : Le Quatro Stag.
Klatka :Kolor Wartość : szary
Klatka :Wielkość Wartość : 12
Klatka :Rodzaj-nośnika Wartość : CD-Audio
Klatka :Producent Wartość : Azzurra Music
Klatka :Data-produkcji Wartość : 1977
11
Dziedziczenie może mieć różne formy:
1. Rama egzemplarz dziedziczy właściwości ramy prototyp,
ale sama może mieć pewne właściwości dodatkowe,
które
ją
uściślają,
odróżniają
od
prototypu
i
wyszczególniają w miarę schodzenia do coraz niższych
poziomów opisu – dziedziczenie typu gen-spec
2. Rama prototyp ma wszystkie właściwość, a kolejne ramy,
na niższych poziomach opisu, dziedziczą tylko ich część
– dziedziczenie typu całość-część.
Przykład na str. 12 ilustruje oba rodzaje dziedziczeń.
Rama może posiadać dowolną ilość rodziców. Teraz jednak w
miejscach przeznaczonych dla rodziców widnieją już co
najmniej dwa identyfikatory ich ram.
Narzędzie wielokrotnego dziedziczenia posiada ogromne
możliwości, jednak używanie go wymaga wielkiej uwagi od
programisty aby nie doprowadzić do nieprawidłowych
dziedziczeń.
12
Najważniejsze rodzaje faset spotykane w typowych systemach
z reprezentacją wiedzy za pomocą ram:
· Faseta typu VALUE
W fasecie tej jest zawsze wpisana bieżąca, rzeczywista
wartość klatki.
· Faseta typu DEFAULT
Faseta ta zawiera tzw. domyślną wartość klatki.
· Faseta typu COMMENT
Faseta ta zawiera tekst będący opisem klatki.
· Faseta typu CARDINALITY
Podaje ona liczbę faset typu VALUE występujących w klatce.
· Faseta typu RANGE
Zawiera ona listę lub zakres dopuszczalnych wartości fasety
VALUE.
· Faseta typu IF-NEEDED
Faseta IF-NEEDED zawiera funkcję, która wyznacza nieznaną
wartość klatki poszukując jej w ramach nadrzędnych w
stosunku do ramy wyjściowej.
· Faseta typu IF-ADDED
Faseta ta zawiera funkcję, która wpisuje wartości do klatki,
funkcja ta jest poszukiwana w klatce wówczas, gdy próbujemy
wstawić do klatki nową wartość.
· Faseta typu IF-REMOVED
Faseta ta zawiera funkcję usuwania wartości z klatki i jest
poszukiwana w klatce, jeśli tylko próbujemy wymazać jej
wartość.
Bibliografia do części 6.1 i 6.2 wykładu:
1. Z. Bubnicki – „Wstęp do systemów ekspertowych” PWN
1990
2. W. Cholewa, W. Padrycz – „Systemy doradcze” (skrypt
uczelniany) Politechnika Wrocławska, 2000
3. Z. Bubnicki, A. Grzech – „Inżynieria wiedzy i systemy
ekspertowe” PWN 1990 Warszawa
3. Antoni Niederliński – „Regułowe systemy ekspertowe”
PWN 1992
4. J. J. Mulawka – „ Systemy ekspertowe” WNT 1997
4. P. Kamran, M. Chignell – „Expert systems for experts”
New York : Wiley J., 1988