1 Sztuczna Inteligencja: Wspólna dziedzina informatyki i robotyki

Transkrypt

1 Sztuczna Inteligencja: Wspólna dziedzina informatyki i robotyki
1
Sztuczna Inteligencja:
Wspólna dziedzina informatyki i robotyki, jako dyscyplin naukowych, których celem badań
jest konstrukcja systemów wykonujących zadania wymagające inteligencji
Cecha systemów umożliwiająca im wykonywania czynności wymagających inteligencji
Nauka o maszynach realizujących zadania wymagające inteligencji, gdy wykonywane są przez
człowieka
Dyscyplina zajmująca się badaniem właściwości myślenia z wykorzystaniem modeli
komputerowych
Słaba sztuczna inteligencja – komputer stanowi narzędzie do formułowania i testowania hipotez
dotyczących mózgu oraz symulacji czynności umysłowych
Mocna sztuczna inteligencja – odpowiednio zaprogramowany komputer jest równoważny mózgowi
wraz z jego czynnościami umysłowymi
Cechy systemów inteligentnych:
Rozwiązywanie problemów
Gromadzenie wiedzy
Uczenie
Komunikacja
Percepcja
Tworzenie
Rodzaje systemów z bazą wiedzy – systemy ekspertowe, systemy maszynowego uczenia, systemy
agentowe – regułowe, wnioskujące na podst. przypadków, wnioskujące na podst. modeli
Architektura systemów z bazą wiedzy
Architektura systemu ekspertowego
Składniki systemu ekspertowego to:
szkielet systemu składający się z:
o interfejsu użytkownika - który umożliwia zadawanie pytań, udzielanie informacji
systemowi oraz odbieranie od systemu odpowiedzi i wyjaśnień
o edytora bazy wiedzy - który pozwala na modyfikację wiedzy zawartej w systemie,
umożliwiając tym samym jego rozbudowę
2
o mechanizmu wnioskowania - który jest głównym składnikiem systemu ekspertowego
wykonującym cały proces rozumowania w trakcie rozwiązywania problemu
postawionego przez użytkownika
o mechanizmu wyjaśniającego - jednego z elementów interfejsu pomiędzy systemem
a użytkownikiem, który umożliwia użytkownikowi uzyskanie odpowiedzi dlaczego
system udzielił takiej, a nie innej odpowiedzi, albo dlaczego system zadał
użytkownikowi określone pytanie
baza wiedzy - jest to deklaratywna postać wiedzy ekspertów z danej dziedziny zapisana za
pomocą wybranego sposobu reprezentacji wiedzy, najczęściej reguł lub ram
baza danych zmiennych - która jest pamięcią roboczą przechowującą pewne fakty
wprowadzone w trakcie dialogu z użytkownikiem; baza ta umożliwia odtworzenie sposobu
wnioskowania systemu i przedstawienie go użytkownikowi za pomocą mechanizmu
wyjaśniającego.
Ekstrakcją wiedzy od ekspertów zajmują się na ogół inżynierowie wiedzy. Jest to zwykle długi
i żmudny proces, ponieważ wiedza stosowana przez ekspertów ma charakter intuicyjno-praktyczny,
często trudny do zwerbalizowania.
Role systemów z bazą wiedzy:
- Asystentów i doradców
- Krytyków
- Automatycznych planerów
- Projektantów
Mechanizmy wnioskowania:
Wnioskowanie dedukcyjne(niezawodne , od ogółu do szczegółu) – proces myślowy,
polegający na tym, że na podstawie zdań uznanych za prawdziwe dochodzi się do uznania
zdania nowego, wyprowadzając je na podstawie praw logiki oraz zgodnie z odpowiednimi
regułami wnioskowania z owych zdań uznanych
o Wnioskowanie wprzód(progresywne) – wyprowadzanie nowych faktów ze znanych
faktów
o Wnioskowanie wstecz(regresywne) – dowiedzenie prawdziwości postawionej
hipotezy na podstawie posiadanej wiedzy
Wnioskowanie indukcyjne(przybliżone, od szczegółu do ogółu) - to takie
wnioskowanie, w którym na podstawie wielu przesłanek jednostkowych,
stwierdzających, iż poszczególne zbadane przedmioty pewnego rodzaju mają pewną
cechę, dochodzi się (przy braku przesłanek negatywnych) do wniosku ogólnego, że
każdy przedmiot tego rodzaju taką cechę posiada. Jeśli wiadomo nam, że nie ma
innych przedmiotów danego rodzaju oprócz tych, które zostały wymienione w
przesłankach jednostkowych, mówimy o wnioskowaniu przez indukcję zupełną; jeśli
brak tej dodatkowej wiadomości- mówimy o wnioskowaniu przez indukcję nie
zupełną.
3
Opis otaczającego świata = fakty + procedury + relacje
Fakty – stwierdzenia w danym języku
Procedury – reguły, algorytmy wykorzystywane do interpretacji danych
Relacje – zależności i skojarzenia między faktami
Rodzaje wiedzy:
-deklaratywna(pojęcia, fakty, obiekty) – Co wiemy o problemie?
-proceduralna(reguły, strategie, procedury) – Jak rozwiązać problem?
-heurystyczna(intuicja, reguły zdroworozsądkowe)- Jakie są doświadczenia w rozwiązywaniu
problemu?
-strukturalna(związki między koncepcjami, reguły) – Jaka jest struktura wiedzy
-metawiedza(wiedza o typach i sposobach użycia) – Wiedza o wiedzy
Wiedza ze względu na:
- czas (dynamiczna, statyczna)
- związki między stanami (faktograficzna, przyczynowa)
- strukturę (obiekty, cechy, relacje, …)
- kompletność (pełna, niepełna)
- wiarygodność (pewna, niepewna)
Język reprezentacji wiedzy powinien dawać możliwość:
- dodawania nowych zdań (faktów, obiektów, zdarzeń, pojęć)
- zadawania pytań o to co jest w bazie wiedzy (dostęp do zgromadzonej wiedzy)
Wiedza:
Pewna – oparta na faktach i udowodnionych prawdach
Niepewna – potwierdzona tylko częściowo faktami i prawdami
Rozmyta – granica między prawdą i fałszem jest niejednoznaczna, występują stany
pośrednie pomiędzy 0 (fałsz) a 1 (prawda)
Język reprezentacji wiedzy jest zdefiniowany przez:
Syntaktykę – opisującą jak budować zdania(możliwe konfiguracje, jakie może
przyjąć zdanie)
Semantykę – określa w jakiej relacji pozostają zdania w stosunku do opisywanego
świata(determinuje fakty, do których odnoszą się zdania)
Jeżeli syntaktyka i semantyka zostały zdefiniowane precyzyjnie to język taki nazwiemy
LOGIKĄ
Sposoby reprezentacji wiedzy:
1) Nieformalne
a) Reguły(metoda proceduralna)
Reprezentacja w postaci <poprzednik, następnik>, <przesłanka,wniosek>,<warunek,akcja>
Interpretacja: bodziecreakcja, przyczynaskutek, sytuacjaakcja, następstwo czasowe,
definicja(opis). Reguły: proste i złożone, atomowe i ogólne
4
b) Sieci semantyczne(metoda deklaratywna)
Sieć semantyczna – graf wyrażający zależność między obiektami(węzły-obiekty, łukizależności)
Zastosowanie: logiczna reprezentacja wiedzy(modele danych), logika formalna(dostęp do
informacji relewantnej, reprezentacja znaczenia słów i przypadków
semantycznych(rozumienie języka naturalnego)
+ graficzna forma przemawiająca do wyobraźni, oddaje intuicję zależności pojęć i słów
+ brak formalnych ograniczeń w posługiwaniu się kluczowymi kategoriami: węzła i łuku
+ łatwość implementacji w językach programowania(LISP, Prolog)
+ efektywność dostępu do informacji
- duża pracochłonność przy opracowywaniu złożonych problemów
- ograniczone możliwości odwzorowania wiedzy niepewnej i niepełnej
c) Ramy(metoda obiektowa)
Rama – struktura danych dla reprezentowania typowej wiedzy o pojęciu lub
obiekcie(atrybuty, wartości, procedury). Ramy tworzą hierarchię.
Klasa – reprezentacja wiedzy o pewnym odróżnialnym zbiorze obiektów
Egzemplarz – reprezentacja wiedzy o konkretnym obiekcie
Relacja klasa-podklasa – reprezentacja powiązania IS-A pomiędzy klasą i jej
podklasą(generalizacja-kind of, agregacja-part of, asocjacja-semantic)
Funkcje – realizują określone zadania
Komunikaty – wiadomości przesyłane od jednego obiektu/użytkownika do innego
Reguły – akcja jaką może wykonać obiekt
Obiekt: sloty-reprezentują własności, metody-operacje możliwe do wykonania na obiekcie
Cechy obiektu: własne, dziedziczone(podklasa dziedziczy nazwy i wartości slotów, metody)
Dziedziczenie – sposób w jaki obiekty uzyskują informacje od obiektów z nimi powiązanych
Zastosowanie: wąska dziedzina i dobrze zdefiniowane powiązania między jej składowymi,
wiedza o hierarchicznej strukturze, wymaga mieszanej techniki reprezentacji wiedzy dużym
zakresie problemowym
Cechy: zorientowane obiektowo, uogólnienie/specjalizacja, wnioskowanie, klasyfikacja
d) Scenariusze – opisy stereotypowych ciągów zdarzeń lub działań zachodzących w
określonym kontekście. Pozwalają na efektywny zapis wiedzy o złożonych
zdarzeniach i ich sekwencjach
e) Modele obliczeniowe - adekwatność: reprezentacji i wnioskowania, efektywność:
wnioskowania i nabywania wiedzy
2) Formalne
a) Rachunek zdań
b) Rachunek predykatów
c) Rachunek sytuacyjny
5
SIECI NEURONOWE
Sieci neuronowe - perceptron
Układ nerwowy człowieka od początku był naturalnym źródłem inspiracji dla badaczy
sztucznej inteligencji. Stąd zainteresowanie neuronem - podstawową jednostką układu
nerwowego. Działanie naturalnych neuronów polega (w znacznym uproszczeniu) na:
Przekazywaniu sygnału nerwowego z "wejść" (dendrytów, czyli wypustek komórki
nerwowej stykających się z innymi komórkami) do "wyjścia" (neurytu, czyli często bardzo
długiej wypustki przekazującej sygnał do kolejnych neuronów).
Nieliniowej obróbce sygnału: stan wyjścia nie jest prostą sumą tego, co wpłynęło na
wejścia.
Modyfikacji połączeń z innymi neuronami poprzez synapsy (elementy łączące), co
umożliwia wzmocnienie lub osłabienie sygnału odbieranego z innego neuronu.
Podobne cechy miał mieć prosty model matematyczny, tzw. perceptron, opisany niżej.
Historycznie celem prac nad sieciami neuronowymi było osiągnięcie zdolności uogólniania
(aproksymacji) i uczenia się, właściwej mózgowi ludzkiemu (zgodnie z jedną z definicji
sztucznej inteligencji). Obecnie większość zastosowań sztucznych sieci neuronowych
koncentruje się na zadaniach znacznie mniej ambitnych, ale dzięki temu realistycznych obecnie sieci neuronowe są od dłuższego czasu wykorzystywane komercyjnie w zadaniach
sterowania urządzeniami, rozpoznawania obrazów czy pisma.
Perceptron - prosty model naturalnego neuronu - posiada wejścia (n zmiennych wejściowych
x1 ,...,xn ) przyjmujące wartości rzeczywiste lub binarne, będące odpowiednikiem dendrytów.
Wejścia te albo są połączone z innymi perceptronami, albo stanowią wejścia (np. czujniki)
całego układu. Wyjście w przypadku omawianego na tym wykładzie perceptronu stanowi
pojedynczą wartość 0 lub 1.
Parametry wewnętrzne perceptronu to n wag połączeń w1 ,...,wn (liczb rzeczywistych),
symulujących wagi synaps łączących naturalne neurony. Ostatnim parametrem jest wartość
odchylenia b (ang. bias) odpowiadająca za nieliniowe przekształcenie wejść w wyjście.
Pozyskiwanie wiedzy w sieciach neuronowych:
* Uczenie się pojęć – uczenie z nadzorem(z nauczycielem)
W trybie uczenia z nauczycielem (nazywanym również uczeniem pod nadzorem) oprócz
danych wejściowych posiadamy również sygnały wyjściowe, jakie chcemy uzyskać. Dobór
wag musi być przeprowadzony w taki sposób, aby aktualny sygnał wyjściowy y był
najbliższy wartości zadanej d.
Inaczej mówiąc, celem uczenia pod nadzorem jest minimalizacja odpowiednio
zdefiniowanej funkcji celu, która umożliwi dopasowanie wartości aktualnych odpowiedzi
neuronów wyjściowych do wartości żądanych.
6
Reguła delta
Z Regułą Delta mamy do czynienia, gdy uaktualnianie wag następuje każdorazowo po
prezentacji jednej pary uczącej. Gdy uaktualnianie zachodzi po prezentacji wszystkich par
uczących mamy wtedy do czynienia z tzw. skumulowaną regułą delta.
Reguła Delta polega na tym, że każdy neuron po otrzymaniu na swoich wejściach
określonych sygnałów (z wejść sieci albo od innych neuronów, stanowiących wcześniejsze
warstwy sieci) wyznacza swój sygnał wyjściowy wykorzystując posiadaną wiedzę w postaci
wcześniej ustalonych wartości wag, wartości wejść oraz (ewentualnie) progu. Wartość
sygnału wyjściowego, wyznaczonego przez neuron w danym kroku procesu uczenia
porównywana jest z odpowiedzią wzorcową podaną przez nauczyciela w ciągu uczącym. Jeśli
występuje rozbieżność - neuron wyznacza różnicę pomiędzy swoim sygnałem wyjściowym
a tą wartością sygnału, która była by - według nauczyciela prawidłowa. Ta różnica oznaczana
jest zwykle symbolem greckiej litery δ (delta) i stąd nazwa opisywanej metody.
Sygnał błędu (delta) wykorzystywany jest przez neuron do korygowania swoich
współczynników wagowych (i ewentualnie progu), stosując następujące reguły:
Reguła perceptronu ???
*Uczenie z krytykiem
Uczenie z krytykiem jest odmianą uczenia pod nadzorem, w którym nie występuje informacja
o wartościach pożądanych na wyjściu systemu, a jedynie informacja czy podjęta przez system
akcja (zmiana wartości wag) daje wyniki pozytywne w sensie pożądanego zachowania
systemu, czy negatywne.
Jeśli działania podjęte przez układ uczący dają wyniki pozytywny, to następuje wzmocnienie
tendencji do właściwego zachowania się systemu w podobnych sytuacjach w przyszłości.
W przeciwnym wypadku, jeśli wynik jest negatywny, następuje osłabienie tendencji takiego
działania systemu.
* Tworzenie pojęć – uczenie bez nadzoru(be z nauczyciela)
Stosujemy kiedy cel uczenia nie jest określony przez konkretne, prawidłowe przykłady.
Jedyną informacją, która musi wystarczyć jest sama wewnętrzna struktura sygnałów
wejściowych (przykładów, przy pomocy których można wytrenować sieć). Na podstawie
wewnętrznych zależności w podanych informacjach sieć neuronowa musi stworzyć własne
kategorie i będzie rozpoznawać (klasyfikować) podane sygnały wejściowe (generując
odpowiednie sygnały na wyjściu).
Przy uczeniu bez nadzoru nie ma dostępnej żadnej informacji (ani od nauczyciela, ani od
krytyka) opisującej poprawność udzielanej przez sieć odpowiedzi. W dalszym ciągu sieć ma
wejścia i wyjścia, ale nie istnieje sprzężenie zwrotne od środowiska. Jednostki i połączenia
muszą zatem okazywać pewien poziom samoorganizacji. Uczenie bez nadzoru jest możliwe
tylko wtedy, gdy istnieje redudancja danych wejściowych, inaczej dane były by nie do
odróżnienia od przypadkowego szumu. Sieci uczone bez nadzoru mogą:
7
Uczenie bez nadzoru stosuje się też do już nauczonych sieci np. z nauczycielem w celu
zwiększenia ich możliwości adaptacyjnych, lub w rozwiązaniach hybrydowych (jedna
warstwa tak, druga inaczej).
Algorytm ewolucyjny - algorytm wzorowany na biologicznej ewolucji, stosowane do
zadań optymalizacyjnych i modelowania.
Algorytmy ewolucyjne dzielą się na:
Algorytmy genetyczne
Programowanie genetyczne
Programowanie ewolucyjne
Przeszukiwanie rozproszone
Strategie ewolucyjne
Neuroewolucje
Zastosowanie algorytmów ewolucyjnych: inżynieria finansowa, predykacja szeregów
czasowych, rozpoznawania wzorców, handel elektroniczny itd.
Algorytm genetyczny - rodzaj algorytmu przeszukującego przestrzeń alternatywnych
rozwiązań problemu w celu wyszukania rozwiązań najlepszych. Sposób działania algorytmów
genetycznych nieprzypadkowo przypomina zjawisko ewolucji biologicznej.
Problem definiuje środowisko, w którym istnieje pewna populacja osobników. Każdy
z osobników ma przypisany pewien zbiór informacji stanowiących jego genotyp, a będących
podstawą do utworzenia fenotypu. Fenotyp to zbiór cech podlegających ocenie funkcji
przystosowania modelującej środowisko. Innymi słowy - genotyp opisuje proponowane
rozwiązanie problemu, a funkcja przystosowania ocenia, jak dobre jest to rozwiązanie.
Genotyp – określa budowę i funkcjonowanie organizmu żywego
Fenotyp – określa konkretną realizację genotypu
Genotyp składa się z chromosomów, gdzie zakodowany jest fenotyp i ewentualnie pewne
informacje pomocnicze dla algorytmu genetycznego. Chromosom składa się z genów.
Wspólnymi cechami algorytmów ewolucyjnych, odróżniającymi je od innych, tradycyjnych
metod optymalizacji, są;
stosowanie operatorów genetycznych, które dostosowane są do postaci rozwiązań,
przetwarzanie populacji rozwiązań, prowadzące do równoległego przeszukiwania
przestrzeni rozwiązań z różnych punktów,
w celu ukierunkowania procesu przeszukiwania wystarczającą informacją jest jakość
aktualnych rozwiązań,
celowe wprowadzenie elementów losowych.
8
Operatory przeszukiwania
W każdym cyklu (każde pokolenie) poddawane są "obróbce" za pomocą operatorów
ewolucyjnych. Celem tego etapu jest wygenerowanie nowego pokolenia, na podstawie
poprzedniego, które być może będzie lepiej dopasowane do założonego środowiska.
Operator krzyżowania ma za zadanie łączyć w różnych kombinacjach cechy pochodzące
z różnych osobników populacji, zaś operator mutacji ma za zadanie zwiększać różnorodność
tych osobników. O przynależności dowolnego algorytmu do klasy algorytmów genetycznych
decyduje głównie zastosowanie operatora krzyżowania i praca z całymi populacjami
osobników (idea łączenia w przypadkowy sposób genotypów nieprzypadkowo wybranych
osobników). Równie ważny jest operator mutacji. Jeśli krzyżowanie traktować jako sposób
eksploatacji przestrzeni rozwiązań, to mutacja jest sposobem na jej eksplorację. Może się
jednak zdarzyć, że dla niektórych zagadnień jej zastosowanie nie jest krytyczne.
Krzyżowanie polega na połączeniu niektórych (wybierane losowo) genotypów w jeden.
Kojarzenie ma sprawić, że potomek dwóch osobników rodzicielskich ma zespół cech, który
jest kombinacją ich cech (może się zdarzyć, że tych najlepszych). Sposób krzyżowania jest
zależny od kodowania chromosomów i specyfiki problemu.
Współczynnik krzyżowania powinien być wysoki ok 80-95%
Mutacja wprowadza do genotypu losowe zmiany. Jej zadaniem jest wprowadzanie
różnorodności w populacji, czyli zapobieganie (przynajmniej częściowe) przedwczesnej
zbieżności algorytmu. Mutacja zachodzi z pewnym przyjętym prawdopodobieństwem zazwyczaj rzędu 1%. Jest ono niskie, ponieważ zbyt silna mutacja przynosi efekt odwrotny do
zamierzonego: zamiast subtelnie różnicować dobre rozwiązania - niszczy je. Stąd w procesie
ewolucji mutacja ma znaczenie drugorzędne, szczególnie w przypadku długich
chromosomów.
Współczynnik mutacji powinien być bardzo niski ok 0,5-1%
Zastosowanie algorytmów genetycznych:
* Rozwiązywanie problemów NP.
* Projektowanie genetyczne
* Projektowanie obwodów elektrycznych
* Przeszukiwanie (Algorytmy genetyczne zapewniają skuteczne mechanizmy przeszukiwania
dużych przestrzeni rozwiązań. Ponieważ grupowanie należy do tej kategorii zadań to
oczywiste jest, że algorytmy genetyczne stosowane są w grupowaniu. Algorytmy genetyczne
są bardziej niezależne od wstępnej inicjalizacji oraz mniej skłonne do znajdowania lokalnych
rozwiązań w miejsce optymalnych. Przykładem może być zagadnienie grupowania w którym
w miejsce klasycznych algorytmów z powodzeniem stosuje się algorytmy genetyczne.)
Programowanie genetyczne – rozszerzenie algorytmu genetycznego w sensie złożoności
zadań, które stawiane są za cel oraz złożoności struktur na które pracuje
9
Strategie ewolucyjne
Koncepcja algorytmów w sensie behawioralnym – koncentracja na analizie podobieństw
zachowań między rodzicem a potomkiem lub szerzej pomiędzy populacją rodziców
i potomków
Reprezentacja rozwiązań – wektory, w których reprezentacja poszczególnych elementów
rozwiązania jest przedstawiona za pomocą liczb rzeczywistych. Każdy element postrzegany
jest jako cecha behawioralna a nie jako gen
Ewolucja chromosomów – zmiana dokonywana w trakcie procesu ewolucji losowo zmienia
każdą cechę behawioralną zgodnie z rozkładem normalnym
PLEIOTROPIA – właściwość genetyczna powodująca, że pojedynczy gen może wywołać
wiele zachowań fenotypowych, tzn. może być odpowiedzialny za wiele cech rzeczywistych
POLYGENIA – właściwość genetyczna powodująca, że pojedyncza cecha może być
zdeterminowana przez wzajemne oddziaływanie wielu genów
W modelu tym występuje zmiana wszystkich składników osobnika rodzicielskiego w procesie
kreacji potomka.
Strategie ewolucyjne:
* 1+1 – 1 rodzic tworzy 1 potomka, chromosomy współzawodniczą ze sobą
* µ+λ – µ chr. Rodzicielskich tworzy λ chr. potomnych, współzawodniczą ze sobą, a
najlepsze wybierane zostają do nowej populacji
* µ,λ – o przetrwanie rywalizuje λ chr. potomnych, które następnie zastępują chr.
rodzicielskie
Inne niż algorytmy genetyczne:
* znaczenie przypisywane jest operatorom genetycznym
* reprodukcja dokonywana jest deterministycznie
* inny sposób wykorzystania mutacji(Schwefel)
Zastosowania Strategii ewolucyjnych:
* optymalizacja przepływu prądu w sieci elektrycznej(min. Strat energii)
* optymalizacja systemu stymulatora serca
* optymalizacja procesów fermentacyjnych
Programowania ewolucyjne – obejmuje bardziej złożone problemy dotyczące
inteligentnych zachowań rozumianych w sensie zdolności do przewidywania reakcji
pomiędzy środowiskiem a działaniem ukierunkowanym na określony cel. Wykorzystaną do
tego reprezentacją mogą być automaty komórkowe ze skończoną liczbą stanów.
Reprezentacje używane w programowaniu ewolucyjnym są zwykle dopasowane do domeny
problemu. Najczęściej wykorzystywaną reprezentacją jest utworzony z liczb rzeczywistych
wektor o stałej długości. Zasadnicza różnica między programowaniem ewolucyjnym a innymi
podejściami (GA, GP, ES) polega na tym, że nie zachodzi tu wymiana materiału pomiędzy
poszczególnymi członkami populacji. Wykorzystywana jest jedynie mutacja.