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 HF 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, LiF 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 HF 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