Sztuczne sieci neuronowe

advertisement
Sztuczne sieci neuronowe
Paweł Bęczkowski
ETI 9.1
1
Czym określamy sztuczną sieć
neuronową
Sieć neuronowa (sztuczna sieć neuronowa) to ogólna
nazwa struktur matematycznych i ich programowych lub
sprzętowych modeli, realizujących obliczenia lub
przetwarzanie sygnałów poprzez rzędy elementów
wykonujących pewną podstawową operację na swoim
wejściu, zwanych neuronami. Oryginalną inspiracją takiej
struktury była budowa naturalnych układów nerwowych
w szczególności mózgu.
zbiór połączonych ze sobą układów scalonych zdolnych
do przetwarzania danych i układów pamięci imitujących
strukturę ludzkiego mózgu.
uproszczony model biologicznego systemu nerwowego,
dzięki któremu moŜemy próbować naśladować mózg,
obserwować pewne jego zachowania i zasady działania,
których nie jesteśmy w stanie wciąŜ zbadać w
rzeczywistości.
1
Do czego słuŜy sieć neuronowa
Przewidywanie
SSN stosuje się głównie do opracowywania prognoz ruchów na
giełdzie i do przewidywania pogody. Tak, nawet, zdawałoby się,
tak przypadkowe zmiany, jak zmiany giełdowe, podlegają jakimś
prawom. Doświadczony gracz potrafi przewidzieć, czy dana
operacja zakończy się powodzeniem. Nazywamy to
przeczuciem, szóstym zmysłem, lecz jest to jedynie
podświadome korzystanie z wiedzy nabytej równieŜ
nieświadomie przez lata obserwacji procesów giełdowych. A
trzeba pamiętać, Ŝe mózg człowieka, choć ogromny (w
porównaniu z SSN), zajmuje się przecieŜ niezliczoną ilością
innych zadań. Sieć natomiast jest przeznaczona wyłącznie do
jednego zadania i jemu poświęca cały swój potencjał.
Do czego słuŜy sieć neuronowa
Sterowanie
Naukowcy próbujący stworzyć robota o postawie humanoidalnej
borykają się głównie z problemem jego ruchu. Dość trudno jest
zaprojektować i oprogramować robota w taki sposób, by utrzymywał
równowagę. Niedoścignionym wzorem w tej dziedzinie jest mózg.
Człowiek, pies, kot, mogą wyczyniać najprzeróŜniejsze ewolucje nie
tracąc przy tym równowagi. Aby obliczyć wielkości i kierunki sił, z jakimi
balansować musi organizm podczas gwałtownego ruchu, potrzeba
matematyki na dość wysokim poziomie. Mózg zaś daje sobie radę z tymi
obliczeniami w ułamku sekundy wykonując w tym czasie dziesiątki
innych czynności. Odpowiednio zaawansowana sieć neuronowa
mogłaby czynić to samo. Właśnie SSN są wykorzystywane do
sterowania robotami przeznaczonymi do pracy w najtrudniejszych
warunkach.
2
Do czego słuŜy sieć neuronowa
Rozpoznawanie
Człowiek bardzo łatwo i bardzo szybko rozpoznaje
róŜne rzeczy (np..: twarz, dźwięk, kolor) pod
warunkiem, iŜ wcześniej się z nimi zetknął i
zapamiętał je.
W klasycznym komputerze wzorce poszczególnych
obiektów wypełniałyby jakąś bazę danych, a
algorytmy porównywałby kaŜdą ujrzaną twarz z tymi,
które są mu znane.
Do czego słuŜy sieć neuronowa
Kojarzenie
Jest ono bardzo zbliŜone do rozpoznawania. Dwa obiekty
(obrazki, dźwięki) mogą dla człowieka być podobne, natomiast
klasyczny algorytm nie stwierdzi między nimi podobieństwa.
Dla niego są to dwa róŜne ciągi znaków. MoŜna oczywiście
programowo "obejść" to utrudnienie - "powiedzieć"
komputerowi, jakie cechy obiektu są najbardziej znaczące i
mogą zawaŜyć na podobieństwie (lub niepodobieństwie) dwóch
(lub więcej) obiektów. Jest to jednak dla programisty wysoce
trudne zadanie. Natomiast w przypadku SSN nie ma potrzeby
nakazywania sieci brania pod uwagę tej czy innej cechy odnajdzie je sama. Więcej - moŜe zauwaŜyć takie zaleŜności, o
których programista nawet nie wie.
3
Z czego składa się „Ŝywa” sieć
neuronowa
Co to jest neuron?
Neuron jest to komórka nerwowa. W
sieci neuronowej - podstawowy jej składnik.
Jądro - "centrum obliczeniowe" neuronu. To
tutaj zachodzą procesy kluczowe dla
funkcjonowania neuronu.
Akson - "wyjście" neuronu. Za jego
pośrednictwem neuron powiadamia świat
zewnętrzny o swojej reakcji na dane
wejściowe. Neuron ma tylko jeden akson.
Wzgórek aksonu - stąd wysyłany jest sygnał
wyjściowy, który wędruje dalej poprzez akson.
Dendryt - "wejście" neuronu. Tędy trafiają do
jądra sygnały mające być w nim później
poddane obróbce. Dendrytów moŜe być wiele biologiczne neurony mają ich tysiące.
Synapsa - jeśli dendryt jest wejściem neuronu,
to synapsa jest jego furtką. MoŜe ona zmienić
moc sygnału napływającego poprzez dendryt.
Model neuronu
Model neuronu
•
•
Jak zbudowany jest sztuczny neuron?
Model neuronu składa się z dokładnie tych samych elementów co neuron naturalny!
Wejścia to dendryty, lub ściślej: sygnały przez nie nadchodzące.
Wagi to cyfrowe odpowiedniki modyfikacji dokonywanych na sygnałach przez synapsy.
Blok sumujący to odpowiednik jądra.
Blok aktywacji to wzgórek aksonu, a wyjście - to akson.
4
Jak działa neuron?
Na wejścia neuronu trafiają sygnały wejściowe (liczby opisujące postawione
zadanie).
Sygnały wejściowe są mnoŜone przez wartości wag (czyli waŜone),
Wyniki mnoŜenia dodawane są do siebie w bloku sumacyjnym.
W ten sposób powstaje konkretna liczba, którą określa się jako potencjał
memebranowy.
Uzyskana waŜona suma zostaje przetworzona zgodnie z zadana funkcja
przejścia (aktywacji) prze blok aktywacji.
Funkcja, według której
Wyznaczona wartość jest wartością wyjściową neuronu
potencjał membranowy
neuronu jest
przekształcany w jego
sygnał wyjściowy. MoŜe
ona mieć róŜny
charakter
Z czego składa się sztuczna sieć neuronowa ?
Sieci neuronowe zawdzięczają swoją nazwę m.in. faktowi, Ŝe
neurony tworzą pewną sieć – mianowicie formują się w warstwy.
Neuron w warstwie zachowuje się dokładnie tak samo jak
pojedynczy neuron. Zobaczmy zatem jak przedstawić moŜna
schematycznie całą sieć neuronową.
W sieciach neuronowych wyróŜniamy następujące warstwy:
- wejściową, która dostarcza danych wejściowych,
- wyjściową, zwracająca wynik działania sieci,
- pośrednie warstwy neuronów tzw. „warstwy ukryte” (zwane
niejawnymi), które występują pomiędzy warstwą wejścia i
wyjścia; przy wykorzystywaniu sieci do skomplikowanych
obliczeń potrzebujemy czasami kilku takich warstw, aby
zapewnić efektywniejsze działanie sieci.
6
5
Sztuczna sieć neuronowa
Aby uŜyć sieci w jakimś powaŜnym celu musi ona składać się z wielu
neuronów.
Neuron moŜe mieć jeden lub więcej dendrytów (a dla kaŜdego po jednej
synapsie) i dokładnie jeden akson.
Neurony łączy się wg. następujących zasad:
układa się je warstwami. MoŜna zbudować sieć o jednej, dwóch, lub
trzech warstwach,
neurony naleŜące do danej warstwy nie mają ze sobą Ŝadnego
kontaktu.
Niczym nie połączone neurony moŜna nazwać siecią (jest to przykład sieci
jednowarstwowej)
Sztuczna sieć neuronowa
Kolejne warstwy sieci tworzy się w ten sam sposób, co pierwszą. Aby utworzyły jedną sieć
naleŜy warstwy połączyć:
Neurony łączy się wg. zasady - kaŜdy z kaŜdym (wyjście kaŜdego neuronu z danej
warstwy łączy się z wejściem kaŜdego neuronu warstwy następnej)
W
sieci
neuronowej
moŜna
wyróŜnić tzw. warstwę wejściową.
SłuŜy ona do wstępnej obróbki
danych
wejściowych.
(Fakt
istnienia
warstwy
wejściowej
pomija się ją podając ilość warstw
sieci. Oznacza to, Ŝe wyraŜenie:
"sieć jednowarstwowa" oznacza de
facto sieć dwuwarstwową, gdzie
niejako "zerową" warstwą jest
warstwa wejściowa, a dopiero po
niej następuje pierwsza).
Nie ma sensu budować sieci
złoŜonej z więcej niŜ trzech
warstw.
6
Podział sztucznych sieci neuronowych
Sztuczne sieci neuronowe moŜna podzielić ze względu na:
- ilość warstw (tutaj nie bierze się pod uwagę warstwy wejściowej) – wyróŜniamy sieci jednowarstwowe oraz
sieci wielowarstwowe;
-kierunek przepływu sygnałów - wyróŜnić moŜemy sieci jednokierunkowe,
w których sygnał płynie zawsze w jednym kierunku oraz sieci rekurencyjne,
w których występują tzw. sprzęŜenia zwrotne. Za ich
pośrednictwem sygnały mogą po przejściu danej warstwy
wracać na jej wejście, zmieniając przy tym swoje wartości,
co powtarza się wiele razy, aŜ do osiągnięcia pewnego
ustalonego stanu.
Sieć jednowarstwowa
Sieć wielowarstwowa
rekurencyjna
Sieć wielowarstwowa
jednokierunkowa
7
Proces uczenia sztucznych sieci
neuronowych
Metoda z nauczycielem
Nauczyciel podaje:
- wzorcowe obiekty na wejściu;
- oczekiwane wartości na wyjściu;
Sieć:
- uczy się wzorców „na pamięć” oraz nabywa zdolność uogólniania wiedzy
(rozpoznawanie podobnych obiektów);
- zmienia wartości wag w celu dopasowania swojego działania do wzorców
(nauczonych wyników).
Metoda samouczenia
- brak wzorcowych wag (sieć generuje je losowo);
- sieć odbiera sygnał wejściowy i na jego podstawie wyznacza swoje wyjście;
- sieć ocenia wartość na wyjściu kaŜdego neuronu warstwy wyjściowej;
- wagi poszczególnych neuronów zmieniane są zgodnie z określonymi w danej
metodzie zasadami.
8
7
Zalety sieci neuronowych
Nie wymagają programowania.
Wystarczy stworzyć sieć, a ona uczy się sama. Rola programisty ogranicza się do
zaprojektowania takiej struktury sieci, która najlepiej będzie nadawała się do
rozwiązania danego problemu, a następnie do umiejętnego pokierowania procesem
uczenia sieci.
Są odporne na uszkodzenia
Sieć neuronowa wykazuje duŜą odporność na uszkodzenia - nawet w przypadku
uszkodzenia niektórych połączeń działa nadal (podobnie jak mózg)! Dopiero po
przekroczeniu pewnego progu uszkodzeń sieć (podobnie jak mózg) odmawia
posłuszeństwa.
Zdolność do uogólniania
Znaczy to dokładnie tyle, Ŝe jeśli sieć nauczy się, powiedzmy, rozpoznawać kolory:
czerwony i Ŝółty, to moŜe równieŜ rozpoznać róŜowy i bladoŜółty, czyli kolory
podobne do znanych.
Wady sieci neuronowych
Są mało precyzyjne
Sieci neuronowe nie przydadzą się przede wszystkim tam, gdzie potrzeba
jasnych i precyzyjnych wyników - czyli przy rozmaitych skomplikowanych
obliczeniach, obsłudze kont bankowych, itp. SSN operuje tzw. pojęciami
rozmytymi: wysoki, niski, duŜy, mały, średni, jasny... Często jeśli oczekujemy
od sieci odpowiedzi "tak" lub "nie", ona odpowie: "raczej tak", lub: "chyba
nie"... Ta ostatnia skłonność sieci moŜe być zarówno wadą, jak i zaletą - zaleŜy,
jak na to patrzeć.
Brak „rozumowania” wieloetapowego
SSN nie zdaje egzaminu takŜe wtedy, gdy specyfika problemu wymaga
zastosowania wieloetapowego rozumowania. Kiedy trzeba mozolnie dochodzić
do pewnych wniosków na podstawie efektów wcześniejszego rozumowania, a z
tych wniosków wyciągać kolejne - sieć nie daje sobie rady. Działanie sieci
pozwala na wyciąganie jedynie bezpośrednich wniosków. Rozumownie
wieloetapowe wymaga zastosowania kilu sieci.
8
Koniec
9
Download