Systemy eksperowe Agnieszka Nowak Brzezińska Wykład I
Zakres materiału: Wprowadzenie do sztucznej inteligencji i systemów ekspertowych PC-Shell jako narzędzie do budowy szkieletowych systemów ekspertowych Metody wnioskowania w regałowych bazach wiedzy Zbiory przybliżone: podstawowe pojęcia, usuwanie niespójności z tablic decyzyjnych, generowanie reduktu i rdzenia tablicy decyzyjnej, generowanie reguł minimalnych. Rachunek zdań I i II rzędu. Rachunek predykatów. Prolog. Rachunek perceptów. Reprezentacja wiedzy niepewnej. Sieci semantyczne i Ramy jako alternatywna do regałowej reprezentacja wiedzy.
Zasady zdobycia zaliczenia z laboratorium: Uwaga: Obecność na wykładzie jest niezbędną by dobrze przygotować się do uczestnictwa w laboratorium z przedmiotu. Sprawozdanie z użytkowania narzędzia PC-Shell: stworzenie bazy wiedzy, przeprowadzenie wnioskowania, wprowadzenie własnych elementów języka programowania PC-Shell do bazy wiedzy. Sprawdzian z metod wnioskowania. Sprawdzian ze zbiorów przybliżonych. Sprawdzian z rachunku zdań. Sprawdzian z reprezentacji wiedzy niepewnej. Obecność na 75% zajęć.
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).
Sztuczna Inteligencja (Artificial Intelligence, AI) to dziedzina nauki zajmująca się rozwiązywaniem zagadnień efektywnie niealgorytmizowalnych w oparciu o modelowanie wiedzy.
Soft Computing Optymalizacja badania operacyjne Logika rozmyta Sieci neuronowe Algorytmy ewolucyjne Wizualizacja Data mining CI - numeryczne Dane + Wiedza AI - symboliczne Metody statystyczne Rachunek prawdop. Systemy ekspertowe Uczenie maszynowe Rozpoznawanie Wzorców
Rys historyczny Sztuczna inteligencja to termin zaproponowany przez John a McCarthy ego w 1956 roku, na konferencji w Dartmouth College poświęconej inteligentnym maszynom.
Okres ciemności: 1965-1970, w którym niewiele się działo, powoli opadał entuzjazm i pojawiły się głosy bardzo krytyczne. Renesans: 1970-1975, gdy zaczęto budować pierwsze systemy doradcze, użyteczne w praktyce. Okres partnerstwa: 1975-1980, gdy do badań nad AI wprowadzono metody kognitywistyki. Okres komercjalizacji: 1980-1990, gdy programy AI, a szczególnie systemy doradcze zaczęto sprzedawać komercyjnie
Inne definicje AI: AI to nauka mająca za zadanie nauczyć maszyny zachowań podobnych do ludzkich. AI to nauka o tym, jak nauczyć maszyny robić rzeczy które obecnie ludzie robią lepiej. AI to nauka o komputerowych modelach wiedzy umożliwiających rozumienie, wnioskowanie i działanie.
Co to inteligencja? Inteligencja jest umiejętnością przystosowywania się do nowych zadań i warunków życia albo sposobem, w jaki człowiek przetwarza informacje i rozwiązuje problemy. Inteligencja to także umiejętność kojarzenia oraz rozumienia. Wpływ na nią mają zarówno cechy dziedziczne jak i wychowawcze.
Najważniejsze procesy i funkcje składające się na ludzką inteligencję: Uczenie się i wykorzystywanie wiedzy, zdolność uogólniania, percepcja i zdolności poznawcze, np. zdolność rozpoznawania danego obiektu w dowolnym kontekście. Zapamiętywanie, stawianie i realizacja celów, umiejętność współpracy, formułowanie wniosków, zdolność analizy, tworzenie oraz myślenie koncepcyjne i abstrakcyjne.
Zastosowania, zadania SI stosuje się do rozwiązywania problemów: 1. Poszukiwanie algorytmów do gry w szachy, 2. Przetwarzanie języka naturalnego (automatyczne tłumaczenie zdań między różnymi językami, wydawanie poleceń słownych maszynom, a także wydobywanie informacji ze zdań mówionych i budowanie z nich baz wiedzy).
Definicje AI w literaturze: Jest nauką o maszynach realizujących zadania, które wymagają inteligencji, gdy są wykonywane przez człowieka (M.Minsky) AI stanowi dziedzinę informatyki dotyczącą metod i technik wnioskowania symbolicznego przez komputer oraz symbolicznej reprezentacji wiedzy stosowanej podczas takiego wnioskowania (E. Feigenbaum) AI obejmuje rozwiązywanie problemów sposobami wzorowanymi na naturalnych działaniach i procesach poznawczych człowieka za pomocą symulujących je programów komputerowych (R.J. schalkoff).
Dwa rodzaje Sztucznej Inteligencji Słaba (Weak AI) - potrafi rozwiązywać trudne zadania w sposób umożliwiający praktyczne zastosowanie, Mocna (Strong AI) - oznacza myślenie przybliżające myślenie ludzkie.
Uczenie się Zdolność do uczenia się jest powszechnie uważana za jeden z najważniejszych przejawów inteligencji. Przez uczenie się rozumiemy, w najprostszym ujęciu, zdobywanie wiedzy lub umiejętności (a także doskonalenie dotychczas posiadanej wiedzy lub umiejętności), na podstawie wspomagających informacji, takich jak doświadczenia czy przykłady. Rozważając sztuczne systemy uczące się będziemy przez uczenie się rozumieć proces zmiany zachodzącej w systemie na podstawie doświadczeń, która prowadzi do poprawy jego jakości działania rozumianej jako sprawność rozwiązywania stojących przed systemem zadań.
Systemy Ekspertowe System ekspertowy to inteligentny program komputerowy stosujący wiedzę i procedury rozumowania (wnioskowania) w celu rozwiązywania problemów, które wymagają doświadczenia ludzkiego (eksperta), nabytego przez wieloletnią działalność w danej dziedzinie. Ogólna idea SE polega na przeniesieniu wiedzy eksperta z danej dziedziny do bazy wiedzy, zaprojektowaniu maszyny wnioskującej na podstawie posiadanych informacji oraz dodaniu interfejsu użytkownika, służącego do komunikacji.
Kiedy nasz program lub maszyna jest inteligentna? Na to pytanie w 1950 roku próbował odpowiedzieć Alan Turing. Idea Testu Turinga polegała na tym, że człowiek za pomocą klawiatury i monitora zadaje te same pytania komputerowi i innej osobie. Jeśli zadający pytania nie potrafi rozróżnić odpowiedzi komputera i człowieka, tzn. że program (maszyna) jest inteligentny.
Uproszczony test Turinga CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) - rodzaj techniki stosowanej jako zabezpieczenie w formularzach na stronach WWW. Dla przesłania danych konieczne jest przepisanie treści z obrazka (zazwyczaj losowo dobranych znaków bądź krótkiego wyrazu). Obrazek ten jest prosty do odczytania przez człowieka, jednakże odczytanie go przez komputer jest, przynajmniej w założeniu, bardzo trudne.
Robotyka Rozwój robotów dzięki USA, które w latach 50-tych stosowały roboty np. w fabrykach do składania samochodów General Motors. Potem budowa maszyn manipulacyjnych dla przemysłu nuklearnego i poszukiwań oceanograficznych. Dziś mamy roboty takie, które wykonują banalne czynności typu: zrobienie kawy, podanie kapci, takie, które zastępują człowieka w trudnych procesach przemysłowych ale i takie, będące dumą współczesnej techniki.
Roboty wykonujące skomplikowane operacje chirurgiczne W 2002 roku robot sterowany przez profesora Louisa Kavoussi z odległości tysiąca km, wykonał operację chirurgiczną. Rola lekarzy nadzorujących ograniczyła się jedynie do znieczulenia pacjenta. W ten sposób chory nie musi czekać na przyjazd lekarza, co zmniejsza znacznie koszty i czas zabiegu.
Przetwarzanie mowy i języka naturalnego Badania obejmują: 1. Syntezę mowy (nauka języków obcych, odczytywanie informacji dla niewidomych), 2. Rozumienie słowa mówionego (automatic speech recognition) np. dyktowanie tekstów, wydawanie ustnych poleceń, rozpoznawanie użytkownika po głosie, 3. Rozumienie języka naturalnego wydobywanie istotnych zdań ze zdań zapisanych w postaci tekstu, 4. Tłumaczenie maszynowe tłumaczenie tekstów w różnych językach.
Heurystyki Heurystyka to twórcze rozwiązywanie problemów, zarówno logicznych jak i matematycznych przez eksperyment, metodą prób i błędów bądź odwołaniem się do analogii. Metody heurystyczne dają się świetnie stosować tam, gdzie rozwiązanie problemu wymaga olbrzymich ilości obliczeń. Heurystyki pozwalają eliminować niektóre obszary analiz, co zmniejszy koszty obliczeniowe i generalnie przyspieszy analizę.
Kognitywistyka To dziedzina nauki, która próbuje zrozumieć naturę umysłu i zajmuje się zjawiskami dotyczącymi umysłu. Istotną sprawą jest analiza naszego sposobu postrzegania świata i próba zrozumienia tego, co dzieje się w naszym umyśle, gdy wykonujemy elementarne czynności umysłowe. Korzysta się tutaj z doświadczeń nauk takich jak neurobiologia i psychologia. Ale na potrzeby tej nauki korzysta się także z zasobów antropologii, psychofizyki, logiki, lingwistyki, neurofizjologii, filozofii, sztucznej inteligencji i wielu innych gałęzi nauki.
Sztuczne życie (ang. Artificial life) To młoda dziedzina nauki (1987). Dziedzina nauki poświęcona zrozumieniu życia poprzez próby wydobycia podstawowych zasad dynamiki, mających wpływ na zjawiska biologiczne. Korzysta się tu z dorobku: biologii, chemii, fizyki, psychologii, robotyki, nauk komputerowych. Np.Framstick prowadzony od 97 roku przez polaków. Symulacje prowadzone są w wirtualnym, trójwymiarowych świecie (ze środowiskiem lądowym i wodnym). Organizmy to framsticki, zbudowane z patyczków, mające receptory (zmysły dotyku, równowagi i węchu) oraz narząd ruchu (mięśnie). Tu sterowaniem zajmuje się siec neuronowa. Framsticki rywalizują ze sobą o byt w środowisku poprzez walkę i poszukiwanie pożywienia.
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.
Zasady tworzenia systemu ekspertowego
Etapy tworzenia systemu ekspertowego: analiza problemu, pod kątem, czy kwalifikuje się on do budowy systemu ekspertowego, opracowanie specyfikacji systemu, zdefiniowanie jego zadań i oczekiwanych wyników; przejęcie wiedzy od ekspertów i jej opracowanie; wybór metody reprezentacji wiedzy oraz narzędzi do budowy systemu; organizacja i kodowanie wiedzy (prototyp, pełna wersja); weryfikacja i testowanie systemu.
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.
System ekspertowy służy do rozwiązywania problemów, które charakteryzują się jedną lub wieloma z następujących cech: problem nie da się sformalizować w postaci liczbowej; cele nie dadzą się opisać za pomocą matematycznych funkcji celu; nie istnieją formalne algorytmy rozwiązywania problemu; dane i wiedza systemu są obarczone nieznanym błędem lub są one niepełne, niepewne.
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
WnioskowanieR.pdf Dodatkowo
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 Czyli teoretycznie dla takich faktów jak a1, b1 i d4 można uaktywnić reguły: r1,r7 i r9. 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
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.
root b 1 a 1 2 d g a1 and b1 a1 and b2 3 4 1 r1 r2 3 b3 and d3 r7 d4 and g1 r9 a1 and b3 r4 2 r8 r3 r6 b3 and d2 r5
Końcowy Graf RETE root b 1 a 1 2 d g a1 and b1 a1 and b2 3 4 1 r1 r2 3 b3 and d3 r7 d4 and g1 r9 a1 and b3 r4 2 r8 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 r3 r6 b3 and d2 r5
Pojawia się fakt: a1 więc zapalamy węzły z a1 root b 1 a 1 2 d g a1 and b1 a1 and b2 3 4 1 r1 r2 3 b3 and d3 r7 d4 and g1 r9 a1 and b3 r4 2 r8 Conflict set r9 r3 r6 b3 and d2 r5 Reguła r9 zostaje dodana do conflict set i bierzemy kolejne fakty
Pojawia się fakt: b1 więc zapalamy węzły z b1 root b 1 a 1 2 d g a1 and b1 a1 and b2 3 4 1 r1 r2 3 b3 and d3 r7 d4 and g1 r9 a1 and b3 r4 2 r8 Conflict set r1 r9 r3 r6 b3 and d2 r5 Reguła r1 zostaje dodana do conflict set i bierzemy kolejne fakty
Pojawia się fakt: d4 więc zapalamy węzły z d4 root b 1 a 1 2 d g a1 and b1 a1 and b2 3 4 1 r1 r2 3 b3 and d3 r7 d4 and g1 Conflict set r9 a1 and b3 r4 2 r8 r7 r1 r9 r3 r6 b3 and d2 r5 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
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 r7 r1 r9 r7 r1 r9 NOWE FAKTY f1 c1 d4 Kierunek generowania faktów a1 b1 d4 f1 c1 d4
Wnioskowanie dla strategii FIFO r7 r1 r9 r9 r1 r7 NOWE FAKTY d4 c1 f1 Kierunek generowania faktów a1 b1 d4 d4 c1 f1
Wnioskowanie dla strategii FIFO r7 r1 Wnioskowanie dla strategii LIFO r7 r1 r9 r9 r1 r7 r9 r7 r1 r9 NOWE FAKTY d4 c1 f1 NOWE FAKTY f1 c1 d4 Kierunek generowania faktów 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.