RBF Jednostka AdaLine Zastosowania
Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.
Maja Czoków, Jarosław Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2012-10-17
Projekt pn. „Wzmocnienie potencjału dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych”
realizowany w ramach Poddziałania 4.1.1 Programu Operacyjnego Kapitał Ludzki
RBF Jednostka AdaLine Zastosowania
1 RBF Pomysł Przykłady Zastosowanie
2 Jednostka AdaLine Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
3 Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
1 RBF Pomysł Przykłady Zastosowanie
2 Jednostka AdaLine Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
3 Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Idea
Radialne Funkcje Bazowe (ang. Radial Basis Function, RBF) Pojedynczy perceptron zachowuje pewną „pasmowość”, Dane czasami układają się koncentrycznie,
Zmiana kształtu aktywacji perceptronu może zatem poprawić działanie.
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Idea
-4 -2 0 2 4
-4 -2 0 2 4
f(x) = exp(- (x - x0)2 / (2 sigma2))
-4 -3 -2 -1 0 1 2 3 4
x -4
-3 -2 -1 0 1 2 3 4
y
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Budowa
Wejście ¯x = (x1, ..., xn) ∈ Rn,
Zwracana jest wartość pewnej funkcji zależnej od normy ¯x , O(¯x ) = φ(||¯x ||)
Możemy dodatkowo wycentrować funkcję w punkcie x0, zwracamy wówczas O(¯x ) = φ(||¯x − x0||)
Zazwyczaj korzystamy z normy euklidesowej tj.
||¯x ||2= v u u t
n
X
i =1
xi2
Wyjście takiej jednostki często stanowi wejście do innego
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Norma euklidesowa
f (¯x ) = ||¯x − ¯x0||2= q
(x − x0)2+ (y − y0)2
-10 -5
0
5 10
-10 -5 0 5 010 5 10 15 20
x y
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Hiperbola
f (x ) = q
a(x − x0)2+ b(y − y0)2+ c
-10
-5 5
10 0
5 10 15 20 25
RBF RBF
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Hiperbola
f (x ) = a(x − x0)2+ b(y − y0)2+ c2d
, d < 0
-10 -5
0 5
10
-10 -5 0 5 010 0.2 0.4 0.6 0.8 1
RBF
x y
RBF
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Funkcja Gaussa
f (x ) = exp−||x − x0||22 2σ2
-4 -3 -2 -1
0 1 2 3 4
0 0.2 0.4 0.6 0.8 1
RBF
f(x) = exp(- (x - x0)2 / (2 sigma2))
RBF
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Funkcja liniowo-logarytmiczna
f (x ) = c||x − x0||2ln(c · ||x − x0||), c > 0
-10 -5
0 5
10
-10 -5 0 5 010 200 400 600 800 1000
RBF
x y
RBF
RBF Jednostka AdaLine Zastosowania
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 x0, wariancję itp,
Wyjścia podpinamy jako dodatkowe wejścia do perceptronu, Uczymy tak zbudowany rozszerzony perceptron.
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Jak wykorzystać w zagadnieniach klasyfikacyjnych
-6 -4
-2 0
2 4
6 0
2 4 6
8 10 12
0 0.5 1 1.5 2
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Jak wykorzystać w zagadnieniach klasyfikacyjnych
-6 -4
-2 0
2 4
6 0 2
4 6
8 10
12 0
0.5 1 1.5 2
out
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Efekt
-8 -6 -4 -2 0 2 4 6 8
x -8
-6 -4 -2 0 2 4 6 8
y
-8 -6
-4 -2
0 2
4 6
8 -8 -6
-4 -2
0 2
4 6
8 0
0.2 0.4 0.6 0.8 1
RBF
x
y RBF
RBF Jednostka AdaLine Zastosowania
Pomysł Przykłady Zastosowanie
Efekt
-8 -6 -4 -2 0 2 4 6 8
x -8
-6 -4 -2 0 2 4 6 8
y
-8 -6 -4 -2 0 2 4 6 8
-6 -8 -2 -4 0 4 2 8 6 0
0.2 0.4 0.6 0.8 1
RBF
x
y RBF
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
1 RBF Pomysł Przykłady Zastosowanie
2 Jednostka AdaLine Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
3 Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Zagadnienie
Dany jest zbiór danych i każdy ma przyporządkowaną ciągłą
„kategorię” (choć dość regularną w niewielkich otoczeniach) Chcemy stworzyć prosty system, który będzie w stanie nauczyć się (z pewnym przybliżeniem) szacować tę wartość tej
„kategorii”.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Jednostka AdaLine
Ang. Adaptive Linear Neuron,
Jednostka składa się z n wejść x1, .., xnoraz n wag w1, .., wn
(+ ewentualnie próg w0),
Identycznościowa postać funkcji aktywującej, Jednostka zwraca
O(¯x ) =
n
X
i =1
wixi ( + 1 · w0).
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Jednostka AdaLine
Jednostka zwraca O(¯x ) =
n
X
i =1
wixi ( + w0· 1),
Zwracane odpowiedzi są ciągłe, więc Adaline stosuje się do (lokalnego) przybliżania funkcji o wartościach rzeczywistych.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Uczenie
Daną mamy próbkę uczącą wraz z poprawnymi odpowiedziami (E(i ), C(i )), przy czym Ci są ciągłe,
Chcemy znaleźć wagi jednostki liniowej w0, .., wn tak, aby neuron możliwie wiernie modelował zależności w danych uczących.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Uczenie
w = [0.42, -1.55, -2.34]
-10 -5
0 5 x
4 -40
-20 0 20 40
z
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Funkcja błędu
Co oznacza „możliwie wiernie”?
(E1, C1), ..., (Ek, Ck) — dane wejściowe z poprawnymi odpowiedziami,
Funkcja błędu:
ERROR(w0, ..., wn) =
k
X
i =1
O(Ei) − Ci2
,
Im mniejsza wartość funkcji błędu, tym lepsze dopasowanie.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Funkcja błędu
-15 -10 -5 0 5
0 2 4 6 8 10
-15 -10 -5 0 5
0 2 4 6 8 10
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Algorytm spadku gradientowego
Dana jest funkcja f : Rn→ R,
Chcemy znaleźć (numerycznie) jej minimum lokalne, Dodatkowo założymy, że f jest różniczkowalna.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Przypomnienie pochodnych
Pochodna cząstkowa funkcji f : Rn → R po xi
∂f
∂xi
(x1, ..., xn) = lim
h→0
f (x1, .., xi −1, xi + h, xi +1, ...xn) − f (x1, ..., xn) h
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Przypomnienie pochodnych
Czym jest ∂x∂f
1(x0)?
Intuicyjnie: jest to kierunek, w którym funkcja rośnie zmieniając tylko pierwszą współrzędną, tj. przy pozostałych ustalonych.
0 5 10 15 20 25
-6 -4 -2 0 2 4 6 8
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Przypomnienie pochodnych
Czym jest gradient?
∂f
∂x1
(x0), .., ∂f
∂xn
(x0)
?
Intuicyjnie: jest to wektor, w kierunku którego f w punkcie x0 rośnie najszybciej.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Przypomnienie pochodnych
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Algorytm spadku gradientowego
(ang. Gradient Descent Algorithm, GDA) Chcemy znaleźć minimum funkcji f ,
Obliczamy gradient pochodnych cząstkowych, Robimy krok w przeciwną stronę.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Algorytm spadku gradientowego
-6 -4 -2 0 2 4 6
-6 -4 -2 0 2 4 06 10 20 30 40 50
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Algorytm spadku gradientowego
1 Rozpoczynamy w losowym / wybranym a(0),
2 Dla każdej współrzędnej i = 1..n a(k+1)i = a(k)i − η · ∂f
∂xi
(a(k)) gdzie η > 0 jest stałą uczenia,
3 Powtarzamy krok 2,
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Postęp algorytmu
click
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
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 w0, .., wn, tak aby neuron możliwie wiernie modelował zależności w danych uczących.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
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(w0, ..., wn) =
k
X
i =1
O(E(i )) − Ci2
Im mniejsza wartość funkcji błędu, tym lepsze dopasowanie.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
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 = [e1...en], e0 = +1
O =X
i
wiei
4 Korygujemy wagi (dla j = 0, ..., n)
wj := wj + η(C − O) · ej gdzie η > 0 — 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
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Algorytm
click
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Wykres błędu
500 1000 1500 2000 2500
3000 Error
Error
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Dowód algorytmu
Dowód będzie przeprowadzony na tablicy
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Dowód 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 : Rn→ R≥0 na przestrzeni wag.
ERROR(w0, ..., wn) =
k
X
j =1
(
n
X
i =1
wiei(j )− C(j ))2
Chcemy znaleźć wagi w0, ..., wn, które minimalizują wartość tej funkcji.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Dowód 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 : Rn→ R≥0 na przestrzeni wag.
ERROR(w0, ..., wn) =
k
X
j =1
(
n
X
i =1
wiei(j )− C(j ))2
Chcemy znaleźć wagi w0, ..., wn, które minimalizują wartość tej funkcji.
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Dowód algorytmu
Policzmy pochodne cząstkowe funkcji błędu po wagach, przy ustalonym przykładzie (E = (e1, ..., en), C ):
∂
∂wj(O(E ) − C )2 = ∂
∂wj(X
i
wiei − C )2=
= 2(X
i
wiei− C ) ∂
∂wj(X
i
wiei − C ) Zauważmy, że
∂
∂wj(X
wiei − C ) =X ∂
∂wjwiei − ∂
∂wjC = ej
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Dowód algorytmu
Czyli pochodna cząstkowa upraszcza się do:
∂
∂wj(O(E ) − C )2 = 2(X
i
wiei− C )ej = 2(O(E ) − C )ej
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).
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Wielkość η
Jaka powinna być stała uczenia?
Rachunki na tablicy
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
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 .
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
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 |22
= E(w )1/2− ηE(w )1/2|E |22
= E(w ) − 2ηE(w )|E |2+ η2E(w )|E |4
= E(w ) 1 − 2η|E |2+ η2|E |4
= E(w ) 1 + η|E |2(η|E |2− 2)
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Wielkość η
Chcemy aby energia zmalała tj. E (w∗) < E (w ) Zatem musimy otrzymać:
0 ≤ 1 + η|E |2(η|E |2− 2) < 1 η|E |2(η|E |2− 2) < 0
Z naszych założeń mamy η > 0 oraz norma |E |2≥ 0, zatem upraszczamy nierówność:
η|E |2− 2 < 0 0 < η < 2
|E |2
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
Wielkość η
-3 -2
-1 0
1 2
3
x
0 -1 2 1 4 3 0 20 40 60 80 100 120 140
p(x,y)
RBF Jednostka AdaLine Zastosowania
Model
Algorytm spadku gradientowego Uczenie Adaline
Dowód
Wielkość stałej uczenia
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.
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
Zastosowania Adaline
Modelowanie zależności (lokalnie) liniowych, Adaptacyjne filtry liniowe.
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
Filtry liniowe
Oryginalny rysunek za http://en.wikipedia.org/, 2011-09.
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
Rozpoznawanie obrazów
Chcemy rozpoznawać obraz po przesunięciu,
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
Rozpoznawanie obrazów
Po przesunięciu piksele mogą zmieniać się dowolnie,
Amplituda transformaty Fouriera obrazu jest niewrażliwa na takie przesunięcia.
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
DFT
Dany sygnał (ciąg) x = (x0, ..., xN−1), Dyskretna transformata Fouriera sygnału x :
DFT (x ) = X = (X0, ..., XN−1)
Xj =
N−1
X
k=0
xkω−kjN , gdzie
ωN = exp(i2π
N) = cos(2π
N) + i sin(2π N ) UWAGA. Zarówno x jak i DFT (x ) mogą być zespolone.
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
DFT
Dany sygnał (ciąg) x = (x0, ..., xN−1), Dyskretna transformata Fouriera sygnału x :
DFT (x ) = X = (X0, ..., XN−1) Xj = Yj + iZj, Yj, Zj ∈ R Amplituda DFT:
A(Xj) = q
(Yj2+ Zj2)
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
DFT
obraz DFT obraz DFT
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
DFT
DFT 100 × log(DFT)
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
DFT
DFT 100 × log(DFT)
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
DFT
out
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
Zadania
Dostosuj jednostkę RBF tak, aby miała kształt eliptyczny (a nie kolisty).
(*) Jak będzie działała jednostka RBF korzystająca z normy pierwszej, trzeciej itp. (a nie „zwykłej” drugiej)?
||x||p= X
i
xip
!p1
Zaimplementuj algorytm spadku gradientowego dla funkcji p(x , y ) = 2x2+ 2y2+ 2x + 2y + 2 ze stałą uczenia η1 = .51 oraz η1= .49.
Zaimplementuj algorytm spadku gradientowego dla funkcji
RBF Jednostka AdaLine Zastosowania
Filtrowanie obrazów Rozpoznawanie obrazów DFT
Zadania
Zadania
Czym skutkuje dodanie progu (w0) 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.