Wstęp do sieci neuronowych, wykład 3 Warstwy, jednostka Adaline. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 211-1-18
1 Pomysł Przykłady Zastosowanie 2 3 Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania
Pomysł Przykłady Zastosowanie 1 Pomysł Przykłady Zastosowanie 2 3 Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania
Pomysł Przykłady Zastosowanie Idea Radialne Funkcje Bazowe (ang. Radial Basis Function, ) Pojedynczy perceptron zachowuje pewną pasmowość, Dane czasami układają się koncentrycznie, Zmiana kształtu aktywacji perceptronu może zatem poprawić działanie.
Pomysł Przykłady Zastosowanie Idea 4 f(x) = exp(- (x - x ) 2 / (2 sigma 2 )) 4 2-2 -4 y 3 2 1-1 -2-3 -4-2 2 4-4 -4-3 -2-1 1 2 3 4 x
Pomysł Przykłady Zastosowanie Budowa Wejście x = (x 1,..., x n ) R n, Zwracana jest wartość pewnej funkcji zależnej od normy x, O( x) = φ( x ) Możemy dodatkowo wycentrować funkcję w punkcie x, zwracamy wówczas O( x) = φ( x x ) Zazwyczaj korzystamy z normy euklidesowej tj. x 2 = n i=1 Wyjście takiej jednostki często stanowi wejście do innego neuronu. x 2 i
Pomysł Przykłady Zastosowanie Norma euklidesowa f ( x) = x x 2 = (x x ) 2 + (y y ) 2 2 15 1 5 1 5 y -5-1 -1-5 x 5 1
Pomysł Przykłady Zastosowanie Hiperbola f (x) = a(x x ) 2 + b(y y ) 2 + c 25 2 15 1 5-1 -5 x 5 1-1 -5 y 5 1
Pomysł Przykłady Zastosowanie Hiperbola f (x) = ( a(x x ) 2 + b(y y ) 2 + c 2) d, d < 1.8.6.4.2 1 5 1 5 y -5-5 x -1-1
Pomysł Przykłady Zastosowanie Funkcja Gaussa f (x) = exp x x 2 2 2σ 2 f(x) = exp(- (x - x ) 2 / (2 sigma 2 )) 1.8.6.4.2-4 -3-2 -1 x 1 2 3 4-4 -3-2 -1 1 y 2 3 4
Pomysł Przykłady Zastosowanie Funkcja liniowo-logarytmiczna f (x) = c x x 2 ln(c x x ), c > 1 8 6 4 2 1 5 1 5 y -5-5 x -1-1
Pomysł Przykłady Zastosowanie Jak wykorzystać w zagadnieniach klasyfikacyjnych Ustalamy liczbę stosowanych funkcji, Dla każdej z nich losowo (jeżeli mamy informacje o koncentracji danych, to deterministycznie) ustalamy punkt centralny x, wariancję itp, Wyjścia podpinamy jako dodatkowe wejścia do perceptronu, Uczymy tak zbudowany rozszerzony perceptron.
Pomysł Przykłady Zastosowanie Jak wykorzystać w zagadnieniach klasyfikacyjnych 2 1.5 1.5-6 -4-2 2 4 6 2 4 6 8 1 12
Pomysł Przykłady Zastosowanie Jak wykorzystać w zagadnieniach klasyfikacyjnych out 2 1.5 1.5-6 -4-2 2 4 6 2 4 6 8 1 12
y Pomysł Przykłady Zastosowanie Efekt 8 6 4 2-2 1.8.6.4.2-4 -8-6 8-6 -4-2 4 6-8 -8-6 -4-2 2 4 6 8 x x 2 4 6 8-8 -6-4 -2 2 y
y Pomysł Przykłady Zastosowanie Efekt 8 6 1 4.8.6 2.4.2-2 8 6-4 4 2-6 -8-8 -6-4 -2 2 4 6 8 x x -2-4 -6-8 8 6 4 2 y -2-4 -6-8
1 Pomysł Przykłady Zastosowanie 2 3 Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania
Ang. Adaptive Linear Neuron, Jednostka składa się z n wejść x 1,.., x n oraz n wag w 1,.., w n (+ ewentualnie próg w ), Identycznościowa postać funkcji aktywującej, Jednostka zwraca O( x) = n w i x i ( + 1 w ). i=1
Jednostka zwraca O( x) = n w i x i ( + w 1), i=1 Zwracane odpowiedzi są ciągłe, więc Adaline stosuje się do (lokalnego) przybliżania funkcji o wartościach rzeczywistych.
Uczenie Daną mamy próbkę uczącą wraz z poprawnymi odpowiedziami (E (i), C (i) ), przy czym C i są ciągłe, Chcemy znaleźć wagi jednostki liniowej w,.., w n tak, aby neuron możliwie wiernie modelował zależności w danych uczących.
Uczenie 4 w = [.42, -1.55, -2.34] 2 z -2-4 -1-5 x 5 1-4 -2 2 4 y
Funkcja błędu Co oznacza możliwie wiernie? (E 1, C 1 ),..., (E k, C k ) dane wejściowe z poprawnymi odpowiedziami, Funkcja błędu: ERROR(w,..., w n ) = k ( O(E i ) C i) 2, i=1 Im mniejsza wartość funkcji błędu, tym lepsze dopasowanie.
Funkcja błędu 5 5-5 -5-1 -1-15 2 4 6 8 1-15 2 4 6 8 1
Dana jest funkcja f : R n R, Chcemy znaleźć (numerycznie) jej minimum lokalne, Dodatkowo założymy, że f jest różniczkowalna.
Przypomnienie pochodnych Pochodna cząstkowa funkcji f : R n R po x i f f (x 1,.., x i 1, x i + h, x i+1,...x n ) f (x 1,..., x n ) (x 1,..., x n ) = lim x i h h
Przypomnienie pochodnych 25 Czym jest f x 1 (x )? Intuicyjnie: jest to kierunek, w którym funkcja rośnie zmieniając tylko pierwszą współrzędną, tj. przy pozostałych ustalonych. 2 15 1 5-6 -4-2 2 4 6 8
Przypomnienie pochodnych Czym jest gradient? [ f (x ),.., f ] (x )? x 1 x n Intuicyjnie: jest to wektor, w kierunku którego f w punkcie x rośnie najszybciej.
Przypomnienie pochodnych
(ang. Gradient Descent Algorithm, GDA) Chcemy znaleźć minimum funkcji f, Obliczamy gradient pochodnych cząstkowych, Robimy krok w przeciwną stronę.
5 4 3 2 1 6 4 2-2 -4-6 -6-4 -2 2 4 6
1 Rozpoczynamy w losowym / wybranym a (), 2 Dla każdej współrzędnej i = 1..n a (k+1) i = a (k) i gdzie η > jest stałą uczenia, 3 Powtarzamy krok 2, η f x i (a (k) )
Postęp algorytmu click
Uczenie (przyp.) Daną mamy próbkę uczącą wraz z poprawnymi odpowiedziami (E (i), C (i) ), przy czym C (i) są ciągłe, Chcemy znaleźć wagi jednostki liniowej w,.., w n, tak aby neuron możliwie wiernie modelował zależności w danych uczących.
Funkcja błędu (przyp.) Co oznacza możliwie wiernie? (E (1), C (1) ),..., (E (k), C (k) ) dane wejściowe z poprawnymi odpowiedziami, Funkcja błędu: ERROR(w,..., w n ) = k (O(E (i) ) C i) 2 i=1 Im mniejsza wartość funkcji błędu, tym lepsze dopasowanie.
Algorytm 1 Przypisujemy wagom małe, losowe wartości, 2 Losowo wybieramy przykład uczący E oraz poprawną odpowiedź C, 3 Obliczamy aktywację jednostki na przykładzie E O = i w i e i 4 Korygujemy wagi (dla j =,..., n) w j := w j + η(c O) e j gdzie η > jest małą stałą uczenia. 5 Kończymy, jeżeli algorytm przebiegł określoną liczbę iteracji lub osiągnął odpowiednio niski błąd. W przeciwnym wypadku wracamy do 2.
Algorytm click
Wykres błędu 3 Error 25 2 Error 15 1 5 5 1 15 2 25 3 Iterations
algorytmu będzie przeprowadzony na tablicy
algorytmu Dla tych, którzy chcą się uczyć ze slajdów:
algorytmu Dla tych, którzy chcą się uczyć ze slajdów: Zauważmy, że jest to algorytm spadku gradientowego. Określona jest funkcja błędu ERROR : R n R na przestrzeni wag. k n ERROR(w,..., w n ) = ( w i e (j) i C (j) ) 2 Chcemy znaleźć wagi w,..., w n, które minimalizują wartość tej funkcji. j=1 i=1
algorytmu Policzmy pochodne cząstkowe funkcji błędu po wagach, przy ustalonym przykładzie (E = (e 1,..., e n ), C): w j (O(E) C) 2 = w j ( i w i e i C) 2 = Zauważmy, że = 2( i w i e i C) w j ( i w i e i C) w j ( i w i e i C) = i w i e i C = e j w j w j
algorytmu Czyli pochodna cząstkowa upraszcza się do: w j (O(E) C) 2 = 2( i w i e i C)e j = 2(O(E) C)e j Gradient pochodnych cząstkowych wskazuje kierunek największego wzrostu funkcji błędu. Aby uzyskać największy spadek, należy odwrócić zwrot (przemnożyć przez 1).
Wielkość η Jaka powinna być stała uczenia? Rachunki na tablicy
Wielkość η Przyjmijmy oznaczenia: w wektor wag przed zmianą, E przykład uczący, C oczekiwana odpowiedź, O = we uzyskana odpowiedź, w = w + η(c O)E wektor wag po zmianie, ERROR( w) = E() błąd kwadratowy na wagach w.
Wielkość η Energia układu ERROR() = E() po zmianie (błąd, który chcemy zmniejszać): E(w ) = (w E C) 2 = ((w + η(c O)E)E C) 2 = ( (we C) + η(c O) E 2) 2 = ( E(w) 1/2 ηe(w) 1/2 E 2) 2 = ( E(w) 2ηE(w) E 2 + η 2 E(w) E 4) = E(w) ( 1 2η E 2 + η 2 E 4) = E(w) ( 1 + η E 2 (η E 2 2) )
Wielkość η Chcemy aby energia zmalała tj. E(w ) < E(w) Zatem musimy otrzymać: ( 1 + η E 2 (η E 2 2) ) < 1 η E 2 (η E 2 2) < Z naszych założeń mamy η > oraz norma E 2, zatem upraszczamy nierówność: η E 2 2 < < η < 2 E 2
Wielkość η 14 12 1 8 3 6 2 p(x,y) 4 1 2 4 3 2 1 y -1-2 -3-4 -1-2 -3-4 -5-5 x
Uwagi do algorytmu Dobór stałej uczenia: Małe η długie działanie, Duże η niestabilności, przeskakiwanie minimum, Tendencja do utykania w minimach lokalnych, Rozwiązanie: wielokrotne restarty algorytmu z losowych punktów startowych, Spowolnienia przy obszarach o małej pochodnej, Rozwiązanie: automatyczny dobór stałej uczenia, Ograniczenie modelowania tylko do zależności liniowych.
Adaline Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania owanie zależności (lokalnie) liniowych, Adaptacyjne filtry liniowe.
Filtry liniowe Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Oryginalny rysunek za http://en.wikipedia.org/, 211-9.
Rozpoznawanie obrazów Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Chcemy rozpoznawać obraz po przesunięciu,
Rozpoznawanie obrazów Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Po przesunięciu piksele mogą zmieniać się dowolnie, Amplituda transformaty Fouriera obrazu jest niewrażliwa na takie przesunięcia.
DFT Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Dany sygnał (ciąg) x = (x,..., x N 1 ), Dyskretna transformata Fouriera sygnału x: DFT (x) = X = (X,..., X N 1 ) gdzie X j = N 1 k= x k ω kj N, ω N = exp(i 2π N ) = cos(2π N ) + i sin(2π N ) UWAGA. Zarówno x jak i DFT (x) mogą być zespolone.
DFT Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Dany sygnał (ciąg) x = (x,..., x N 1 ), Dyskretna transformata Fouriera sygnału x: DFT (x) = X = (X,..., X N 1 ) X j = Y j + iz j, Y j, Z j R Amplituda DFT: A(X j ) = (Y 2 j + Z 2 j )
DFT Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania obraz DFT obraz DFT
DFT Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania DFT 1 log(dft)
DFT Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania DFT 1 log(dft)
DFT Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania out
Zadania Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Dostosuj jednostkę tak, aby miała kształt eliptyczny (a nie kolisty). (*) Jak będzie działała jednostka korzystająca z normy pierwszej, trzeciej itp. (a nie zwykłej drugiej)? x p = ( x p i i ) 1 p Zaimplementuj algorytm spadku gradientowego dla funkcji p(x, y) = 2x 2 + 2y 2 + 2x + 2y + 2 ze stałą uczenia η 1 =.51 oraz η 1 =.49. Zaimplementuj algorytm spadku gradientowego dla funkcji p(x) = x 3 ze stałą uczenia η =.1, punkt startowy x = 3.
Zadania Filtrowanie obrazów Rozpoznawanie obrazów DFT Zadania Czym skutkuje dodanie progu (w ) do jednostki Adaline? (*) Zapoznaj się i zaimplementuj algorytm szybkiej transformaty Fouriera (fast Fourier transform, FFT) w klasyfikatorze graficznym. http://en.wikipedia.org/wiki/fast_fourier_transform. (*) Zapoznaj się z algorytmem regresji liniowej (least squares linear regression). http://pl.wikipedia.org/wiki/metoda_ najmniejszych_kwadrat%c3%b3w. Porównaj działanie (dla wymiarów 1 i 2) z algorytmem uczenia Adaline.