Algorytmy Sztucznej Inteligencji - Strona Głównazsi.tech.us.edu.pl/~nowak/asiZ/ASI_Z_w1.pdf ·...

99
Algorytmy Sztucznej Inteligencji wykład nr 1 wnioskowanie i SE Agnieszka Nowak - Brzezińska

Transcript of Algorytmy Sztucznej Inteligencji - Strona Głównazsi.tech.us.edu.pl/~nowak/asiZ/ASI_Z_w1.pdf ·...

Algorytmy Sztucznej Inteligencjiwykład nr 1

wnioskowanie i SE

Agnieszka Nowak - Brzezińska

Słowem wstępu…

• Większość programów komputerowych niezachowuje sie szczególnie inteligentnie.

• Wszędzie tam, gdzie znamy dokładny algorytmrozwiązania zadania, inteligencja nie jestkonieczna.

• Wszędzie tam, gdzie rozwiązanie nie daje się ująćw ścisłe reguły lub wymaga tak wielkiej liczbyobliczeń, że jest niewykonalne, wymaga siępewnej dozy inteligencji z naszej strony, a jeśli mawykazywać ją program komputerowy, mówimy ointeligencji sztucznej.

Sztuczna Inteligencja (Artificial Intelligence, AI)

…to dziedzina nauki zajmująca

się rozwiązywaniem zagadnień

efektywnie

niealgorytmizowalnych w

oparciu o modelowanie wiedzy.

CI - numeryczneDane + Wiedza

AI - symboliczne

Soft Computing

Sieci neuronowe

Rachunek prawdop.

Uczenie maszynowe

Systemy ekspertowe

RozpoznawanieWzorców

Logikarozmyta

Algorytmyewolucyjne

Wizualizacja Metody statystyczne

Datamining

Optymalizacjabadania operacyjne

Rys historyczny

• Sztuczna inteligencja to terminzaproponowany przez John’a McCarthy’ego w1956 roku, na konferencji w DartmouthCollege poświęconej inteligentnymmaszynom.

• 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ć pierwszesystemy doradcze, użyteczne w praktyce.

• Okres partnerstwa: 1975-1980, gdy do badań nad AIwprowadzono metody kognitywistyki.

• Okres komercjalizacji: 1980-1990, gdy programy AI, aszczegó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órewymagają inteligencji, gdy są wykonywane przezczłowieka (M.Minsky)

• AI stanowi dziedzinę informatyki dotyczącą metod itechnik wnioskowania symbolicznego przez komputeroraz symbolicznej reprezentacji wiedzy stosowanejpodczas takiego wnioskowania (E. Feigenbaum)

• AI obejmuje rozwiązywanie problemów sposobamiwzorowanymi na naturalnych działaniach i procesachpoznawczych człowieka za pomocą symulujących jeprogramów komputerowych (R.J. schalkoff).

• Sztuczna inteligencja to automatyzacja zdolności przypisanychludzkiemu myśleniu, zdolności taki jak podejmowanie decyzji,,rozwiązywanie problemów,, uczenie się... [Bellman, 1978]

• Sztuczna inteligencja to badania prowadzone w kierunku stworzeniakomputerów, które myślą ... maszyn posiadających umysł..[Haugelland,, 1985]

• Sztuczna inteligencja to sztuka tworzenia maszyn zdolnych dowykonywania działań,, wymagających od człowieka zaangażowaniainteligencji.. [Kurzweil,, 1990]

• Sztuczna inteligencja to badania mające na celu stworzeniekomputerów posiadających umiejętności,, w których człowiek jestobecnie 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óreumożliwiają percepcjję, wnioskowanie i działanie.. [Winstton, 1992]

• Sztuczna inteligencja to badania mające na celu opis i symulacjęinteligentnego zachowania w kategoriach procesówobliczeniowych..[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”.

DefinicjaNie 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ń podobnychdo ludzkich.

* AI to nauka o tym, jak nauczyć maszyny robić rzeczy które obecnieludzie robią lepiej.

* AI to nauka o komputerowych modelach wiedzy umożliwiającychrozumienie, 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ść rozpoznawaniadanego obiektu w dowolnym kontekście.

• Zapamiętywanie, stawianie i realizacja celów, umiejętnośćwspółpracy, formułowanie wniosków, zdolność analizy, tworzenieoraz myślenie koncepcyjne i abstrakcyjne.

Uczenie się

Zdolność do uczenia się jest powszechnie uważana za jeden znajważniejszych przejawów inteligencji. Przez uczenie się rozumiemy, wnajprostszym ujęciu, zdobywanie wiedzy lub umiejętności (a takżedoskonalenie dotychczas posiadanej wiedzy lub umiejętności), napodstawie wspomagających informacji, takich jak doświadczenia czyprzykłady.

Rozważając sztuczne systemy uczące się będziemy przez uczenie sięrozumieć proces zmiany zachodzącej w systemie na podstawiedoświadczeń, która prowadzi do poprawy jego jakości działaniarozumianej jako sprawność rozwiązywania stojących przed systememzadań.

Systemy Ekspertowe

System ekspertowy to inteligentny program komputerowy stosującywiedzę i procedury rozumowania (wnioskowania) w celu rozwiązywaniaproblemó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 dziedzinydo bazy wiedzy, zaprojektowaniu maszyny wnioskującej na podstawieposiadanych informacji oraz dodaniu interfejsu użytkownika, służącegodo 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 innejosobie. Jeśli zadający pytania nie potrafi rozróżnić odpowiedzikomputera i człowieka, tzn. że program (maszyna) jest inteligentny.

• Spory o to, czy test Turinga we właściwy sposób definiujeinteligencję maszynową (lub "myślenie maszynowe"), dotyczyłygłównie trzech punktów:

• Maszyna, która przejdzie test Turinga, może być w staniesymulować ludzkie zachowanie konwersacyjne, lecz może to byćznacznie mniej niż prawdziwa inteligencja. Maszyna możezwyczajnie używać sprytnie wymyślonych reguł. Częstą ripostą wspołeczności zajmującej się badaniami nad sztuczną inteligencją jestzadanie pytania "A skąd wiemy, czy ludzie sami po prostu nieposługują się jakimiś sprytnie wymyślonymi regułami?".

• Maszyna może być inteligentna nie posiadając ludzkiej umiejętnościprowadzenia rozmowy.

• Wielu ludzi mogłoby nie być w stanie zaliczyć takiego testu. Zdrugiej strony, inteligencję innych ludzi oceniamy zazwyczajwyłą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 jegopojęciu bezsensownego pytania "Czy maszyny myślą?" na pytanie lepiejzdefiniowane, w ramach badań nad stworzeniem sztucznej inteligencji.

• Test wygląda następująco:

• sędzia - człowiek - prowadzi rozmowę w języku naturalnym zpozostał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ę, żemaszyna przeszła test. Zakłada się, że zarówno człowiek jak i maszynapróbują przejść test zachowując się w sposób możliwie zbliżony doludzkiego

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ąpieniaokreślonych sytuacji

• Diagnostyka -- wykrywanie przyczyn niesprawności w oparciu o zaobserwowanesymptomy

• Projektowanie -- określenie konfiguracji składowych systemu, spełniającejokreślone kryteria działania przy określonych ograniczeniach

• Planowanie -- określanie sekwencji działań prowadzących do celu przy zadanychwarunkach startowych

• Monitoring -- porównywanie zaobserwowanego funkcjonowania z oczekiwanymidziałaniami

• Serwis -- wykrywanie i usuwanie usterek

• Szkolenie i instruktaż -- wykrywanie i korygowanie błędów w rozumieniuprzedmiotu danej dziedziny

• Sterowanie automatyczne -- nadzór nad funkcjonowaniem złożonych systemów

Zalety i ograniczenia

• Tak szeroki wachlarz zastosowań wynika niewątpliwie zpewnych cech, które jednocześnie są zaletami systemówekspertowych. 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 budowysystemu ekspertowego,

• opracowanie specyfikacji systemu, zdefiniowanie jego zadań ioczekiwanych wyników;

• przejęcie wiedzy od ekspertów i jej opracowanie;

• wybór metody reprezentacji wiedzy oraz „narzędzi” do budowysystemu;

• 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 jestdobrem 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ą oneniepeł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 wielumiejscach;

• ekspertyza jest niezbędna w miejscach niedostępnych dla człowiekalub 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ę firmmających wiele oddziałów,

• poziom ekspertyzy jest stabilny - jej jakość nie zależy od warunków zewnętrznychi 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, d4R1: a1 & b1 -> c1R2: a1 & b2 -> c2R3: a1 & b3 -> c1R4: b3 & d3 -> e1R5: b3 & d2 -> e1R6: b3 -> e2R7: d4 -> f1R8: d4 & g1 -> f1R9: a1 -> d4

Przykład dla regułowej bazy wiedzy z 9 regułami:

Fakty: a1 , b1, d4R1: a1 & b1 -> c1R2: a1 & b2 -> c2R3: a1 & b3 -> c1R4: b3 & d3 -> e1R5: b3 & d2 -> e1R6: b3 -> e2R7: d4 -> f1R8: d4 & g1 -> f1R9: 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

2r8

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

2r8

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

2r8

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

2r8

b3 and d2

r5

r9

1 a

b

rootPojawia się fakt: b1 …więc zapalamy węzły z b1

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

2r8

b3 and d2

r5

r9

1 a

b

rootPojawia się fakt: d4 …więc zapalamy węzły z d4

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

r9r1r7

d4c1f1NOWE FAKTY…

a1 b1 d4 d4c1f1

Kierunek generowania faktów

Wnioskowanie…dla strategii FIFO

r9

r1

r7

r7r1r9

f1c1d4NOWE FAKTY…

a1 b1 d4 f1c1d4

Kierunek generowania faktów

Wnioskowanie…dla strategii FIFO

r9

r1

r7

r7r1r9

f1c1d4NOWE FAKTY…

Kierunek generowania faktów

Wnioskowanie…dla strategii LIFO

r9

r1

r7

r7 r1 r9

f1 c1 d4NOWE 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łyK- 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 SEKategoria Zastosowanie Przykład

InterpretacjaWnioskowanie opisów zdarzeń/sytuacji z czujników

Hearsay (Speech Recognition), PROSPECTOR

PredykcjaWnioskowanie prawdopodobnych konsekwencji danej sytuacji

Pretirm Birth Risk Assessment

DiagnostykaWnioskowanie na temat awarii w systemie na bazie obserwacji

CADUCEUS, MYCIN, PUFF, Mistral

ProjektowanieKonfigurowanie/Projektowanie przy określonych ograniczeniach

Dendral, Mortgage Loan Advisor, R1 (Dec Vax Configuration)

Planowanie Projektowanie ZdarzeńMission Planning for AutonomousUnderwater Vehicle

MonitorowaniePorównywanie obserwacji by wykluczać luki systemowe

REACTOR

DebuggingZapewnienie przyrostowych rozwiązań złożonych problemów

SAINT, MATHLAB, MACSYMA

InstrukcjaDiagnostyka, ocena i poprawazachować studentów

SMH.PAL, Intelligent ClinicalTraining,STEAMER

KontrolaInterpretacja, przewidywanie, naprawa i monitorowanie zachowańsystemowych

Real Time Process Control, Space Shuttle Mission Control

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