Algorytmy Sztucznej Inteligencji wykład nr 1
wnioskowanie i SE
Agnieszka Nowak - Brzezińska
Słowem wstępu…
• Większość programów komputerowych nie zachowuje sie szczególnie inteligentnie.
• Wszędzie tam, gdzie znamy dokładny algorytm rozwiązania zadania, inteligencja nie jest konieczna.
• Wszędzie tam, gdzie rozwiązanie nie daje się ująć
w ścisłe reguły lub wymaga tak wielkiej liczby
obliczeń, że jest niewykonalne, wymaga się
pewnej dozy inteligencji z naszej strony, a jeśli ma
wykazywać ją program komputerowy, mówimy o
inteligencji sztucznej.
Sztuczna Inteligencja (Artificial Intelligence, AI)
… to dziedzina nauki zajmująca się rozwiązywaniem zagadnień
efektywnie
niealgorytmizowalnych w
oparciu o modelowanie wiedzy .
CI - numeryczne Dane + Wiedza AI - symboliczne Soft Computing
Sieci neuronowe
Rachunek prawdop.
Uczenie maszynowe Systemy
ekspertowe
Rozpoznawanie Wzorców Logika
rozmyta Algorytmy
ewolucyjne
Wizualizacja Metody
statystyczne
Data mining
Optymalizacja badania operacyjne
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
Rys historyczny
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.
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).
• Sztuczna inteligencja to automatyzacja zdolności przypisanych ludzkiemu myśleniu, zdolności taki jak podejmowanie decyzji ,,rozwiązywanie problemów,, uczenie się... [Bellman, 1978]
• Sztuczna inteligencja to badania prowadzone w kierunku stworzenia komputerów, które myślą ... maszyn posiadających umysł..
[Haugelland,, 1985]
• Sztuczna inteligencja to sztuka tworzenia maszyn zdolnych do wykonywania działań,, wymagających od człowieka zaangażowania inteligencji.. [Kurzweil,, 1990]
• Sztuczna inteligencja to badania mające na celu stworzenie komputerów posiadających umiejętności,, w których człowiek jest obecnie lepszy.. [Rich i Knight,, 1991]
• Sztuczna inteligencja to badanie zdolności umysłowych za pomocą modeli obliczeniowych.. [Charniak i McDermott, 1985]
• Sztuczna inteligencja to studia nad modelami obliczeniowymi, które umożliwiają percepcjję, wnioskowanie i działanie.. [Winstton, 1992]
• Sztuczna inteligencja to badania mające na celu opis i symulację inteligentnego zachowania w kategoriach procesów obliczeniowych..[Schallkoff, 1990]
• Sztuczna inteligencja jest gałęzią informatyki, zajmującą się automatyzacją inteligentnego zachowania..[Luger i Stublefield, 1993]
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”.
Definicja
Nie ma efektywnego algorytmu? Drobna zmiana może wymagać całkiem innego programu! Nie można przewidzieć wszystkich zmian. Rozwiązanie wymaga inteligencji.
Sztuczna Inteligencja (Artificial Intelligence, AI) to dziedzina nauki zajmująca się rozwiązywaniem zagadnień efektywnie
niealgorytmizowalnych w oparciu o modelowanie wiedzy.
Inne definicje:
* 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.
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.
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.
• Spory o to, czy test Turinga we właściwy sposób definiuje inteligencję maszynową (lub "myślenie maszynowe"), dotyczyły głównie trzech punktów:
• Maszyna, która przejdzie test Turinga, może być w stanie symulować ludzkie zachowanie konwersacyjne, lecz może to być znacznie mniej niż prawdziwa inteligencja. Maszyna może zwyczajnie używać sprytnie wymyślonych reguł. Częstą ripostą w społeczności zajmującej się badaniami nad sztuczną inteligencją jest zadanie pytania "A skąd wiemy, czy ludzie sami po prostu nie posługują się jakimiś sprytnie wymyślonymi regułami?".
• Maszyna może być inteligentna nie posiadając ludzkiej umiejętności prowadzenia rozmowy.
• Wielu ludzi mogłoby nie być w stanie zaliczyć takiego testu. Z drugiej strony, inteligencję innych ludzi oceniamy zazwyczaj wyłącznie na podstawie tego co i jak mówią.
Test Turinga
• 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, w ramach badań nad stworzeniem sztucznej inteligencji.
• Test wygląda następująco:
• sędzia - człowiek - prowadzi rozmowę w języku naturalnym z pozostałymi stronami. Jeśli sędzia nie jest w stanie wiarygodnie określić, czy któraś ze stron jest maszyną czy człowiekiem, wtedy mówi się, że maszyna przeszła test. Zakłada się, że zarówno człowiek jak i maszyna próbują przejść test zachowując się w sposób możliwie zbliżony do ludzkiego
Zastosowania Systemów Ekspertowych
• Obszary zastosowań systemów ekspertowych obejmują w głównej mierze następujące dziedziny:
• Interpretacja -- formowanie wniosków następuje na podstawie danych
• Prognozowanie -- przewidywanie możliwych konsekwencji wystąpienia określonych sytuacji
• Diagnostyka -- wykrywanie przyczyn niesprawności w oparciu o zaobserwowane symptomy
• Projektowanie -- określenie konfiguracji składowych systemu, spełniającej określone kryteria działania przy określonych ograniczeniach
• Planowanie -- określanie sekwencji działań prowadzących do celu przy zadanych warunkach startowych
• Monitoring -- porównywanie zaobserwowanego funkcjonowania z oczekiwanymi działaniami
• Serwis -- wykrywanie i usuwanie usterek
• Szkolenie i instruktaż -- wykrywanie i korygowanie błędów w rozumieniu przedmiotu danej dziedziny
• Sterowanie automatyczne -- nadzór nad funkcjonowaniem złożonych systemów
Zalety i ograniczenia
• Tak szeroki wachlarz zastosowań wynika niewątpliwie z pewnych cech, które jednocześnie są zaletami systemów ekspertowych. Należą do nich:
• - większa dostępność ekspertyzy
• - mniejszy koszt ekspertyzy
• - mniejsze ryzyko w warunkach szkodliwych dla zdrowia ciągłość pracy
• - wyjaśnianie decyzji
• - szybkość uzyskania ekspertyzy
• stała, niewrażliwa na emocje i pełna ekspertyza
• - uczenie metodą prób i błędów
• - inteligentny interfejs człowiek-komputer
Architektura SE
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
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
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
Z menu wybieram „Wnioskowanie” do
przodu
Struktura BW
Blok deklaracji źródeł wiedzy
Zawartość folderu Sphinx 4.0
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
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.
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.
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b
root
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b
root
Końcowy Graf RETE
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
Pojawia się fakt: a1 …więc zapalamy węzły z a1
Reguła r9 zostaje dodana do „conflict set” i bierzemy kolejne fakty…
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b
root
r9 Conflict set
Conflict set
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b Pojawia się fakt: b1 …więc zapalamy węzły z b1 root
Reguła r1 zostaje dodana do „conflict set” i bierzemy kolejne fakty…
r9 r1
Conflict set
1
a1 and b1
r1
2
a1 and b2
r2
a1 and b3
d
3
r3
b3 and d3
g
3
r4
d4 and g1
4 1
r7
r6
2 r8
b3 and d2
r5 r9
1 a
b Pojawia się fakt: d4 …więc zapalamy węzły z d4 root
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 r9
r1 r7
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
r9 r1 r7
r9 r1
r7
d4 c1
f1 NOWE FAKTY…
a1 b1 d4 f1 c1 d4
Kierunek generowania faktów
Wnioskowanie…dla strategii FIFO
r9 r1 r7
r7 r1
r9
f1 c1
d4 NOWE FAKTY…
a1 b1 d4 d4 c1 f1
Kierunek generowania faktów
Wnioskowanie…dla strategii FIFO
r9 r1 r7
r7 r1
r9
c1 f1 NOWE FAKTY… d4
Kierunek generowania faktów
Wnioskowanie…dla strategii LIFO
r9 r1 r7
r7 r1 r9
f1 c1 d4
NOWE FAKTY…
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.
Drools
Przykłady SE
Kategoria Zastosowanie Przykład
Interpretacja Wnioskowanie opisów zdarzeń/sytuacji z czujników
Hearsay (Speech Recognition), PROSPECTOR
Predykcja Wnioskowanie prawdopodobnych
konsekwencji danej sytuacji Pretirm Birth Risk Assessment Diagnostyka Wnioskowanie na temat awarii w
systemie na bazie obserwacji CADUCEUS, MYCIN, PUFF, Mistral Projektowanie Konfigurowanie/Projektowanie przy
określonych ograniczeniach
Dendral, Mortgage Loan Advisor, R1 (Dec Vax Configuration)
Planowanie Projektowanie Zdarzeń Mission Planning for Autonomous Underwater Vehicle
Monitorowanie Porównywanie obserwacji by
wykluczać luki systemowe REACTOR Debugging Zapewnienie przyrostowych
rozwiązań złożonych problemów SAINT, MATHLAB, MACSYMA Instrukcja Diagnostyka, ocena i poprawa
zachować studentów
SMH.PAL, Intelligent Clinical Training,STEAMER
Kontrola
Interpretacja, przewidywanie,
naprawa i monitorowanie zachowań systemowych
Real Time Process Control, Space Shuttle Mission Control