System ekspertowy – definicja Wiedza systemu eksperckiego

advertisement
System ekspertowy – definicja
– System ekspertowy (doradczy, ekspercki, ES):
program komputerowy wykorzystujący wiedzę i procedury wnioskowania do rozwiązywania problemów,
które są na tyle trudne, że wymagają znaczącej ekspertyzy specjalistów.
– Systemy oparte na wszystkich sposobach reprezentacji wiedzy, najczęściej w postaci reguł produkcji.
Większość systemów doradczych uważać można za konsultantów, formułujących opinie i doradzających
użytkownikom. Uznaje się je za inteligentne, jeżeli:
– system daje użyteczne porady
– koncepcje i rozumowanie podobne jest do tych, których mógłby użyć ekspert w danej dziedzinie
Poziom ekspertyzy to funkcja rozmiaru i jakości bazy wiedzy danego systemu.
Wiedza systemu eksperckiego
– Wiedza (niezbędna, by zapewnić odpowiedni poziom ekspertyzy), wraz z procedurami wnioskowania
stanowi model ekspertyzy, posiadanej przez najlepszych specjalistów w danej dziedzinie.
Fakty: powszechnie akceptowane przez specjalistów.
Heurystyki: informacja subiektywna, która charakteryzuje proces oceny przez określonego specjalistę
(intuicyjne domysły, przypuszczenia, zdroworozsądkowe zasady postępowania).
Motywacja
– Koszty: w dłuższym okresie czasu są znacznie tańsze, pomagają w rozwiązywaniu problemów
wymagających najbardziej specjalistycznej (najdroższej) wiedzy.
– Brak ekspertów w wielu dziedzinach.
– ES pracują szybciej, nie męczą się, są bardziej niezawodne niż ludzie.
– Konsekwentne, konsystentne, obiektywne, dokładne.
– Zawsze do dyspozycji (nie strajkują!).
– Analiza dużych ilości danych wymaga komputera.
Etapy tworzenia SE
– Analiza problemu: ocena, czy budowa SE dla danego problem ma sens.
– Specyfikacja systemu: szczegółowe określenie funkcji i oczekiwań.
– Akwizycja wiedzy: zgromadzenie, wydobycie wiedzy od ekspertów i jej organizacja.
– Wybór metody reprezentacji wiedzy i narzędzi do budowy systemu.
– Konstrukcja systemu: utworzenie bazy wiedzy, reguł wnioskowania, systemu wyjaśniającego
rozumowanie i prowadzenia dialogu z użytkownikiem.
– Weryfikacja i testowanie systemu.
Postać wiedzy
– Fakty z danej dziedziny wiedzy, np.:
„W starych silnikach Diesla przy przegrzaniu dochodzi do gwałtownego podwyższenia obrotów na skutek
chwilowego spalania oleju.”
– Reguły typu:
„Przed zdjęciem obudowy wyciągnąć wtyczkę.”
– Heurystyki, czyli co by tu zrobić, np.:
„Jak nie zaskakuje, a jest iskra, to warto sprawdzić przewód paliwa”.
– Ogólne strategie postępowania, np.:
„Jeżeli świeci się lampka ciśnienia oleju, sprawdź miernikiem rzeczywiste ciśnienie oleju, jeżeli jest
prawidłowe to wymień czujnik ciśnienia oleju, jeżeli jest nieprawidłowe, silnik prawdopodobnie jest
zużyty”.
Teoria danej dziedziny, np. teoria działania silników samochodowych.
Akwizycja wiedzy
– prowadzenie wywiadów z ekspertami
– analiza kwestionariuszy wypełnianych przez ekspertów
– analiza raportów pisanych przez ekspertów
– analiza komentarzy ekspertów wykonywanych w czasie pracy
– obserwacja ekspertów przy pracy
– introspekcja
– szukanie w Internecie
Akwizycja (zdobywanie i gromadzenie) wiedzy wymaga transferu ekspertyzy i reprezentacji wiedzy
eksperta. Do reprezentacji wiedzy w systemach doradczych stosuje się wszystkie znane sposoby
reprezentacji wiedzy. Ekspert nie tylko wie rzeczy, których inni nie wiedza, ale ma doświadczenie, które nie
zawsze potrafi zwerbalizować, może działać „na wyczucie”.
Niepewność wiedzy
– Niewiarygodne źródła informacji.
– Zbyt wiele informacji nie mającej znaczenia.
– Brak precyzji w obserwacjach i opisie.
– Błędy aparatury.
– Brak zrozumienia sytuacji.
– Sprzeczne informacje.
– Nieznane czynniki wpływające na sytuację.
– Zmiana sytuacji w czasie, starzenie się wiedzy.
– Koszty pozyskiwania nowych informacji.
Jak sobie radzić z niepewnością wiedzy?
– prawdopodobieństwa warunkowe
– współczynniki ufności lub pewności
– teoria wiarygodności
– teoria zbiorów rozmytych.
Rodzaje systemów ekspertowych
Systemy edukacyjne (CAI lub ICAI – Intelligent Computer Aided Instruction), a więc inteligentne
wspomaganie nauczania, systemy algebry symbolicznej.
Systemy interpretujące: wspomagające analizę i interpretację informacji, wydobywanie informacji z baz
danych, interpretujące dane geologiczne.
Systemy planistyczne, wspomagające strategiczne działanie i planowanie zadań, np. planowanie syntezy
związków chemicznych czy budowy systemów komputerowych.
Systemy prognostyczne, wspomagające wyciąganie wniosków i przewidywanie tendencji.
Systemy kontrolne, pozwalające na sterowanie skomplikowanymi systemami, takimi jak automatyczne
zakłady produkcyjne itp.
Systemy diagnostyczne, mające zastosowanie w zagadnieniach technicznych, medycynie, analizie
chemicznej i wielu innych problemach.
Systemy testujące, pomagające przy znajdywaniu problemów; mogą być częścią systemów kontrolnych lub
systemów diagnostycznych.
Systemy naprawcze, które nie tylko prowadzą testy ale i planują działania korekcyjne. Można do nich
zaliczyć również niektóre systemy medyczne, zalecające leczenie.
Systemy projektujące, wspomagające prace projektowe, takie jak projektowanie układów elektronicznych,
CAD czy CAM.
Konstrukcja systemów eksperckich
Zwykle próbuje się oddzielić bazy wiedzy od mechanizmów wnioskowania.
Akwizycja wiedzy,
uczenie maszynowe
Fakty, Obiekty,
Struktury
Wiedza, reguły,
ramy
System
wnioskujący
F
a
k
t
y
Odpowiedzi,
wyjaśnienia:
jak? dlaczego?
Interfejs
użytkownika
Reguły produkcji
IF warunek1 AND warunek2 ... THEN akcja
lewa część reguły produkcji określa warunki jej stosowalności
prawa część określa jej działanie
Dostępne są też funkcje logiczne OR oraz NOT
Właściwości:
– Przy kilku regułach produkcji, łatwo przewidzieć skutki ich wykonywania.
– Warunki wykonania akcji są jawne.
– Reguły nie odwołują się do siebie (tak jak procedury), minimalizując oddziaływanie pomiędzy sobą.
– Da się zastosować w stosunkowo dużych systemach.
– Działają dobrze do czasu aż liczba reguł nie robi się zbyt duża.
– Reguły produkcji wywoływane są cyklicznie.
– W każdym cyklu ustala się możliwe do zastosowania reguły (faza dopasowania reguł do warunków).
– Jeśli do tych samych założeń stosuje się więcej reguł wybierana jest jedna z nich.
Rodzaje rozumowania
DSS (Decision Support Systems): dialog z użytkownikiem + wyjaśnienie sposobów wnioskowania.
ES nie zawsze rozumuje w sposób podobny do człowieka – ma inne ograniczenia.
Przykładowe metody rozumowania:
– Rozumowanie retrospektywne (które reguły i dlaczego).
– Rozumowanie hipotetyczne (co by było gdyby...).
– Rozumowanie „kontrfakyczne”: gdyby było P byłoby lepiej, a tak jest S. Jeśli P powoduje S, to gdyby nie
było P nie byłoby S. Szukamy więc czemu nie ma P.
Interpreter reguł
Zajmuje się wyborem reguły, którą należy zastosować oraz ogólną strategią działania.
Przykład:
I1. Znajdź wszystkie reguły, których lewa strona jest spełniona.
I2. Jeśli daje się zastosować więcej niż jedna reguła usuń te, które prowadzą do powtarzających się symboli.
I3. Wykonaj po kolei dające się zastosować reguły. Jeśli nie można zastosować żadnej reguły przerwij
działanie.
I4. Usuń listę dających się zastosować reguł i przejdź do I1.
Rozstrzyganie konfliktów
– użyj reguły o najwyższym priorytecie
– użyj reguły która ma najwięcej szczegółowych warunków
– użyj ostatnio wykorzystywaną regułę
– użyj regułę, która została dodana najpóźniej
– użyj regułę zawierającą zmienne, które były ostatnio używane.
– jeśli mamy wagi przesłanek (stopień prawdziwości) to użyj regułę do której konkluzji masz największe
zaufanie.
Języki programowania ES
– LISP
– PROLOG
– CLISP
Alternatywy w stosunku do ES
– symulacje sytuacji w różnych warunkach
– oceny statystyczne
Przykład
Mamy taśmę, a na niej różne produkty. Budujemy system identyfikujący produkty spożywcze.
Funkcja logiczna:
JEST: wartość zależna od tego, czy argument jest na liście danych wejściowych.
Akcja:
DOPISZ: operacja dopisywania do listy.
Reguły produkcyjne:
P1. IF JEST zielone THEN DOPISZ produkt rolny
P2. IF JEST mały pojemnik THEN DOPISZ delikatesowe
P3. IF JEST mrożonka OR JEST produkt rolny THEN DOPISZ nietrwałe
P4. IF JEST ciężkie AND JEST tanie AND NOT nietrwałe THEN DOPISZ arbuz
P5. IF JEST nietrwałe AND JEST ciężkie THEN DOPISZ indyk
P6. IF JEST ciężkie AND JEST produkt rolny THEN DOPISZ arbuz
Działanie systemu:
Zaczynając np. od listy L
L=(zielone, ciężkie)
możemy zastosować tylko regułę P1 otrzymując
L=(produkt rolny, zielone, ciężkie)
W następnym kroku możemy zastosować P1 i P6;
P1 daje powtarzające się symbole, więc stosujemy P6, otrzymując
L=(arbuz, produkt rolny, zielone, ciężkie)
System zatrzymuje się, gdyż wszystkie stosowalne w kolejnym cyklu reguły prowadzą do takich samych
symboli, które już są na liście.
Zalety ES
– Przydatne do rozwiązywania złożonych problemów, w dziedzinach, w których zgromadzono wiedzę
empiryczną
– Potrafią odpowiadać na pytania prezentując swoje konkluzje w intuicyjne zrozumiały sposób, nie potrzeba
programistów by zrozumieć ich działanie.
– Zwykle oparte są na jednolitym sposobie reprezentacji wiedzy, np. regułach lub ramach – dzięki temu
łatwo jest modyfikować wiedzę.
Wady ES
– Trudno jest przewidzieć, jakie będą skutki dodania nowej wiedzy, rozumowanie zdroworozsądkowe jest
trudne.
– Trudno jest pozyskiwać wiedzę (uczenie maszynowe i odkrywanie wiedzy rzadko jest częścią ES).
– Traktowanie niepewności nadal jest rzadko spotykane.
Działające systemy ES
MYCIN (Program do diagnostyki i terapii chorób zakaźnych, Stanford, 1972),
– baza wiedzy: reguły produkcji, listy, tabele, opis parametrów klinicznych
– baza danych pacjenta (opis przypadku)
– program konsultacyjny, zadający pytania, wyciągający wnioski i dający porady
– program wyjaśniający, uzasadniający porady
– program gromadzenia wiedzy, pozwalający na modyfikację i rozszerzania bazy wiedzy
Przykładowe reguły produkcyjne:
REGUŁA 095
IF
Kultura bakteryjna rozwinęła się we krwi
i odczyn jest gramopozytywny
i bakterie wniknęły przez jelito
i żołądek lub miednica są miejscem infekcji
THEN Istnieją silne poszlaki, że klasą bakterii, które są za to odpowiedzialne są Enterobacteriacae.
META-REGUŁA 001
IF
(1) infekcja ma charakter brzuszny i
(2) użyto reguł które wspominają o Enterobacteriacae i
(3) użyto reguł wspominających o pałeczkach grampozytywnych
THEN z poziomem ufności 0.4 reguły dotyczące Enterobacteriacae powinny być użyte przed regułami
dotyczącymi pałeczek.
Przykładowy dialog:
MYCIN dostaje dane bakteriologiczne, czasy pobierania próbek, nazwisko, płeć, wiek.
4) Czy określono mikrobiologicznie rodzaj możliwej infekcji?
Tak
5) Jakiego rodzaju jest to infekcja?
Primary-Bacteremia
6) Proszę podać kiedy nastąpiły pierwsze objawy infekcji.
15-Stycz-93 11:30
7) Skąd pochodzą próbki pierwszej kultury bakteryjnej?
Krew
8) Kiedy otrzymano próbki kultury bakteryjnej z krwi?
16-Stycz-93 12:00
9) Pierwsza bakteria wyhodowana w tej próbce krwi będzie określana jako Organizm-1. Zidentyfikuj
organizm-1.
Nieznany
10) Czy organizm-1 jest pałeczką czy ziarnkowcem?
Pałeczką
11) Jaki jest odczyn organizmu-1
gramonegatywny
12) Czy organizm-1 rozwijał się aerobowo?
tak
13) Czy organizm-1 rozwijał się anaerobowo? tak
14) Moje zalecenia terapeutyczne będą oparte o następujące prawdopodobne infekcje spowodowane przez
nast. bakterie.
INFEKCJA-1 typu Primary-bacteremia
1. E. Coli (Organizm-1)
2. Pseudomonas-aeruginosa (Organizm-1)
DENDRAL, CRYSALIS, CASD (chemia)
– Generacja struktur chemicznych zgodnych z informacjami z spektrografii masowej, NMR, widm IR, UV,
informacjami o reakcjach chemicznych.
– Określanie struktury substancji chemicznych i biologicznych
– Krystalografia białek
– Interpretacja map gęstości elektronowej i innych danych
SCHOLAR
– nauczanie geografii Ameryki Południowej
– Baza w postaci sieci semantycznej, pomaga w prowadzeniu dialogu. Węzeł sieci to koncepcja lub obiekt
geograficzny; nazwy, listy atrybutów/wartości
PROSPECTOR
– Asystowanie geologom; zawiera model złóż geologicznych
– Kilkaset reguł definiuje model złoża, poziom przekonania o występowaniu różnych własności
– Przy jego pomocy odkryto szereg złóż
ES w matematyce
Systemy algebry symbolicznej:
– Systemy ogólnego użytku: Axiom, Macsyma, Maple, MathCAD, Reduce, MuMath, Mathematica 6 z
dowodzeniem twierdzeń
– Specjalistyczne: FORMAC, ALTRAN, SCRATCHPAD i inne
Systemy automatycznego dowodzenia twierdzeń dały wiele nowych wyników:
– dowody istnienia pewnych kwazigrup
– EQP: dowód hipotezy Robbinsa (z 1936 roku)
– organizowane są zawody programów dowodzących
– weryfikacja FPU w mikroprocesorach
Projekt QED: próba formalizacji całej matematyki (nieaktywny).
Projekt Mizar, 8800 definicji i 46.000 twierdzeń (3/2008)
Inne, praktyczne zastosowania
finansowe, w procesach wytwórczych, zarządzania, kolejkowania i ustalania połączeń, szczególnie dla linii
lotniczych, obsługi klientów, projektowania;
militarne, analiza danych, inżynieria oprogramowania, administracja państwowa, przemysł transportowy i
kosmiczny oraz wiele innych.
Tendencje
– Od stacji roboczych na komputery osobiste
– Od specjalnych języków i Lispu do C i C++
– Od systemów niezależnych do zintegrowanych z bazami danych
– Wiele metod reprezentacji wiedzy i rozumowania
– Nie technologia lecz rozwiązywanie realnych problemów
– Sprawność, koszty rozwoju, analiza opłacalności
– Automatyzacja akwizycji wiedzy dzięki uczeniu maszynowemu
Wnioskowanie w Prologu
PROLOG jest językiem deklaratywnym, opisującym sposób sterowania algorytmem wnioskowania. Sama
zasada wnioskowania polega na zastępowaniu stwierdzeń, których prawdziwość jest poddawana weryfikacji
przez inne stwierdzenia, zgodnie z zapisanymi definicjami predykatów. Proces ten kończy się wtedy, gdy
algorytm wnioskowania dojdzie do stwierdzenia prawdziwego (gdyż zapisanego jako prawdziwe), bądź
wtedy, gdy nie da się dopasować żadnej reguły wnioskowania.
Przykład
Rozważmy predykaty i opisane przez nie relacje:
kr_ko kraj położony na kontynencie,
m_ko
miasto położone na kontynencie,
m_kr
miasto położone w kraju,
m_st
miasto będące stolicą kraju.
Celem będzie stworzenie graficznego schematu zależności między stwierdzeniami poddawanymi
weryfikacji, regułami i faktami.
Fakty:
m_ko("Berlin", "Europa").
m_ko("Warszawa", "Europa").
m_ko("Kraków", "Europa").
m_ko("Irkuck", "Azja").
m_ko("Moskwa", "Europa").
m_kr("Kraków", "Polska").
m_kr("Irkuck", "Rosja").
m_st("Warszawa", "Polska").
m_st("Moskwa", "Rosja").
m_kr(Miasto, Kraj):- m_st(Miasto, Kraj).
kr_ko(Kraj, Kont):- m_kr(Miasto, Kraj), m_ko(Miasto, Kont).
Graf wnioskowania związany z weryfikacją stwierdzenia kr_ko("Polska", "Europa").
Opis diagramu
Istnieją dwa wyróżnione węzły: „prawda” i „porażka”. Węzeł „prawda” jest połączony krawędziami z
każdym z podanych faktów (ujętymi w pola prostokątne). Węzeł „porażka” jest połączony krawędziami z
każdym stwierdzeniem, którego zmiennych nie da się podstawić na wartości zgodne z żadnym faktem, ani z
konkluzją żadnej z reguł.
Każda definicja predykatu, będąca regułą, jest połączona krawędziami ze stwierdzeniami (ujętymi w
zaokrąglone prostokąty), które są wynikiem podstawień zmiennych z części przesłankowej reguły. W
przypadku reguł, w których część przesłankowa jest koniunkcją warunków logicznych, wprowadzony został
pomocniczy węzeł koniunkcyjny (ujęty w owal), w którym zapisane są podstawienia wszystkich zmiennych
pomocniczych (tj. nie występujących jako elementy konkluzji reguły). W naszym przykładzie dotyczy to
definicji predykatu kr_ko, której argumentami są Kraj i Kont, zaś zmienną pomocniczą jest Miasto.
Śledzenie ścieżek prowadzących do węzłów „prawda” i „porażka” jest istotą wnioskowania. Jako
prawdziwe uznaje się:
• Fakty (prostokąty), połączone bezpośrednio z węzłem prawda (jak np. w przypadku faktu
m_kr("Kraków", "Polska"))
• Stwierdzenia (zaokrąglone prostokąty)
• Pomocnicze węzły koniunkcyjne (owale)
Prawdziwość stwierdzenia kr_ko(Polska, Europa) wynika z tego, że węzeł, odpowiadający temu
stwierdzeniu, łączy się z prawdziwymi węzłami, odpowiadającymi koniunkcjom:
m_kr("Warszawa", "Polska"), m_ko("Warszawa", "Europa").
m_kr("Kraków", "Polska"), m_ko("Kraków", "Europa").
Prawdziwość składników tych koniunkcji wynika albo znowu z wnioskowania, tak jak w przypadku
stwierdzenia:
m_kr("Warszawa", "Polska")
albo też z bezpośredniego połączenia ich z węzłem „prawda”; dotyczy to stwierdzeń:
m_kr("Kraków", "Polska"),
m_ko("Kraków", "Europa"),
m_ko("Warszawa", "Europa")
W procesie wnioskowania będą sprawdzone również węzły, odpowiadające koniunkcjom:
m_kr("Irkuck", "Polska"), m_ko("Irkuck", "Europa").
m_kr("Moskwa", "Polska"), m_ko("Moskwa", "Europa").
przy czym co najmniej jeden z elementów każdej z powyższych koniunkcji jest bezpośrednio lub pośrednio
połączony z węzłem „porażka”.
Graf pełny – graf całej przestrzeni przeszukiwań, w której prowadzone jest wnioskowanie. Tak więc
wnioskowanie jest przeglądaniem przestrzeni przeszukiwań, ograniczonym do możliwie najmniejszej liczby
węzłów pozwalających stwierdzić prawdziwość badanego stwierdzenia.
Sposoby wnioskowania
Graf wnioskowania jest grafem skierowanym, gdyż reguły wnioskowania mają wyróżnioną część
przesłankową i konkluzję. Przeszukiwanie grafu, jako realizacja procesu wnioskowania, może być
prowadzone na dwa sposoby – zgodnie lub przeciwnie do kierunku wskazywanego przez strzałki.
Wnioskowanie wstecz (wnioskowanie sterowane celem, wnioskowaniem regresywne)
Przyjęcie kierunku przeciwnego do strzałek oznacza, że wnioskowaniem kieruje stwierdzenie do
weryfikacji. To stwierdzenie jest zastępowane przez wiele innych, tak, aby w końcu dojść do jednego z
dwóch węzłów końcowych – „prawda” albo „porażka”. Taki sposób postępowania jest wykorzystywany w
maszynie wnioskującej Prologu.
Algorytm weryfikacji wstecz
Argument: stwierdzenie S
Dla każdej definicji predykatu D, unifikującej się ze stwierdzeniem
Jeśli D jest faktem
zwróć wartość „prawda”
Jeśli D jest regułą
powtarzaj
Wybierz stwierdzenie Si, będące składnikiem części przesłankowej
Wykonaj unifikacje zmiennych pomocniczych
Wykonaj weryfikację wstecz stwierdzenia Si
dopóki są niezweryfikowane stwierdzenia Si
Jeśli wszystkie Si są prawdziwe
zwróć wartość „prawda”
w przeciwnym przypadku
zwróć wartość „porażka”
Wnioskowanie w przód (wnioskowanie sterowane danymi, wnioskowanie progresywne)
Inną metoda postępowania: posuwanie się od węzła „prawda” w kierunku strzałek, generując nowe
prawdziwe stwierdzenia, w nadziei wygenerowania tego stwierdzenia, które podlega weryfikacji.
Algorytm weryfikacji w przód
Argument: stwierdzenie S
Lista faktów F = Ø
Dopóki S nie unifikuje się z żadnym faktem z F powtarzaj
Zbiór definicji predykatu D = Ø
Dla każdej definicji Di
Jeśli Di jest faktem lub Di jest regułą i część przesłankowa unifikuje się z faktami z F
D = D ∪ { Di }
Wybierz definicję Di ze zbioru D
Jeśli Di jest faktem
F = F ∪ { Di }
Jeśli Di jest regułą
Fd = zbiór podstawień konkluzji reguły Di
F = F + Fd
Sterowanie wnioskowaniem
Przegląd grafu wnioskowania musi się z konieczności odbywać w sposób sekwencyjny, a zatem algorytm
wnioskujący będzie wykonywać weryfikację stwierdzeń w ustalonym porządku. Stąd konieczność
dokonywania pewnych wyborów w każdym z wymienionych wyżej algorytmów – konieczność sterowania
wnioskowaniem. Sterowanie wnioskowaniem ma kluczowe znaczenie z punktu widzenia efektywności
procesu przeszukiwania – nie trzeba chyba przekonywać, że im mniejsza liczba odwiedzanych węzłów grafu
wnioskowania, tym szybszy proces wnioskowania.
Sterowanie wnioskowaniem wstecz
W przypadku wnioskowania wstecz, wybór dotyczy kolejności rozważania alternatywnych definicji
predykatu, a także kolejności analizowania składników przesłanki reguły.
Ta pierwsza decyzja ma wpływ na szybkość poruszania się w głąb grafu wnioskowania, co może
przyspieszyć moment pierwszego dojścia do węzła „prawda” (a niekiedy zależy nam nie na wszystkich, lecz
na jakimkolwiek sposobie udowodnienia prawdziwości stwierdzenia).
Druga decyzja z kolei rzutuje na kolejność unifikacji zmiennych pomocniczych, a zatem na „szerokość”
zbioru węzłów będących alternatywnymi unifikacjami. Przykładowo, w definicji predykatu kr_ko(Kraj,
Kont) w przykładzie przyjęta została następująca kolejność rozważania składników części przesłankowej:
m_kr(Miasto, Kraj),
m_ko(Miasto, Kont).
Powoduje to, że w trakcie wnioskowania wykonana będzie najpierw próba unifikacji predykatu m_kr, a
później m_ko. W efekcie, będzie 5 prób unifikacji m_kr i tylko dwie (Warszawa, Kraków) próby
unifikacji m_ko.
Przy odwrotnej definicji predykatu:
kr_ko(Kraj, Kont):m_ko(Miasto, Kont),
m_kr(Miasto, Kraj).
mielibyśmy 5 prób unifikacji m_ko (w tym cztery udane) i cztery próby unifikacji m_kr.
Wniosek: umiejętnie sterując wnioskowaniem można ograniczyć pracochłonność tego procesu.
W Prologu, decyzje dotyczące kolejności rozważania definicji i kolejności rozważania składników
koniunkcji przypadają w udziale programiście, gdyż maszyna wnioskująca dokonuje analizy w kolejności
zapisanej w programie: od lewej do prawej, od góry do dołu. Można sobie jednak wyobrazić nieco bardziej
zaawansowaną maszynę wnioskującą, która dokonywałaby tego wyboru w sposób automatyczny.
Przykładowo, można w procesie oceny stwierdzeń części przesłankowej jako pierwsze wybierać te, których
zmienne pomocnicze mają najmniej pomyślnych unifikacji.
Sterowanie wnioskowaniem w przód
W przypadku wnioskowania w przód, kluczową decyzją z punktu widzenia efektywności algorytmu jest
wybór definicji predykatu do zastosowania. Ze względu na fakt, że przed pomyślnym zakończeniem
wnioskowania nie jesteśmy w stanie określić, która definicja jest na którym etapie najlepsza, stosować
można rozmaite zdroworozsądkowe zasady postępowania, takie jak stosowanie definicji najrzadziej
dotychczas wykorzystywanej, definicji najbardziej ogólnej (o możliwie największej liczbie podstawień
zmiennych), najbardziej szczegółowej itp. Podobnymi kryteriami można się kierować również przy wyborze
definicji we wnioskowaniu wstecz.
Sterowanie wyborem reguł musi być wykonywane z duża ostrożnością, gdyż przy niefortunnych zasadach
sterowania, łatwo o wejście w nieskończoną ścieżkę wnioskowania.
Wybór metody wnioskowania
Jeśli mamy do wyboru dwa schematy wnioskowania (wstecz i w przód) – który z nich powinien być
wybrany?
Odpowiedź na to pytanie powinna być oparta na przewidywaniu, co do wielkości stopnia rozgałęziania
grafu wnioskowania w kierunku, w którym następuje wnioskowanie.
Przez stopień rozgałęziania rozumiemy średnią liczbę krawędzi, wychodzących z węzła w kierunku
wykorzystywanym w schemacie wnioskowania (tj. zgodnie z kierunkiem wynikania reguł w przypadku
wnioskowania w przód, a przeciwnie do tego kierunku w schemacie wnioskowania wstecz).
Jeśli odległość (rozumiana jako najkrótsza liczba strzałek do przejścia) między prawdziwym stwierdzeniem
a węzłem „prawda” wynosi n, zaś stopień rozgałęzienia wynosi a, wówczas przy odpowiednim sposobie
sterowania wnioskowaniem zostanie wykonana weryfikacja an stwierdzeń. Mogąc zatem wybierać kierunek
wnioskowania, wybierzemy ten o mniejszym stopniu rozgałęziania, co poskutkuje krótszym czasem
wnioskowania.
Rozwiązywanie problemów przez przeszukiwanie przestrzeni
Rozwiązanie sprowadza się w swej ogólnej postaci do pełnego przeglądu przestrzeni – odwiedzenia
wszystkich węzłów.
Algorytm przetwarza zbiór węzłów do odwiedzenia At, zbiór węzłów odwiedzonych Vt i bieżący węzeł st.
Algorytm rozpoczyna pracę od wyróżnionego węzła s0. Węzeł ten staje się węzłem odwiedzonym, zaś
wszystkie węzły z jego sąsiedztwa są dodawane do zbioru At. W głównej pętli, ze zbioru At jest wybierany
kolejny węzeł i jest dodawany do zbioru odwiedzonych Vt. Wszystkie węzły z jego sąsiedztwa, które nie
były jeszcze odwiedzone, są dodawane do zbioru At. Pętla jest wykonywana do osiągnięcia kryterium
zatrzymania, którym może być np. opróżnienie zbioru At bądź też znalezienie węzła st o szczególnych,
interesujących nas właściwościach.
Algorytm przeszukiwania przestrzeni
t=0
V0 = {s0}
At = N(s0)
Powtarzaj
Wybierz st+1 z At
Vt+1 = Vt ∪ {st+1}
At+1 = At ∪ N(st+1) - Vt
t=t+1
Dopóki nie jest spełniony warunek zatrzymania
W praktycznych realizacjach algorytmu przeszukiwania zbiór At jest realizowany jako kolejka lub stos.
Wybór węzła z kolejki At może być dokonywany na podstawie kolejności dodawania – wówczas uzyskuje
się ślepe strategie przeszukiwania – bądź też wybór ten jest wykonywany na podstawie dodatkowych
właściwości węzła – prowadzi to do tzw. poinformowanych strategii przeszukiwania (tzw. strategie
„najpierw najlepszy” – best first).
W ramach ślepych strategii przeszukiwania, wybór węzła st z kolejki At oraz dodawanie nowych węzłów
może być wykonywane według reguły rządzącej kolejką LIFO (stos) albo FIFO. Uzyskuje się odmienny
sposób sterowania przeszukiwaniem, prowadzący do dwóch różnych realizacji algorytmu: przeszukiwania w
głąb i wszerz.
Ślepe strategie przeszukiwania
Ślepymi strategiami przeszukiwania nazywane są takie sposoby sterowania przeszukiwaniem, w których
zbiór At jest uporządkowany w kolejności określonej sekwencją dodawania do niego kolejnych elementów.
Strategia w głąb
W tej strategii zbiór At jest reprezentowany jako kolejka LIFO (stos). Oznacza to, że po wyborze węzła st i
usunięciu go z kolejki At, elementy z sąsiedztwa N(st) wchodzą niejako „na miejsce” st. W konsekwencji,
węzeł ostatnio dodany do listy będzie pierwszym z niej wybranym.
Strategia wszerz
W tej strategii, zbiór At jest kolejką FIFO. Po wybraniu węzła st i usunięciu go z kolejki At, elementy z
sąsiedztwa N(st) są wstawiane na koniec kolejki. Powoduje to, że kolejnym rozważanym węzłem będzie ten,
który był najdawniej dodany (a zatem był dodany bezpośrednio po st).
Jeśli celem przeszukiwania jest odnalezienie docelowego węzła o pożądanych cechach, wówczas strategia w
głąb ma szanse znaleźć ten węzeł szybciej niż metoda wszerz. Jeśli w przestrzeni przeszukiwań istnieją
ścieżki nieskończonej długości, nie można zagwarantować, że strategia w głąb nie „pójdzie” taką właśnie
ścieżką.
Natomiast, jeśli celem przeszukiwania jest znalezienie najkrótszej ścieżki łączącej węzeł początkowy z
docelowym, wówczas stosując strategię wszerz mamy gwarancję jej wyznaczenia. Unikamy w ten sposób
ryzyka ścieżki nieskończonej.
Przykład
Załóżmy, że zamierzamy odnaleźć drogę w labiryncie, prowadzącą z kratki A do kratki B. Każda kratka ma
co najwyżej czterech sąsiadów (brak sąsiada jest zaznaczony grubą linią – „ścianą” labiryntu).
Zatem kratki labiryntu są węzłami
przestrzeni przeszukiwań.
Poszukiwanie wyjścia polega na tym, że
wpisujemy do kratek numery iteracji, w
których były one węzłem rozwijanym przez
algorytm przeszukiwania. Po odnalezieniu
rozwiązania drogę będziemy odtwarzać, idąc
od węzła B do węzła A w kierunku
sąsiedniej kratki o najmniejszym numerze.
Załóżmy, że obie metody przeszukiwania rozważają kratki sąsiadujące w kolejności: góra, lewo, dół, prawo.
Dostajemy wówczas dla obu metod kolejność odwiedzania kratek labiryntu jak poniżej.
Będzie widać skutki efektu odwrócenia kolejności rozważania węzłów sąsiedztwa wynikającego z działania
kolejki LIFO. Widać także, że pierwsza ścieżka, znaleziona przez algorytm przeszukiwania w głąb, nie jest
ścieżką najkrótszą. Z drugiej jednak strony, w tym akurat zadaniu metoda wszerz wymaga odwiedzenia
wszystkich pól labiryntu, aby znaleźć pierwsze (i zarazem najlepsze) rozwiązanie.
Metoda w głąb
Metoda wszerz
Współczesne zastosowania sztucznej inteligencji
• Technologie oparte na logice rozmytej – powszechnie stosowane do np. sterowania przebiegiem
procesów technologicznych w fabrykach
• Systemy ekspertowe – systemy wykorzystujące bazę wiedzy i mechanizmy wnioskowania do
rozwiązywania problemów
• Maszynowe tłumaczenie tekstów – jeszcze w powijakach
• Sieci neuronowe – stosowane z powodzeniem w wielu zastosowaniach wymagających umiejętności
uogólniania i uczenia się
• Uczenie się maszyn – dział sztucznej inteligencji zajmujący się algorytmami potrafiącymi uczyć się
podejmować decyzje bądź nabywać wiedzę
• Eksploracja danych – omawia obszary, powiązanie z potrzebami informacyjnymi, pozyskiwaniem
wiedzy, stosowane techniki analizy, oczekiwane rezultaty
• Rozpoznawanie obrazów – stosowane są już programy rozpoznające osoby na podstawie zdjęcia
twarzy lub rozpoznające automatycznie zadane obiekty na zdjęciach satelitarnych
• Rozpoznawanie mowy i rozpoznawanie mówców – stosowane już powszechnie na skalę komercyjną
• Rozpoznawanie pisma (OCR) – stosowane już masowo np. do automatycznego sortowania listów, oraz
w elektronicznych notatnikach
• Sztuczna twórczość – istnieją programy automatycznie generujące krótkie formy poetyckie,
komponujące, aranżujące i interpretujące utwory muzyczne, które są w stanie skutecznie „zmylić”
nawet profesjonalnych artystów, w sensie, że nie rozpoznają oni tych utworów jako sztucznie
wygenerowanych
• W ekonomii powszechnie stosuje się systemy automatycznie oceniające m.in. zdolność kredytową,
profil najlepszych klientów, czy planujące kampanie reklamowe
• Niektóre gry: szachy, warcaby, kółko i krzyżyk, kostka Rubika, Puzzle, Scrabble
Porażki sztucznej inteligencji
•
•
•
•
•
•
•
•
Percepcja, rozumienie obrazów
Rozwiązywanie problemów, rozumowanie
Kontrola i planowanie zachowania
Rozumienie i używanie języka naturalnego
Programy skutecznie wygrywające w niektórych grach: Go, brydż sportowy
Programy idealnie naśladujące ludzi, rozmawiające przy użyciu tekstu i potrafiące przejść test Turinga.
Programy skutecznie tłumaczące teksty literackie i mowę potoczną
Sterowanie samochodem
Szukamy przyczyn porażek
•
•
•
•
Zbyt naiwne podejścia?
Zbyt teoretyczne, oderwane od zastosowań?
Ignorowanie prawdziwych problemów i wyzwań?
„Słonie nie grają w szachy”, Brooks, 1986
Paradoks Moraveca
„Stosunkowo łatwo sprawić, żeby komputery przejawiały umiejętności dorosłego człowieka w testach na
inteligencję albo w grze w warcaby, ale jest trudne albo wręcz niemożliwe zaprogramowanie im
umiejętności rocznego dziecka w percepcji i mobilności” – H. Moravec, lata 80-te XX wieku
„Główną lekcją, wyniesioną z trzydziestu pięciu lat badań nad SI jest to, że trudne problemy są łatwe, a
łatwe problemy są trudne. Umysłowe zdolności czterolatka, które uważamy za oczywiste − rozpoznanie
twarzy, podniesienie ołówka, przejście przez pokój – faktycznie rozwiązują jedne z najtrudniejszych
inżynieryjnych problemów... Gdy pojawi się nowa generacja inteligentnych urządzeń, to analitycy giełdowi,
inżynierowie i ławnicy sądowi mogą zostać zastąpieni maszynami. Ogrodnicy, recepcjoniści i kucharze są
bezpieczni w najbliższych dekadach” – S. Pinker,
Wysokopoziomowe rozumowanie wymaga niewielkiej mocy obliczeniowej, natomiast niskopoziomowa
percepcja i zdolności motoryczne wymagają olbrzymiej mocy obliczeniowej
Wyjaśnienie paradoksu
• Powinno się oczekiwać, że trudność w odtworzeniu jakiejś ludzkiej umiejętności będzie proporcjonalna
do czasu, przez jaki ta umiejętność ewoluowała u zwierząt
• Najstarsze ewolucyjnie umiejętności są w większości nieświadome i ludzie wykonują je bez wysiłku
• Powinno się zatem oczekiwać, że umiejętności, które ludzie wykonują bez wysiłku, będą trudne do
odtworzenia, a umiejętności, które wymagają wysiłku, mogą nie być trudne
Umiejętności, które ewoluowały przez miliony lat: rozpoznawanie twarzy, poruszanie się, ocena ludzkich
motywacji, łapanie przedmiotów, rozpoznawanie głosu, ustalanie celów, uważna obserwacja, zdolności
motoryczne, zdolności społeczne itp.
Umiejętności, które pojawiły się niedawno: matematyka, inżynieria, gry, logika, nauka. Są one trudne dla
człowieka, ponieważ ludzkie ciała i umysły nie są dostosowane do ich realizacji. Ludzie mieli co najwyżej
kilka tysięcy lat na ich ulepszanie, głównie przez ewolucję kulturową.
Wniosek: aby przejawiać „prawdziwą” inteligencję, maszyny muszą mieć ciała i wchodzić w interakcję z
prawdziwym światem...
Czy maszyna dorówna człowiekowi?
Turing zapowiadał w roku 1950, że z końcem XX stulecia inteligencja komputerów tak zrówna się z ludzką,
że nie będziemy w stanie odróżnić umysłu ludzkiego od maszyny cyfrowej.
Wiemy już, że tak się nie stało.
Ta pomyłka Turinga nie odstrasza następnych prognostów. Inni naukowcy/filozofowie podpisują się pod
prognozą, że około roku 2030 dzięki postępom elektroniki molekularnej sprawność komputerowego
przetwarzania danych dorówna mózgowi ludzkiemu; potem ma nastąpić już samoczynny rozwój inteligencji
robotów, które prześcigną ludzi i zechcą ich sobie podporządkować.
A właściwie to jakiego typu inteligencję chcemy zbudować?
H. Gardner (1993) wyróżnił siedem typów inteligencji:
logiczno-matematyczną, lingwistyczną, przestrzenną, muzyczną, kinestetyczną, inter i intra-personalną,
ostatnio dodano do tego m.in. inteligencję emocjonalną
SI nie musi dobra we wszystkim... musi być wystarczająco szeroka by osiągnąć kompetencje w kilku
dziedzinach, np. różnych grach
Nagroda Loebnera
Nagroda ufundowana przez Hugha Loebnera w 1990 roku, dla programisty, który zdoła napisać program,
który skutecznie przejdzie Test Turinga
Test Turinga to sposób określania zdolności maszyny do posługiwania się językiem naturalnym i
pośrednio mającym dowodzić opanowania przez nią umiejętności myślenia w sposób podobny do
ludzkiego. Test ten został zaproponowany w 1950 roku przez Alana Turinga. Turing zaproponował
ten test w celu zamiany pełnego emocji i w jego pojęciu bezsensownego pytania "Czy maszyny
myślą?" na pytanie lepiej zdefiniowane.
– przyznawana od 1990 roku
– ograniczony test Turinga: jeśli 50% sędziów uzna za człowieka: nagroda 25000$; dla audio-wizualnej
interakcji: 100000 $
– sędziowie mają ponad 15 minut na konwersację
– ocena programów i ludzi, na ile sztuczny/prawdziwy w skali 1-10
Przykład konwersacji (2000)
PROGRAM: Hello. My name is Albert. Who are you?
JUDGE002: Greetings, I'm judge 2
PROGRAM: I'm not sure what to talk about with you. Are you a girl or a boy?
JUDGE002: girl. how are you?
PROGRAM: Are you married? I'm doing just fine, thanks.
JUDGE002: would you like to talk about somethng interesting?
PROGRAM: MP is an abbreviation for Member of Parliament.
JUDGE002: right, why did you say that?
PROGRAM: I just felt like it.
JUDGE002: okay, did you hit a wrong button?
PROGRAM: Do you come from around here?
JUDGE002: yes, do you?
PROGRAM: No I don't.
Wyniki w 2000 r.
Program Alice oszukał sędziów nr 1 i 2
Można zaobserwować znaczny postęp z roku na rok, jeżeli chodzi o jakość programów. Na przykład, w roku
2000 najsłabszy człowiek był lepszy od najlepszego programu 3.3 razy, w 2004 r. już tylko 1.9 razy.
Ale: od 2005 roku obserwuje się tendencję odwrotną – trudniej oszukać sędziów...
Wyniki 2010
4 programy, 4 osoby, 4 sędziów.
Tylko jeden z sędziów (profesor, organizator) pomylił człowieka z programem
Konwersacja z roku 2006:
Judge: Do you know any good jokes?
Joan: I don’t even know any bad ones. I just can’t remember them for very long.
Judge: Tell me a joke.
Joan: Sorry, I’m not very good at telling jokes.
Judge: Please tell a joke.
Joan: What do you get if you walk under a cow?
Judge: I don’t know?
Joan: A pat on the head.
Judge: That’s very good.
Joan: I know.
Watson i Jeopardy (Vabank)
Program IBM Watson w lutym 2011 roku zmierzył się z dwoma mistrzami teleturnieju Jeopardy (w Polsce –
Vabank), odpowiadając na pytania z różnych dziedzin
Watson wygrał 77 141 $, eksperci: Ken – 24 000$, Brad – 21 600 $
Reguły są niekorzystne dla maszyny, bo ludzie zgłaszają się słysząc pytanie natychmiast po jego
zakończeniu, a maszyna ma opóźnienie zanim przeanalizuje pytanie i może się zgłosić
Poprawność odpowiedzi sięgała 85-95%
Watson działa na superkomputerze IBM - Blue Gene/P, 15 TB RAM, 2,880 rdzeni procesorów, 80 Tflop
Baza danych uwzględnia encyklopedie, słowniki, artykuły, bazy leksykalne, literaturę piękną. Użyto ok. 100
algorytmów do analizy tekstu
Watson zaliczył parę wpadek, np. kategoria: „Also On Your Computer Keys”, pytanie: „It's an abbreviation
for Grand Prix auto racing”, prawidłowa odpowiedź: „F1” (Watson jej nie udzielił)
Wizualny test Turinga
http://www.newscientist.com/embedded/visual-turing-test
Sztuczna Inteligencja – szanse, wyzwania, mrzonki (?)
Sztuczna inteligencja najprawdopodobniej znajdzie zastosowanie we wszystkich aspektach ludzkiego
życia...
• Szansa na rozwiązanie wielu problemów naukowych, których człowiek nie potrafi rozwiązać. Nowe
prawa naukowe, wynalazki odkryte przez SI
• Dalsza komputeryzacja społeczeństwa – prawie pewne jest, że wszelkie sprawy, które teraz załatwiamy
osobiście w przyszłości będziemy wykonywać za pośrednictwem komputera np: diagnoza lekarska
wydawana przez internet (lekarz – system ekspertowy), brak wykonywania prac fizycznych przez ludzi
– człowiek będzie wykonywał swoją pracę zdalnie
• Gry strategiczne: uczenie się na błędach w symulowanej rzeczywistości
• Askrypcja danych – łączenie informacji z wielu baz danych, uwzględniając prawdopodobieństwa
aprioryczne
Medycyna
Największe nadzieje na korzyści w przyszłości z rozwoju sztucznej inteligencji wiązane są z medycyną.
Tutaj możliwości są ogromne, jeśli połączymy sztuczną inteligencję z nanotechnologią.
W przyszłości, możemy sobie wyobrazić połączenie systemu ekspertowego z nanorobotem, który sam
znajdzie nieprawidłowość w organizmie człowieka i od razu przystąpi do leczenia (np. wykryje komórki
rakowe i je zlikwiduje)
Kilka problemów niealgorytmizowalnych, ważnych z medycznego punktu widzenia:
• Inteligentne wspomaganie decyzji: diagnozy medyczne, zalecenia dodatkowych testów, decyzje w
nagłych przypadkach
• Klasyfikacja struktur: rozpoznawanie symptomów, klasyfikacja stanu zdrowia, zachowań człowieka,
sensu wypowiedzi
• Kontrola: sprawdzanie dawek leków, możliwych interakcji leków, potencjalnych przeciwwskazań
• Planowanie: terapii, diety, optymalizacja działań w trakcie jej przebiegu
• Sterowanie: urządzeń podtrzymujących funkcje życiowe, monitorowanie stanu pacjenta i ostrzeganie w
sytuacjach kryzysowych
• Analiza obrazów: rozpoznawanie i interpretacja obrazów z aparatury medycznej, kontrola jakości
obrazu
• Detekcja regularności: wykrywanie niebezpiecznych symptomów w sygnałach EKG, EEG i innych.
• Separacja sygnałów z wielu źródeł: oczyszczanie obrazów z szumów, filtracja sygnałów elektrycznych
(np. mrugania powiek z EEG)
• Prognozowanie: np. rozwoju choroby
• Szukanie wiedzy w medycznych bazach danych, wniosków z obserwacji, inteligentne szukanie
informacji (szukanie semantyczne)
• Selekcja cech: na co warto zwrócić uwagę
• Redukcja wymiarowości problemu, możliwość oglądania danych w relacji do innych
• Optymalizacja wielokryterialna i optymalne spełnianie ograniczeń
• Zrozumienie umysłu: doświadczeń psychologicznych, sposobu rozumowania i kategoryzacji,
poruszania się i planowania, procesów uczenia – przydatne każdemu
Projekty lingwistyczne
• Inteligentne systemy wspomagające nauczanie języka
• kombinacja rozumowania i kompetencji językowych
• Filtrowanie informacji
Postępy w uczeniu się naturalnego języka zależą od automatycznego tworzenia, rozwijania i używania
obszernych baz wiedzy
Rozumowanie
• Partnerzy doradzający ludziom w pracy, oceniający ich rozumowanie (sprawdzanie twierdzeń),
podsuwający kreatywne idee, interesujące skojarzenia, szukający istotnych informacji dla danego
projektu
• Super-ekspert w wąskiej dziedzinie (Feigenbaum): potrzebuje sporo ogólnej inteligencji do
komunikacji + wyrafinowanego wnioskowania; realne zastosowania w matematyce, prawie,
bionaukach, partner dla eksperta stawiającego pytania, egzaminy jak studentów
• W matematyce: dowodzenie twierdzeń z różnych dziedzin, techniki metauczenia + specjalizowane
moduły
• Automatyczne rozwijanie genomicznych baz danych, tworzenie modeli procesów genetycznych,
białkowych, metabolicznych bioorganizmów
Sztuczna Inteligencja – zagrożenia
Wydaje się, że rozwój w dziedzinie sztucznej inteligencji może przynieść tyle samo zagrożeń, ile korzyści.
Może się też niestety okazać, że zagrożenia przeważą nad korzyściami.
Jeśli uda się zbudować maszyny „myślące“ tak jak człowiek to czeka nasz szereg niebezpieczeństw:
• Jeszcze głębsza alienacja społeczeństwa
• Bezrobocie: maszyny będą zastępowały człowieka w wielu dziedzinach, nawet tych wymagających
intelektu
• Maszyny „myślące“ na pewno zostaną wykorzystane do celów wojskowych
• Zagrożenie związane z brakiem kontroli nad takimi maszynami
• Najczarniejszy scenariusz to podporządkowanie sobie ludzi przez maszyny lub nawet unicestwienie
rodzaju ludzkiego
Dalsze lektury / projekty do obejrzenia
• Chyba wszystko o SI, ze szczególnym uwzględnieniem silnej sztucznej inteligencji (strona W. Ducha):
http://www.phys.uni.torun.pl/~duch/indexpl.html
• projekty CYC i OpenCYC („baza wiedzy zdrowego rozsądku”): http://cyc.com/, http://opencyc.org/
Download