SZTUCZNA INTELIGENCJA - NAJWAŻNIEJSZE ZAGADNIENIA DO EGZAMINU „0”
Definicja pojęcia sztucznej inteligencji
Sztuczna inteligencja (Artificial inteligence - AI) dziedzina badań na pograniczu informatyki i innych dziedzin pokrewnych ; Celem jest tworzenie systemów informatycznych (w tym maszyn) posiadających takie cechy jak:
- zdolność uczenia się, pozyskiwanie wiedzy,
- adaptacyjność (zdolność przystosowywania się do zmiennych warunków otoczenia)
- autonomiczność, niezależność.
Cechy te są charakterystyczne dla inteligencji ludzkiej, stąd termin „sztuczna” inteligencja.
Sztuczną inteligencję dzielimy na :
- silną sztuczną inteligencję
- słabą sztuczną inteligencję
Silna SI - zakłada możliwość budowy systemów o poziomie inteligencji dorównującej człowiekowi, albo przewyższającej go. Jest powiązana z innymi dziedzinami nauki (psychologia, filozofia, lingwistyka). W rezultacie pojawiła się nowa dziedzina badań - kognitywistyka - zajmująca się modelowaniem działań umysłu.
Słaba SI - zajmuje się problemami o szczegółowo i jasno postawionych celach i kryteriach ich osiągnięcia. Stąd często mówi się o słabej SI jak o inteligencji obliczeniowej (tzw. soft computing).
Jako część informatyki oraz dziedziny inżynierii ma zastosowania praktyczne, wykorzystując przy tym takie dziedziny matematyki i innych nauk pokrewnych, jak np.:
- logika formalna,
- teoria automatów,
- teoria zbiorów rozmytych,
- rachunek prawdopodobieństwa i statystyka.
W dalszej części rozważań, pod pojęciem SI będziemy rozumieć właśnie ten rodzaj inteligencji.
Ogólny przegląd metod sztucznej inteligencji:
- automatyczne wnioskowanie,
- transmutacje wiedzy,
- inteligentne przeszukiwanie,
- stosowanie heurystyk,
- algorytmy mrówkowe,
- maszynowe uczenie się,
- odkrywanie asocjacji i wzorców sekwencji,
- boty
Automatyczne wnioskowanie :
Opiera się na osiągnięciach logiki formalnej ; Przyjmując, że P oznacza zbiór przesłanek, W - wiedza posiadana przez system a K - zbiór konkluzji (wniosków) można opisać schemat wnioskowania za pomocą logicznej konsekwencji (gdzie P ∧ W |= K), gdzie |= jest symbolem konsekwencji.
Metody automatycznego wnioskowania stanowią podstawę systemów eksperckich oraz systemów automatycznego dowodzenia twierdzeń.
Są one również wykorzystywane w systemach uczących się, gdzie w zbiorze przesłanek znajduje się informacja „trenująca”, która prowadzi do pozyskania nowych konkluzji (a w konsekwencji do nowo nabytej wiedzy). Wiedzę tę system może wykorzystać w dalszym procesie uczenia się.
Taki rodzaj nauki nazywamy uczeniem dedukcyjnym (jego właściwością jest „zachowanie prawdy”, bo tylko z prawdziwości przesłanek P wynika poprawność konkluzji K).
Dla odmiany, jeśli K jest informacją trenującą, a P jest nową wiedzą generowaną w procesie uczenia się, to taki proces nazywamy wnioskowaniem indukcyjnym, albo uczeniem indukcyjnym.
Z prawdziwości K nie musi wynikać prawdziwość P. Jedyne co wiadomo, to że jeśli K jest fałszywe, to P też musi być fałszywe.
Przykład : { każdy prostokąt jest czworokątem; suma kątów czworokąta wynosi 360 stopni} ⇒
{suma kątów prostokąta wynosi 360 stopni}.
Problem : Na czym polega tu błąd rozumowania dedukcyjnego?
{wszystkie ryby maja płetwy; nurek ma płetwy} ⇒ {nurek jest ryba}.
Indukcja logiczna (nie mylić z indukcją matematyczną!) - rozumowanie polegające na wprowadzaniu nowych pojęć, twierdzeń, faktów na podstawie intuicyjnej analizy wejściowych przesłanek.
Indukcja [rozumowanie "w odwrotnym kierunku"] - ze zbioru przesłanek wyprowadzamy ogólne wnioski, teorie, prawa.
(Przykład : Przesłanka ->> Na podstawie obserwacji można zauważyć, że przed deszczem jaskółki latają nisko nad ziemia. Wniosek ->> jeżeli jaskółki nisko łatają, to znaczy, że będzie padać deszcz.
Rzecz w tym, że jeśli coś wydarzyło się wielokrotnie, nie świadczy jeszcze o tym, że zdarzy się to następnym razem.
Wg słownika Kopalińskiego :
Intuicja - wyczucie, przeczucie ; Proces bezpośredniego uzyskiwania wiedzy bez rozumowania, wnioskowania.
Proces ten polega na dopasowaniu danej sytuacji, problemu do znanych już szablonów i zależności.
Rzeczywiste myślenie człowieka jest ciągiem wnioskowań dedukcyjnych, intuicyjnych oraz wnioskowania na podstawie wzorców i transmutacji wiedzy nabytej.
Transmutacje wiedzy
To różnego rodzaju przekształcenia (dedukcyjne, indukcyjne) wiedzy wrodzonej, nabytej lub informacji trenującej, która generuje nową wiedzę, za pomocą np. opisów obiektów pewnej dziedziny.
W inferencyjnej teorii uczenia się (wywnioskowanej, wyedukowanej) przekształcenia te są pogrupowane w pary o działaniu odwrotnym :
- Generalizacja/specjalizacja - polegająca na poszerzaniu/zawężaniu zbioru obiektów, do którego odnosi się opis.
- Abstrakcja/konkretyzacja - polegająca na zmniejszaniu/zwiększaniu liczby szczegółów, do których odnosi się opis.
- Podobieństwo/kontrastowanie - polegająca na generowaniu wiedzy o pewnych zbiorach na podstawie ich podobieństwa/różnic w stosunku do innych zbiorów obiektów.
- Wyjaśnianie/predykcja - transmutacja polegająca na znajdowaniu wiedzy wyjaśniającej wiedze posiadana wcześniej, lub na przewidywaniu na jej podstawie nowej wiedzy.
Wg inferencyjnej teorii uczenia się - zapominanie jest wynikiem konkurencji (wzajemnego oddziaływania na siebie) reakcji dwóch zdań A i B. W sytuacji przypominania / ponownego uczenia się pierwszego zadania A, reakcje należące do drugiego zadanie B przeszkadzają w przywołaniu zdania.
Inteligentne przeszukiwanie i uczenie się systemów
Przykład : Komuś upada soczewka kontaktowa. Osoba która powinna odnaleźć soczewkę stara się dobrać odpowiednią metodę, za pomocą której, może rozwiązać problem (podobnie jest ze SI).
1) Przeszukiwanie wyczerpujące - metoda polega na poszerzaniu przeszukiwanej przestrzeni w sposób metodyczny i zorganizowany. Zawsze gwarantuje sukces, ale może być bardzo czasochłonna.
2) Przeszukiwanie analityczne - polega na uwzględnieniu wielu kryteriów przeszukiwania (np. równania matematyczne, opór powietrza, kierunek wiatru). Metoda gwarantuje sukces, ale jest uciążliwa i niepraktyczna.
3) Przeszukiwanie heurystyczne - określa przybliżony kierunek upadku i domyślając się na jaką odległość może upaść szkło. Jest to najbardziej naturalna człowiekowi metoda poszukiwań (najbardziej efektywna).
ad. 1) Zakłada się przestrzeń możliwych do osiągnięcia stanów końcowych (krótko mówiąc : rozwiązań). Oczekuje się optymalnego rozwiązania, w postaci jednego ze stanów końcowych przy małym użyciu pamięci i czasu, co nie zawsze jest możliwe do osiągnięcia.
<< Dobrym przykładem jest tutaj poszukiwanie drogi w LABIRYNCIE >>
ad. 1 oraz ad 2...) Przeszukiwanie dynamiczne przestrzeni stanów (gry)
Dodatkowo przestrzeń możliwych stanów (rozwiązań) zostaje rozszerzona na reakcje przeciwnika, który dąży do minimalizacji naszych szans na odnalezienie rozwiązania. Prowadzi to do przeszukiwania drzewa gry, z wszystkimi możliwymi do przewidzenia ruchami przeciwnika i ich konsekwencjami
(np. gra w szachy).
ad. 3) Metody heurystyczne
Pierwsze metody SI, powstałe w latach 50-tych XX wieku, wspierające przeszukiwanie przestrzeni stanów (zazwyczaj opiera się na liczbowym szacowaniu odległości od stanu końcowego albo ilości wszystkich możliwych do uzyskania kombinacji). Dobrze sprawdza się w przeciętnych zastosowaniach (poprawa efektywności). { przykładem może być również : gra w szachy}
Rok 1996, Garii Kasparow - maszyna Deep Blue, wynik 4:2 (maszyna przegrała, ale w niedługim czasie (2003 rok) komputer Deep Junior 7 posiadał już podobną ilość możliwych do przewidzenia ruchów/s) co mistrz szachowy).
Algorytmy mrówkowe
Algorytmy te powstały w oparciu o obserwację społeczności mrówek w poszukiwaniu pokarmu.
Główne różnice w zachowaniu „sztucznych mrówek” w porównaniu z rzeczywistymi:
• poruszają się zwykle między wierzchołkami grafu,
• szybkość zaniku śladu feromonowego można regulować,
• ilość feromonu zostawionego przez mrówkę, zależy od jakości otrzymanego przez nią rozwiązania.
Rozwiązania tych algorytmów należą do problemów kombinatorycznej optymalizacji. Klasyczny problem (problem komiwojażera). Bardzo duża złożoność obliczeniowa (klasyczna liczba operacji rzędu 109). Ich główne zastosowanie to : sortowaniu sekwencyjne, wyznaczanie tras w sieciach komputerowych.
Maszynowe uczenie się
• uczenie się, definiujemy jako proces zmian autonomicznie zachodzących w systemie, na podstawie jego doświadczeń, prowadzących do poprawy jakości działania (tej nauki).
• jeden z ważniejszych działów SI ; ma również powiązania z : automatycznym wnioskowaniem i przeszukiwaniem heurytycznym
• Teoria uczenia się oparta jest na podstawie wnioskowania , gdzie za pomocą wiedzy wrodzonej i informacji trenującej (a także procesie transmutacji) otrzymujemy nową wiedzę.
• najważniejsze zastosowanie : odkrywanie wiedzy w BD, automatyczne sterowanie, inne.
Odkrywanie asocjacji (kojarzenia) i wzorców sekwencji
(Wg słownika Kopalińskiego : asocjacja - jest to kojarzenie wyobrażeń, z których jedno przywołuje na myśl drugie).
Opiera się na odkrywaniu w danych pewnych współwystępujących, określonych atrybutów i zależności asocjacyjnych (kojarzeniowych). Są one opisywane za pomocą reguł asocjacyjnych, gdzie każda z nich zawiera dwie listy wartości atrybutów (jedna jest listą wartości warunkujących, a druga listą wartości warunkowych). Wzorce sekwencji dotyczą współwystępowania wartości atrybutów w układach z pewną dynamiką.
Boty (inteligentni agenci)
Są to inteligentne programy komputerowe służące najczęściej do przeszukiwania i pozyskiwania wiedzy. Dodatkowo mogą podejmować decyzje na bazie wcześniej zdobytej wiedzy.
Niektóre spotykane boty to na przykład:
• chatterboty - automaty do pogawędek
• searchboty - zajmują się automatyczną obsługa baz danych,
• shoppingboty - pomagają przy robieniu zakupów przez Internet
• databoty - oparte na sieciach neuronowych, funkcjonalnie podobne do searchbotów
Najbardziej znanym botem jest ALICE (Artifical Linguistic Internet Computer Entity - www.alicebot.org). Swoją sławę zawdzięcza rozmowie z człowiekiem, podczas której wzbogacił swoją wiedzę. Nie zdołał jednak przejść testu Turinga.
Co dalej ?
1. Żadna z maszyn dotychczas stworzonych nie wyszła poza zaproponowany przez człowieka zestaw zasad.
2. Sztuczne systemy inteligentne nie symulują w zasadzie działania naszego mózgu.
3. Maszyny przechodzą test Turinga w wąskim zakresie tematycznym (sport, szachy, medycyna).
4. Jeżeli czasem nam się wydaje, że maszyny przejawiają oznaki świadomości, to nie jest to świadomość w sensie filozoficznym.
5. W perspektywie kilkudziesięciu lat inteligentne maszyny będą naszymi partnerami w pracy i w domu.
6. Następnie komputery będą projektowały nowe generacje komputerów i robotów, odgrywając znacząca role w rozwoju inteligencji mieszkańców Ziemi.
KONIEC WYKŁADU 1 ZE SZTUCZNEJ INTELIGENCJI !!!!
WYKŁAD 2
Sztuczne sieci neuronowe
Sieci biologiczne
System nerwowy człowieka zbudowany jest z komórek nerwowych, zwanych neuronami. Ich liczba w mózgu człowieka dochodzi do 100 miliardów.
Dendryty to wypustki służące do wprowadzania informacji do neuronu. Każdy neuron ma jedną wypustkę - akson, która wysyła informację do innych neuronów. Neurony (na zasadzie procesów chemiczno - elektrycznych) przekazują między sobą pobudzenia, dzięki złączom nerwowym, zwanym synapsy. Pojedynczy neuron potrafi odbierać sygnały od kilku tysięcy innych neuronów.
Do każdego neuronu dochodzą sygnały (pobudzające, hamujące), które neuron sumuje. Jeśli ich suma algebraiczna przekracza wartość programową, to neuron - za pomocą aksonu, wysyła sygnał do innych połączonych neuronów.
Mózg jest siecią realizującą równoległe przetwarzanie sygnałów. Najważniejszą cechą mózgu jest zdolność uczenia się, za pomocą dopasowywania struktury sieci neuronowej. W czasie nauki zmieniają się siły połączeń między neuronami.
Budowa i działanie sztucznego neuronu
x = [x1,x2,...,xn] - wektor wartości wejściowych
w = [w1,w2,...,wn] - wektor wag synaptycznych
w0 = wartość progowa pobudzenia
s - wartość zsumowana
y - wartość wyjściowa
f - funkcja aktywacji
formuła działania neuronu:
y = f(s), gdzie s to :
s =
Opis działania sztucznego neuronu :
Wejściowe wartości pobudzenia x zostają wymnożone przez odpowiednie wagi w, a potem zsumowane do wartości s (warto zapamiętać, że wejście x0 i waga w0 pozwalają ustalić wartość progu pobudzenia).
Następnie suma ta zostaje przekształcona za pomocą funkcji aktywacji f do wartości wyjściowej y.
Wiedza pojedynczego neuronu zawarta jest w jego wagach, a uczenie neuronu polega na modyfikacji wektora wag.
Cechy sztucznych sieci neuronowych :
mogą uczyć się na przykładach
potrafią poradzić sobie z zaszumionymi danymi
przetwarzają dane równolegle
generalizują wiedzę szczegółową, w oparciu o przykłady
jeden algorytm potrafi rozwiązywać różne problemy
nie potrafimy wyjaśnić (i wskazać reguł) działania sztucznych sieci neuronowych
proces treningu trwa długo
Nie istnieją generalne zasady stosowania sieci dla konkretnych problemów. Wszystko sprowadza się do stosowania metody prób-i-błędów.
Niekompletny zbiór uczący (wartości i wagi) powoduje powstawanie błędów
Funkcje aktywacji (f):
Neurony dzielimy na trzy użyte funkcje aktywacji :
liniowe funkcje aktywacji f(s) = s
nieliniowe nieciągłe funkcje aktywacji
nieliniowe ciągłe funkcje aktywacji
Funkcje nieliniowe nieciągłe to: 1) funkcja signum ( f(s)=1/0/-1 dla s>0,s=0,s<0 ) ;
2) bipolarna skoku jednostkowego ( f(s) = 1/-1 dla s>0, s<=0 )
3) unipolarne skoku jednostkowego ( f(s) = 1/0 dla s>0, s<=0 )
Funkcje nieliniowe ciągłe : funkcja sigmoidalna unipolarna f (s) =
Perceptron
Perceptron - jest najprostszym sztucznym neuronem z bipolarną funkcją skoku jednostkowego (3).
Ze względu na funkcję aktywacji generuje dwie wartości wyjścia y.
W przypadku dwóch wejść x1, x2 perceptron dzieli płaszczyznę na dwie części. Podział ten wyznacza granica decyzyjna o równaniu : w1*x1+w2*x2+w0=0
Po przekształceniu otrzymujemy (równanie prostej decyzyjnej) :
Perceptron można uczyć (jest to uczenie z nadzorem). Polega ono na podawaniu na wejście neuronu ciągu uczącego w postaci ciągu wektorów
x1=[x1, x2, …, xn]
x2=[x1, x2, …, xn ]
...................................... >> dla których znamy prawidłowe wartości d1,d2 (??)
Po podaniu każdego wektora wejściowego xi obliczamy wartość wyjściową yi. Następnie dobieramy wagi na wejściu tak, aby zminimalizować błąd ri= |yi- di|. (cokolwiek to oznacza...)
Proces ten jest powtarzalny dla tych samych danych wejściowych, do momentu osiągnięcia dla wszystkich wektorów wejściowych błędów mniejszych od założonych.
Każde powtórne wykorzystanie tego samego ciągu uczącego nazywamy epoką. Przed rozpoczęciem nauki wagom nadaje się losowe wartości początkowe.
Model neuronu sigmoidalnego
Jest to neuron z funkcją aktywacji w postaci unipolarnej, lub bipolarnej funkcji sigmoidalnej.
Odgrywa on dużą rolę w konstruowaniu sieci neuronalnych. Jego zaletą jest różniczkowalność funkcji aktywacji, co ma znaczenie przy szacowaniu błędu.
Dlaczego sieci neuronowe ?
Dla pojedynczego neuronu zakres możliwych problemów do rozwiązania jest wąski. Dwuelementowy wektor wejściowy, który klasyfikuje obiekty rozdzielając je prostą, nie potrafi rozdzielić punktów dla funkcji logicznej XOR (-1 od +1). Nie dobierze swoich wag, aby rozwiązać problem XOR.
Problemy takie są w stanie rozwiązać sieci neuronowe, złożone z większej ilości neuronów.
Sztuczne neurony łączą się ze sobą, tworząc wielowarstwowe sieci neuronowe. Mamy wtedy do czynienia z uczeniem sieci, w którym nabywanie wiedzy przez poszczególne neurony jest procesem zależnym od innych neuronów (zwykle sąsiednich) w sieci.
Zbiór wszystkich wag w sieci służy do rozwiązywania zadań. Jednak w większości przypadków niemożliwe jest dokonanie interpretacji znaczenia poszczególnych wartości wag.
Topologie sieci neuronowych
Najważniejsze topologie (architektury połączeń) sztucznych sieci neuronowych, to:
Sieci jednokierunkowe - jeden kierunek przepływu sygnału i brak cykli w połączeniach między neuronami. Ilość neuronów w warstwach nie jest duża, warstwa ukryta nieraz nie występuje.
W uczeniu sieci wielowarstwowych ważną rolę pełni metoda, nazywana wsteczną propagacją błędów. Zostanie ona omówiona później....
W tej sieci dobór architektury polega na doborze liczby warstw sieci oraz ilości neuronów w każdej sieci. Ilości te zależą przede wszystkim od danego problemu. Pojedynczym neuron dzieli płaszczyznę na dwie części. Dwie warstwy mogą odwzorowywać tzw. simpleksy - wypukłe, ograniczone hiperpłaszczyznami wycinki przestrzeni. Trzy warstwy dają już możliwość wydzielania dowolnych obszarów. Tak więc, trójwarstwowa sieć jest w stanie rozwiązać szeroką gamę problemów.
Sieci rekurencyjne - występuje sprzężeniem zwrotnym. Na wejście sieci podawane są w sposób bezpośredni lub pośredni sygnały wejściowe sieci lub warstw.
Najprostszym przykładem sieci rekurencyjnej jednowarstwowej jest sieć Hopfielda (rys.).
Sygnały z wyjścia ponownie trafiają do wejścia neuronów, generując nowe sygnały. Proces ten trwa aż do ustabilizowania się sygnałów wyjściowych, w trakcie którego pojawiają się różne oscylacje (sygnał narasta/opada).
Inne znane topologie sieci rekurencyjnych to :
sieć Hamminga - trójwarstwowa sieć używana do rozpoznawania obrazów
sieć Elmana i sieć RTRN - używane do modelowania przebiegów czasowych i identyfikacji obiektów dynamicznych
sieć BAM - pamięć typu heteroasocjacyjnego (polega na kojarzenia 2 wektorów dowolnego typu).
Do wszystkich obecnie wymienionych rodzajów sieci stosuje się metody nauki z nadzorcą.
Sieci komórkowe - występuje sprzężenie wzajemne, dotyczące najbliższego sąsiedztwa.
(Rys. połączony kwadrat składający się z 9 mniejszych, połączony każdy-z-każdym).
Algorytm wstecznej propagacji błędów
Algorytm stosowany do uczenia wielowarstwowej sieci neuronowej. Zaczyna się on od podania pierwszego wektora uczącego na wejścia neuronów pierwszej warstwy. Otrzymane z wyjścia każdego neuronu warstwy pierwszej sygnały są podawane na wejścia wszystkich neuronów następnej
warstwy. Proces powtarza się aż do warstwy ostatniej. Znając sygnał wyjściowy warstwy ostatniej i sygnał wzorcowy, oblicza się błąd dla wszystkich neuronów warstwy ostatniej. Pozwala to na modyfikację wag neuronów, ale tylko z ostatniej warstwie. Dlatego błąd wyjściowy jest propagowany do tyłu, poprzez wszystkie warstwy poprzednie (z połączeniami neuronów między warstwami i z ich funkcją aktywacji). Modyfikacja ta jest przeprowadzana każdorazowo po podaniu na wejście kolejnego wektora uczącego.
Inicjalizacja wartości wag początkowych sieci
Im wartości startowe wag będą bliższe wartości optymalnej (minimalizującej funkcję błędu), tym uczenie będzie trwało krócej. Funkcja błędu jest funkcją wielu zmiennych, którymi są wszystkie wagi.
Zwykle ma ona wiele minimów lokalnych, gdzie znajduje się wartość minimalna błędu.
Sieć neuronowa jest definiowana poprzez następujące elementy :
funkcje aktywacji neuronów
architektura (topologia) sieci - wzorzec połączeń między neuronami
algorytm uczenia się / treningu - sposób dokonywania zmian wag połączeń.
KONIEC WYKŁADU 2 SZTUCZENEJ INTELIGENCJI !!!