Sieci neuronowe - architektury i zastosowania Piotr Gołąbek Politechnika Radomska Instytut Automatyki i Telematyki Transportu email: pgolab@poczta.onet.pl
Historia McCulloch & Pitts (1943)– pierwszy arytmetyczno-logiczny model neuronu (nie zrealizowany sprzętowo)
Historia Donald Hebb (1949) – teza o przechowywaniu wiedzy w sieci neuronowej w postaci wag połączeń, propozycja metody uczenia polegającej na zmianie wag.
Historia Rosenblatt (1958) – tzw. perceptron – sprzętowa realizacja sieci z adaptowanymi połączeniami, zdolnej do klasyfikacji (efektywnie – 1 neuron).
Historia Widrow i Hoff (1960) – ADALINE – struktura podobna do perceptronu, liniowe funkcje aktywacji, użycie algorytmu najmniejszych kwadratów
Historia Minsky & Papert – „Perceptron” (1969) – krytyka perceptronu (jedno- lub wielo-warstwowego), jako zdolnego do rozwiązywania tylko liniowych problemów
Historia Amari (lata siedemdziesiąte) – teoria uczenia się, SOM Kohonen (1972), Anderson – pamięć asocjacyjna Grossberg (1980) – nowa reguła samoorganizacji – ART Hopfield (1982) – sieci rekurencyjne
Historia Kohonen (1982) – dwuwymiarowe sieci SOM Kirkpatrick (1983) – reguła optymalizacji globalnej - symulowane wyżarzanie Barto, Sutton (1983) – uczenie się ze wzmacnianiem Hinton, Sejnowski (1985) – maszyna Boltzmanna – działająca w oparciu o symulowane wyżarzanie
Historia Rummelhart, Hinton (1986) – wsteczna propagacja błędu – metoda uczenia sieci, która pozwalała na rozwiązywanie problemów nieliniowych (nie separowalnych liniowo) ...okazało się, że zrobił to już w 1974r. Paul Werbos Od tego czasu notuje się nieustanny, żywiołowy rozwój dziedziny
Neurony - elementy składowe sieci neuronowych Tak wyglądają nasze neurony ...
Neurony - elementy składowe sieci neuronowych ... a tyle z nich zostaje w sztucznych sieciach neuronowych ...
Neurony - elementy składowe sieci neuronowych Jednak oczywiście analogia jest do prześledzenia:
Funkcja przetwarzania neuronu progowego
Sieci neuronowe W naszym mózgu jest ok. 1011 neuronów Każdy z nich tworzy połączenie średnio z 103 innych neuronów Oznacza to, że każdy neuron ma połączenia z zaledwie jedną dziesięciomiliardową częścią wszystkich neuronów Gdyby w naszym mózgu neurony tworzyły połączenia „każdy z każdym”, musiałby on mieć średnicę rzędu kilkuset metrów
Sieci neuronowe Poniższe cztery zdjęcia pochodzą z prezentacji „Introduction to Neural Networks” autorstwa Jianfeng Feng ze School of Cognitive and Computing Sciences Fragment sieci neuronowej łączącej siatkówkę z obszarem mózgu odpowiedzialnym za percepcję obrazu
Sieci neuronowe Pojedynczy neuron – obraz stereoskopowy
Sieci neuronowe Połączenie synaptyczne – struktura
Sieci neuronowe Połączenie synaptyczne – poziom molekularny
Sieci neuronowe a komputery Wiele (1011) prostych elementów przetwarzających (neuronów) Przetwarzanie równoległe, rozłożone Rozłożona w całej strukturze pamięć adresowana zawartością Duża odporność na uszkodzenia Kilka bardzo złożonych elementów przetwarzających (procesorów) Przetwarzanie sekwencyjne, scentralizowane Skupiona, adresowana indeksem pamięć o dostępie swobodnym Duża podatność na uszkodzenia
Wyjście (aktywacja) neuronu Neurony Wejścia Wagi połączeń Wyjście (aktywacja) neuronu Operacja sumowania Pobudzenie neuronu Funkcja aktywcyjna Próg aktywacji
Funkcja realizowana przez neuron Równania neuronu
(Iloczyn skalarny)
(Iloczyn skalarny α x w x w x x w w max antypodobieństwo max niepodobieństwo max podobieństwo
Inna realizacja progowania
Inna realizacja progowania
Dwie grupy problemów Zadania klasyfikacji/grupowania danych Zadania aproksymacji funkcji
Klasyfikacja System klasyfikacyjny 7! ... System klasyfikacyjny 7! ...
System klasyfikacyjny Klasyfikacja Alternatywny schemat przetwarzania: System klasyfikacyjny 0 (1%) 1 (1%) 2 (1%) 3 (1%) 4 (1%) ... ... 5 (1%) 6 (1%) 7 (90%) 8 (1%) 9 (1%) Brak decyzji
System klasyfikacyjny Klasyfikacja System klasyfikacyjny 7! ...
Klasyfikacja - typy zastosowań Klasyfikacja == Rozpoznawanie wzorców: diagnozowanie chorób rozpoznawanie niebezpiecznych warunków w procesach sterowania rozpoznawanie pisma identyfikacja obiektów wspomaganie decyzji
Klasyfikacja Zakłada, że obiekty podobne należą do jednej klasy Podobieństwo musi być zdefiniowane Obiekty podobne – obiekty o zbliżonych cechach Muszą być określone cechy obiektu
Klasyfikacja Np. cechy ludzi: Wzrost Wiek Klasa K: „Wysocy ludzie przed trzydziestką”
Klasyfikacja Obiekt O1 klasy K: „Człowiek 180 cm wzrostu, 23 lata” Obiekt O2 nie należący do klasy K: „Człowiek 165cm wzrostu, 35 lat” (180, 23) (165, 35)
Klasyfikacja WIEK WZROST 180 165 35 23 WIEK WZROST 180 165 35 23
Podobieństwo obiektów WIEK WZROST 180 165 35 23
Podobieństwo Odległość Euklidesa (tzw. metryka Euklidesa):
Inne metryki Tzw. metryka Manhattan
Klasyfikacja Więcej cech – więcej wymiarów: X1 X2 X3
Podobieństwo wielowymiarowe
Klasyfikacja Atr 2 Atr 4 Atr 6 Atr 1 Atr 3 Atr 5 Atr 8, itd. .. Atr 7
Klasyfikacja Wytyczenie granicy między dwoma grupami Y=K*X WIEK = K*WZROST WIEK > K*WZROST Wytyczenie granicy między dwoma grupami WIEK < K*WZROST WIEK WZROST 35 23
Klasyfikacja WIEK = K*WZROST+B WIEK-K*WZROST-B=0 WIEK+K2*WZROST+B2=0 35 23 WZROST
Klasyfikacja Ogólnie, dla wielowymiarowego przypadku, tzw. hiperpłaszczyzna klasyfikacji ma równanie: Bardzo niedaleko stąd do neuronu ...
Funkcja przetwarzania neuronu progowego
Neuron jako klasyfikator Pojedynczy neuron progowy (model McCullocha-Pittsa) realizuje więc liniową separację obiektów w wielowymiarowej przestrzeni. Dobór wag i progu aktywacji neuronu zmienia położenie hiperpłaszczyzny separującej
Neuron jako klasyfikator Jeśli poprawnie wytyczyć tę hiperpłaszczyznę, czyli poprawnie dobrać wagi neuronu, to będzie on zdolny orzekać dla każdego obiektu, do której klasy należy. Wartości cech badanego obiektu należy podać na wejścia neuronu. Stan wyjścia neuronu wskaże, do której klasy należy obiekt.
Wiele klas Wiele neuronów Każdy neuron przeprowadza bisekcję przestrzeni Kilka neuronów dzieli więc przestrzeń na rozłączne obszary
Inna funkcja aktywacyjna Tzw. funkcja sigmoidalna, np.:
Inna funkcja aktywacyjna β=1 β=100 β=0.4
Inna funkcja aktywacyjna WIEK WZROST 35 23
Sieć neuronowa w aproksymacji Przykład realizacji funkcji logicznej (tak, jak u McCullocha-Pittsa)
Aproksymacja Model liniowy: Model wielomianowy:
Aproksymacja Uogólniony model liniowy:
Aproksymacja funkcji Funkcja przetwarzania neuronu: Wytworzona funkcja (model) w sposób nieliniowy zależy od parametrów
Aproksymacja Sieć neuronowa, złożona z neuronów o sigmoidalnej funkcji aktywacyjnej jest uniwersalnym aproksymatorem dla szerokiej klasy funkcji Tzn. sieć może aproksymować dowolną funkcję z tej klasy z dowolną dokładnością, zakładając, że składa się z odpowiedniej liczby neuronów.
Sieć neuronowa Zespół wzajemnie oddziałujących na siebie neuronów Wyjście każdego neuronu może być połączone z wejściem każdego neuronu (także ze swoim własnym) W ogólności powstają więc sprzężenia zwrotne
Sieci neuronowe Sieć bez sprzężeń zwrotnych: sieć jednokierunkowa Szczególny przypadek sieci jednokierunkowych to sieci warstwowe
Sieć warstwowa
Powinniśmy mówić: „sztuczne sieci neuronowe”, a nie: „sieci neuronowe” „elementy przetwarzające”, a nie: „neurony”
Funkcja przetwarzania sieci
Funkcja przetwarzania sieci
Funkcja przetwarzania sieci Sieć neuronowa realizuje funkcję nieliniową Postać tej funkcji zależy od wag Twierdzenie mówi, że odpowiednio duża sieć potrafi zrealizować każdą funkcję ciągłą
Aproksymacja Dane pomiarowe (obarczone błędem) Aproksymowana funkcja
Aproksymacja - klasy zastosowań Aproksymacja == Modelowanie procesów: sterowanie i kontrola procesów przemysłowych odtwarzanie i poprawianie jakości obrazów analiza i predykcja przebiegów czasowych
Sieć neuronowa - generalizacja Sieć uczy się na podstawie danych: danych jest zwykle mało musimy zarezerwować dane testujące dane zwykle obarczone są błędem pomiarowym (zaszumienie) Generalizacja - mimo wszystko sieć daje sobie radę.
Sieć neuronowa - generalizacja Zła generalizacja - przetrenowanie
Sieć neuronowa - generalizacja Zła generalizacji - zły wybór modelu
Sieć neuronowa - generalizacja Na jakość generalizacji mają wpływ: jakość danych uczących struktura sieci (rodzaj modelu) algorytm uczenia
Jak dobrać wagi? Wagi dobierane są w procesie adaptacyjnym – procesie uczenia sieci Proces uczenia opiera się o przykłady Odpowiednia reguła zmiany wag (reguła uczenia) musi zmieniać wagi w kierunku rozwiązania
Sieć neuronowa - system adaptacyjny Przykład realizacji procesu adaptacyjnego: Neurosolutions - „rozpoznawanie twarzy”
Sieć neuronowa - system adaptacyjny, cd. Uczenie sieci - adaptacja - może być przeprowadzane w jednym z dwóch trybów: w trybie nadzorowanym w trybie nienadzorowanym
Nadzorowany tryb uczenia pary trenujące funkcja błędu uczenie się funkcji przetwarzania obserwowanego procesu
Unsupervised learning Uczenie bez nadzoru Unsupervised learning Znajdź interesujące struktury w danych. Uczenie spontaniczne, odkrywanie ciekawych struktur w przestrzeni danych, korelacja zachowań systemu ze zmianą tych struktur – dominuje w okresie niemowlęcym (również budowa teorii).
Nienadzorowany tryb uczenia brak informacji o oczekiwanym wyjściu grupowanie danych wykrywanie zależności między danymi
Nienadzorowany tryb uczenia Tryb nienadzorowany może służyć selekcji/eliminacji atrybutów
Reguła Hebba (1949) Reguła Hebba i jej odmiany „Kiedy akson komórki A jest dostatecznie blisko by pobudzić komórkę B i wielokrotnie w sposób trwały bierze udział w jej pobudzaniu, procesy wzrostu lub zmian metabolicznych zachodzą w obu komórkach tak, że sprawność neuronu A jako jednej z komórek pobudzających B, wzrasta.” Reguła Hebba i jej odmiany stosowane są raczej w nienadzorowanym trybie uczenia.
Reguła gradientowa W nadzorowanym trybie uczenia, w którym znana jest poprawna wartość wyjścia dla każdego przetwarzanego przykładu ze zbioru uczącego, stosowana jest zwykle metoda uczenia oparta o tzw. funkcję błędu popełnianego przez sieć
Reguła gradientowa Funkcja błędu E wyliczana jest na podstawie rozbieżności tego, co sieć wskazuje dla poszczególnych przykładów i tego, co powinna wskazywać.
Średniokwadratowa funkcja błędu Wartość funkcji błędu uśredniona po wszystkich N przykładach trenujących, dlatego, dla ustalonego zbioru trenującego, wartość funkcji błędu zależy tylko od wektora wag sieci w
Średniokwadratowa funkcja błędu Da się „wymyśleć” zdroworozsądkowo, ... ale wynika także z przesłanek statystycznych: można prześledzić związek takiej postaci funkcji błędu z założeniem o Gaussowskim rozkładzie zaburzenia danych tak wyrażona funkcja błędu ma związek z oszacowaniem wariancji utworzonego modelu
Proces uczenia Proces uczenia może więc być postrzegany jako minimalizacja funkcji błędu Funkcja błędu zależy od parametrów w, a więc zadanie uczenia, to znaleźć taki zestaw parametrów w, dla którego wartość funkcji błędu będzie jak najmniejsza Ponieważ funkcja błędu zależy nieliniowo (poprzez funkcję przetwarzania sieci) od wag, mamy do czynienia z minimalizacją nieliniową
Gradient funkcji błędu Wartość pochodnej informuje nas, czy wraz ze wzrostem argumentu wartość funkcji będzie rosła, czy malała (i jak szybko?) W tym wypadku wartość funkcji maleje, a więc pochodna ma znak ujemny Gradient funkcji błędu Musimy postąpić „wbrew” znakowi pochodnej. Chcemy zmniejszyć wartość funkcji, więc musimy zwiększyć argument. wi
Reguła gradientowa
Gradient funkcji błędu W wielu wymiarach mamy do czynienia z wielowymiarową pochodną – wektorem pochodnych cząstkowych funkcji błędu względem każdej ze współrzdnych (gradientem):
Metoda ta nazywana jest potocznie „wędrówką po górach” Metoda gradientowa Metoda ta nazywana jest potocznie „wędrówką po górach” w1 w2 E
Metoda gradientowa w2 w1
Jak obliczyć gradient? Po pierwsze, nie możemy mieć skokowej funkcji progowej neuronu, bo funkcja ta jest nieciągła
Algorytm wstecznej propagacji błędu BP (BackPropagation). Oblicz gradient na wyjściu. Korzystając z reguły łańcuchowej: można „przenieść” błąd wstecz przez neuron.
Reguła łańcuchowa
Algorytm BP Korzystając z reguły różniczkowania funkcji złożonej: można przenieść błąd przez warstwę połączeń
Reguła różniczkowania funkcji złożonej
Algorytm BP Wychodzi z tego bardzo elegancka i efektywna obliczeniowo procedura, pozwalająca wyliczyć pochodną cząstkową funkcji błędu względem dowolnej wagi w sieci. Pozwala to na skorygowanie każdej wagi w sieci tak aby zmniejszyć wartość błędu Powtarzanie tego procesu prowadzi do coraz mniejszego błędu i nazywane jest uczeniem sieci
Sieć neuronowa - podsumowanie System adaptacyjny Realizuje przetwarzanie nieliniowe Realizuje rozproszone przetwarzanie równoległe Ma właściwości generalizacji Musi być traktowana jako system „black-box”
Sieć neuronowa - system adaptacyjny Sieć uczy się, a nie rozwiązuje zadanie wg znanego algorytmu Sieć uczy się na podstawie przykładów Sieć jest „plastyczna”