Upload
buithuy
View
222
Download
0
Embed Size (px)
Citation preview
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
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.
Typy wnioskowania
• Wnioskowanie w przód (data driven)
• Wnioskowanie wstecz (goal driven)
• Wnioskowanie mieszane
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.
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ń.
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
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.
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