Upload
api-3773256
View
1.163
Download
1
Embed Size (px)
Citation preview
© Dr inŜ. JANUSZ LICHOTA
PODSTAWY MECHATRONIKI
Sztuczne sieci neuronowe(Tekst oparty m.in. o wykład Roberta Stengela / Princeton)
Wydział Mechaniczno-Energetyczny
PLAN WYSTĄPIENIA
• �eurony naturalne i sztuczne
• Sieci neuronowe :
liniowe
perceptronowe
sigmoidalne
• Uczenie sieci neuronowych
• Samoorganizujące się mapy Kohonena
• Sieci rekurencyjne: Hopfielda i Grossberga
• Zastosowania sieci neuronowych
NEURONY NATURALNE Inspiracja biologicznaZwierzęta są zdolne do adaptacji do zmian zachodzących w
ich zewnętrznym i wewnętrznym środowisku używając układu
nerwowego.
Odpowiedni model matematyczny układu nerwowego
powinien dawać podobną odpowiedź na pobudzenia
środowiska.
Układ nerwowy jest zbudowany ze względnie prostych
neuronów, więc kopiowanie ich zachowania i funkcjonalności
powinno dać pożądany efekt.
NEURONY NATURALNE Inspiracja biologiczna
NEURONY NATURALNE
Neurony to komórki o znacznej
aktywności elektrochemicznej
Mózg zawiera około 1012 neuronów
Pomimo złożonej aktywności
sygnał wyjściowy jest skalarny
Pojedynczy neuron może pobudzać
tysiące wyjść i przyjmować
sygnały z tysięcy wejść
NEURONY NATURALNE
Dendryty
(Dendrites)
Ciało somatyczne
(Soma)
Akson (Axon)
NEURONY NATURALNE
Synapsy
(synapses)
Akson
(axon)
Dendryty
(dendrites)
Przekazywanie informacji następuje poprzez synapsy.
NEURONY NATURALNE
NEURONY NATURALNE Pobudzanie wejścia powoduje zmianę wyjścia
Jeżeli potencjał membrany
komórki neuronowej
przekracza próg, to
-impuls elektryczny jest przewodzony
przez akson
-aktywność neuronu jest mierzona przez
częstotliwość impulsów
- Potencjał powraca do
podstawowego stanu
NEURONY NATURALNE
Dendryty otrzymują sygnały z
innych neuronów.
Aksony transmitują sygnały do
innych neuronów i efektorów
końcowych
Synapsy odzwierciedlają siłę
połączenia-pobudzają lub wstrzymują aktywność
neuronów
-są parametrami uczenia systemu nerwowego
Impuls płynący aksonem wyzwala wydzielanie
nerotransmitera w synapsie.
Neurotransmiter pobudza (excitation) lub
inhibituje (inhibition) dendryt następnego
neuronu.
Kombinacja pobudzenia i inhibicji może
pobudzić następny neuron.
Udział sygnału w łącznym pobudzeniu
następnego neuronu zależy od siły połączenia
synaptycznego.
NEURONY NATURALNE
• Badania nad SSN rozpoczęto 1943 roku
• Początkiem był model neuronu
McCulloch-Pitts’a
• Model ten realizował funkcje logiczne
NEURONY NATURALNE I SZTUCZNE
NEURONY NATURALNE I SZTUCZNE
synapsadendryty
akson
NEURONY NATURALNE I SZTUCZNE
Wejście u do neuronu pochodzi z czujnika lub z innego neuronu
Liniowa operacja na wejściu generuje skalar r
Dodawane jest przesunięcie b
Wyjście z neuronu u jest obliczane w zależności od funkcji aktywacji
Warstwa
wejściowa
Warstwa
ukryta
Warstwa
wyjściowa
NEURONY SZTUCZNE
NEURONY SZTUCZNE
x1
x2
xn
y1
y2
ym
w11
w12 1
2
m
w1n
w21
w22
w2n
wm1
wmn
wm2
[Wx] y(t)x(t)
, i - numer neuronu, j - numer wejścia
x =
x x xn
t
1 2 ... y =
y y ym
t
1 2 ...
net w x i mi
def
ij jj
n
= ==∑
1
1 2, , , ... ,
w i
def
i i in
t
w w w=
1 2 ...
y [Wx]= ΓW =
def
n
n
m m mn
w w w
w w w
w w w
11 12 1
21 22 2
1 2
...
...
..................
...
Γ =
⋅
⋅
⋅
def
f
f
f
( ) ...
( ) ...
.............
... ( )
0 0
0 0
0 0
Warstwa wejściowa
Warstwa ukryta
Warstwawyjściowa
Warstwa wejściowa
Warstwa ukryta
Warstwawyjściowa
Warstwa pojedyncza
-liczba wejść n
-Liczba neuronów m
NEURONY SZTUCZNEOpis matematyczny
Dwie warstwy
Sieć ADALINE (Adaptive Linear Neuron)
- uczenie sieci liniowej metodą rekursywną najmniejszych kwadratów
NEURONY SZTUCZNESieć liniowaWyjścia z sieci są liniowo przeskalowanymi wejściami
Sieć równoważna macierzowej transformacji y = Wx + b
Łatwe w uczeniu – wystarczy obliczyć macierz odwrotną
NEURONY SZTUCZNEFunkcje aktywacji neuronów
Funkcja skokowa (McCulloch i Pitts)
Funkcja sigmoidalna
Funkcja sigmoidalna
z dwoma wejściami
NEURONY SZTUCZNEFunkcje aktywacji neuronów
f(wtx)
x1
x2
xn
...
w1
w2
wn
y
neuronwagi
synaptyczne
sygnały
wejściowe
sygnał
wyjściowy
( )y f f w xt
i i
i
n
= =
=∑w x
1
w =
def
n
t
w w w1 2 ...
x =
def
n
t
x x x1 2 ...
netdef
t= w x
Bipolarna ciągła
( )f netnet
( )exp
,=+ − ⋅
− >2
11 0
λλ ( )f net net
net
net( ) sgn
,
,= =
+ ≥
− <
1 0
1 0
( )f netnet
( )exp
,=+ − ⋅
>1
10
λλ f net
net
net( )
,
,=
+ ≥
<
1 0
0 0
Bipolarna binarna
Unipolarna ciągła Unipolarna binarna
X1
X2
X3
W1
W2
W3
TY
Y=1 jeżeli W1X1+W2X2+W3X3 ≥T
Y=0 jeżeli W1X1+W2X2+W3X3<T
NEURONY SZTUCZNEModel McCulloch’a-Pitts’a X1
X2 X3
Y
Neurony przetwarzają informacje. Otrzymują i wytwarzają
informację w postaci impulsów.
Wejścia
Wyjściew2
w1
w3
wn
wn-1
..
.
x1
x2
x3
…
xn-1
xn
y)(;
1
zHyxwzn
i
ii ==∑=
NEURONY SZTUCZNEModel McCulloch’a-Pitts’a
+
x1
x2
xn
...
w1
w2
wn
y(w,x)net-1
1net
Model neuronu (perceptronu) binarnego
NEURONY SZTUCZNEModel prowadzi do sieci percepronowej
Każdy neuron jest funkcją skokową
Ważona suma wejść jest wprowadzana
do neuronu
Każdy neuron liniowo klasyfikuje przestrzeń
wejściową
Wagi dostosowują kąty
pochylenia prostych
Przesunięcia b dostosowują
punkt przejścia przez zero
Nieciągłość funkcji aktywacji
sprawia trudności z uczeniem
sieci
Cechy modelu:
• impulsy są dwustanowe;
• siła synaps jest rozumiana jako
wagi synaptyczne;
• pobudzenie oznacza dodatniiloczyn przychodzącego impulsu i
wagi;
• inhibicja oznacza ujemnyiloczyn przychodzącego impulsu i
wagi;
NEURONY SZTUCZNESieć percepronowa
NEURONY SZTUCZNESieć percepronowa jako dyskryminanta
Dwa wejścia, pojedynczy skok
dyskryminanta
Trzy wejścia, pojedynczy neuron
NEURONY SZTUCZNESieć percepronowa jako dyskryminanta
Wiele wejść – więcej wymiarów w
dyskryminantach
Wiele wyjść – więcej dyskryminant
NEURONY SZTUCZNESieć percepronowa jako klasyfikator
Wpływ ilości warstw na możliwości obliczeniowe sieci
NEURONY SZTUCZNESieć percepronowa jako maszyna logiczna
X1
X2
1
1
1Y
Y = X1 OR X2
NEURONY SZTUCZNESieć percepronowa jako maszyna logiczna
X1
X2
1
1
2Y
Y = X1 AND X2
X-1 0
Y
Y = NOT X
NEURONY SZTUCZNESieć percepronowa jako maszyna logiczna
NEURONY SZTUCZNESieć percepronowa - przykład
+
x1
x2
x3
1
-1
-3
y1
net-1
1net
+net-1
1net
+net-1
1net
+net-1
1net
+net-1
1net
y2
y3
y4
y5
-1
1
-2
1
-1
1
1
1
1
3.5
Przeanalizować dwuwarstwową sieć jednokierunkowąwarstwa 1
y =
y
y
y
y
y
1
2
3
4
5
x =
−
x
x
1
2
1
W1 =− −
− −
1 0 1
1 0 2
0 1 0
0 1 3
warstwa 2
[ ]y = y5 x =
−
y
y
y
y
1
2
3
4
1
W2 =
1 1 1 1 35.
Wektor wyjściowy pierwszej warstwy
( )( )( )( )
y =
−
− +
− +
sgn
sgn
sgn
sgn
x
x
x
x
1
1
2
2
1
2
3
Wektor wyjściowy drugiej warstwy ( )[ ]y = + + + −sgn .y y y y1 2 3 4 35
-2
NEURONY SZTUCZNESieć sigmoidalna
Alternatywne funkcje sigmoidalne
-logistyczna
-arc tangens
Warstwy sigmoidalne
-funkcje gładkie
-nieskończenie różniczkowalne
-Dlatego względnie łatwe do uczenia
NEURONY SZTUCZNESieć sigmoidalna uniwersalnym aproksymatorem
Sieć sigmoidalna z pojedynczą warstwą ukrytą może aproksymować dowolną
funkcję ciągłą. (Funahashi, 1989, Cybenko, 1989)
Dodatkowe warstwy ukryte nie są potrzebne.
Typowa sieć sigmoidalna zawiera
- pojedynczą warstwę ukrytą (dopasowanie nieliniowe)
- pojedynczą warstwę liniową (skalowanie)
NEURONY SZTUCZNESieć sigmoidalna uniwersalnym aproksymatorem
Sieć sigmoidalna z jedną warstwą ukrytą może aproksymować ciągłą,
nieliniową funkcję z dowolną dokładnością.
Klasyfikacja nie jest ograniczona do liniowych dyskryminant.
NEURONY SZTUCZNESieć sigmoidalna ze sprzęŜeniem zwrotnym
x1(0)
x2(0)
xn(0)
y1
y2
ym
w11
w12 1
2
m
w1n
w21
w22
w2n
wm1
wmn
wm2
[Wx] y(t)x(0)
y(t+delta)
Jednowarstwowa, dyskretna w czasie sieć ze sprzężeniem zwrotnym
( ) ( )y [Wy ]t t+ =∆ Γ y [Wy ]k k+ =1 Γ
y [Wx ]1 0= Γ
y [W [Wx ]]2 0= Γ Γ
...
NEURONY SZTUCZNESieć z progiem TAK/NIE
NEURONY SZTUCZNEWybór funkcji aktywacji
Funkcja radialna
Rozważania przed wyborem
funkcji aktywacji
- wiedza a priori o aproksymowanej
powierzchni
- liczba wymaganych neuronów
NEURONY SZTUCZNEPrzykład – rozpoznawanie komórek rakowych
Rak = 1
Komórka normalna=0
NEURONY SZTUCZNEPrzykład – rozpoznawanie komórek rakowych
Uczenie przy pomocy 60%
danych
Testowanie – 40% danych
85% prawidłowo
rozpoznanych
komórek rak/normalna
15% źle rozpoznanych
UCZENIE NEURONÓW SZTUCZNYCH
Liczba wyjść = liczba powierzchni docelowych
Liczba wejść = liczba wymiarów powierzchni
docelowych
Liczba neuronów = złożoność powierzchni
UCZENIE NEURONÓW SZTUCZNYCH Uczenie nadzorowane i nienadzorowane
Uczenie nadzorowane = aproksymacja funkcji y=h(x) przy znanych
wyjściach yT oraz wejściach x.
-klasyfikacja: yT przyjmuje wartości dyskretne
-aproksymacja: yT może przyjąć wartości ciągłe
Uczenie nienadzorowane
-znaleźć klastry (podzbiory) w zbiorze x bez zależności od y
-zastosować heurystyczną wiedzę do wprowadzenia relacji pomiędzy x i y
UCZENIE NEURONÓW SZTUCZNYCH
Zasada nauki sieci neuronowej : Wektor wag (i=1...n), połączony z danym
neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r w i = [ ... ]w w wi i in
t
1 2
x1
x2
xn
...
wi1
wi2
win
yi
generator
sygnału
uczącego
i-ty neuron
x
c
r di
wi
sygnał uczący
zmiana wagc>0, c - stała uczenia
wagi w chwili t+1
( )r r di= w xi , ,
( ) ( )∆w xi t cr t=
( ) ( )w w w xi i( )t t cr tt+ = = ++1 1
Reguła Hebba.
Uczenie nienadzorowane.
( )r y fi i
t= = w x
( ) ( )∆w xi t cy ti=
∆w cy x j nij i j= =, , ,...,1 2
UCZENIE NEURONÓW SZTUCZNYCHSieć perceptronowa - przykład
Kontynuować naukę sieci neuronowej z rysunkuZałożenia :
funkcja aktywacji : binarna bipolarna
c=1
x1
x2
x4
w1
w2
w4
yw3
x3
Dane są trzy wektory wejściowe x1 =−
1
2
15
0
.x2
1
05
2
15
=−
−
−
.
.
x3
0
1
1
15
=−
.
w1 =−
1
1
0
05.
Wektor wag
net1 1 1 0 05
1
2
15
0
3= = −
−
=w x11 .
.Pobudzenie neuronu
Krok 1.
Nowe wagi ( )w w x w x1 12 1 1 1
1
1
0
0 5
1
2
15
0
2
3
15
05
= + = + =−
+−
=−
sgn
.
. .
.
net
Krok 2.
net 2 2
2 2 3 15 05
1
0 5
2
15
0 25= = −
−
−
−
= −w x . ..
.
.
( )w w x w x3 2 2
2
2
2
2
3
15
05
1
0 5
2
15
1
2 5
35
2
= + = − =−
−−
−
−
=−
sgn.
.
.
.
.
.net
( )f net netnet
net( ) sgn
,
,= =
+ ≥
− <
1 0
1 0
UCZENIE NEURONÓW SZTUCZNYCHSieć perceptronowa - przykład
Kontynuować naukę sieci neuronowej z rysunku
Założenia :
funkcja aktywacji : binarna bipolarna
c=1
x1
x2
x4
w1
w2
w4
yw3
x3
Dane są trzy wektory wejściowe x1 =−
1
2
15
0
.x2
1
05
2
15
=−
−
−
.
.
x3
0
1
1
15
=−
.
w1 =−
1
1
0
05.
Wektor wag
Pobudzenie neuronu
Nowe wagi
Krok 2.
net 2 2
2 2 3 15 05
1
0 5
2
15
0 25= = −
−
−
−
= −w x . ..
.
.
( )w w x w x3 2 2
2
2
2
2
3
15
05
1
0 5
2
15
1
2 5
35
2
= + = − =−
−−
−
−
=−
sgn.
.
.
.
.
.net
Krok 3.
net 3 3
3 1 2 5 35 2
0
1
1
15
3= = −
−
= −w x . .
.
( )w w x w x4 3 3
3
3
3
1
2 5
35
2
0
1
1
15
1
35
4 5
05
= + = − =−
−−
=−
sgn.
.
.
.
.
.
net
UCZENIE NEURONÓW SZTUCZNYCH Sieć liniowa
Sieć równoważna macierzowej transformacji y = Wx + b
Wystarczy obliczyć macierz odwrotną
Sieć ADALINE (Adaptive Linear Neuron)
- uczenie sieci liniowej metodą rekursywną najmniejszych kwadratów
UCZENIE NEURONÓW SZTUCZNYCH Sieć liniowa – uczenie pojedynczego neuronu
Błąd uczenia
Błąd uczenia: różnica pomiędzy sygnałem z sieci y i sygnałem nauczyciela yT
Funkcja kosztów J: kwadratowa
UCZENIE NEURONÓW SZTUCZNYCH Sieć liniowa – uczenie pojedynczego neuronu
Gradient błędu
neuronu liniowego
Strojony parametr p
-wagi W
-przesunięcie b
-Warunek optymalności
-Gradient
UCZENIE NEURONÓW SZTUCZNYCH Sieć liniowa – uczenie pojedynczego neuronu
Metoda największego spadku gradientu
Gradient
Metoda największego spadkuηηηη - współczynnik uczenia
k– liczba epok
UCZENIE NEURONÓW SZTUCZNYCH Sieć liniowa – uczenie pojedynczego neuronu
Metoda propagacji wstecznej błędu (backpropagation)
Algorytm
największego
spadku
Zbiór
uczący
Odpowiedź
sieci
Zbiór uczący:
-wejścia X (m x n)
-wyjścia Y (1 x n)
Losowo zainicjuj w oraz b
Dopóty rekursywnie estymuj w oraz b(on-line lub off-line)
dopóki gradient funkcji kosztów nie
będzie w przybliżeniu równy zero.
UCZENIE NEURONÓW SZTUCZNYCH Sieć perceptronowa – uczenie pojedynczego neuronu
Wyjście z neuronu jest nieciągłe
Błąd może wynosić
Algorytm
największego
spadku
UCZENIE NEURONÓW SZTUCZNYCHSieć perceptronowa
Zasada nauki sieci neuronowej : Wektor wag (i=1...n), połączony z danym
neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r w i = [ ... ]w w wi i in
t
1 2
x1
x2
xn
...
wi1
wi2
win
yi
generator
sygnału
uczącego
i-ty neuron
x
c
r di
wi
sygnał uczący
zmiana wagc>0, c - stała uczenia
wagi w chwili t+1
( )r r di= w xi , ,
( ) ( )∆w xi t cr t=
( ) ( )w w w xi i( )t t cr tt+ = = ++1 1
Reguła perceptronowa.
Uczenie nadzorowane.
r d yi i= −
( )yi = sgn w xit
( ) [ ] ( )∆w xi t c d y ti i= −
UCZENIE NEURONÓW SZTUCZNYCH Sieć sigmoidalna – uczenie pojedynczego neuronu
Parametr poszukiwany
Funkcja kosztów
UCZENIE NEURONÓW SZTUCZNYCH Sieć sigmoidalna – uczenie pojedynczego neuronu
UCZENIE NEURONÓW SZTUCZNYCH Sieć sigmoidalna – uczenie warstw neuronów
UCZENIE NEURONÓW SZTUCZNYCH
Zasada nauki sieci neuronowej : Wektor wag (i=1...n), połączony z danym
neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r w i = [ ... ]w w wi i in
t
1 2
x1
x2
xn
...
wi1
wi2
win
yi
generator
sygnału
uczącego
i-ty neuron
x
c
r di
wi
sygnał uczący
zmiana wagc>0, c - stała uczenia
wagi w chwili t+1
( )r r di= w xi , ,
( ) ( )∆w xi t cr t=
( ) ( )w w w xi i( )t t cr tt+ = = ++1 1
Reguła delta.
Uczenie nadzorowane.
[ ]r d y yi i i= = −δ '
( ) [ ] ( ) ( )δw xi t c d y f net ti i
i
i= −
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - przykład
Kontynuować naukę sieci neuronowej z rysunkuZałożenia :
funkcja aktywacji : ciągła bipolarna
c=0.1 , λ=1
x1
x2
x4
w1
w2
w4
yw3
x3
Dane są trzy wektory wejściowe
Wektor wag
Pobudzenie neuronu
Krok 1.
Nowe wagi
Krok 2.
x1 =−
−
1
2
0
1
x2
0
15
0 5
1
=−
−
.
.x3
1
1
05
1
=
−
−
.
w1 =−
1
1
0
05. Pożądane odpowiedzi na kolejne obrazy
xi(sygnał nauczyciela) : -1, -1, 1Pochodna funkcji aktywacji y ( ) ( )f net y' = −
1
21 2
net 1 2 5= =w x11 .
( )y f net1 1 0848= = .Wartość wyjściowa z neuronu :
Wartość pochodnej funkcji aktywacji : ( ) ( )( )f net y' .1 1 21
21 014= − =
( ) ( )w w x12 1
1
1 1 0 974 0 948 0 0 526= + − = −
c d y f net
t
' . . .
net 2 2
2 1948= = −w x .
( )y f net2 2 0 75= = − .
( ) ( )( )f net y' .1 2 21
21 0 218= − =
( ) ( )w w x3 2
2
2 2
2 0 974 0 956 0 002 0531= + − = −
c d y f net
t
' . . . .
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - przykład
Kontynuować naukę sieci neuronowej z rysunkuZałożenia :
funkcja aktywacji : ciągła bipolarna
c=0.1 , λ=1
x1
x2
x4
w1
w2
w4
yw3
x3
Dane są trzy wektory wejściowe
Wektor wag
Pobudzenie neuronu
Krok 2.
Nowe wagi
Krok 3.
x1 =−
−
1
2
0
1
x2
0
15
0 5
1
=−
−
.
.x3
1
1
0 5
1
=
−
−
.
w1 =−
1
1
0
0 5. Pożądane odpowiedzi na kolejne obrazy
xi(sygnał nauczyciela) : -1, -1, 1Pochodna funkcji aktywacji y ( ) ( )f net y' = −
1
21 2
Wartość wyjściowa z neuronu :
Wartość pochodnej funkcji aktywacji :
net 2 2
2 1948= = −w x .
( )y f net2 2 0 75= = − .
( ) ( )( )f net y' .1 2 21
21 0 218= − =
( ) ( )w w x3 2
2
2 2
2 0 974 0 956 0 002 0531= + − = −
c d y f net
t
' . . . .
net 3 3
3 2 46= = −w x .
( )y f net3 3 0842= = − .
( ) ( )( )f net y' .1 3 21
21 0145= − =
( ) ( )w w x4 3
2
2 2
2 0 974 0 929 0 016 0505= + − = −
c d y f net
t
' . . . .
Metoda identyfikacji dowolnych obiektów (liniowych lub nieliniowych)
za pomocą sztucznej sieci neuronowej
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
czasSygnał pozwala na identyfikację obiektu liniowego
przez sieć neuronową
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
Obiekt i jego odpowiedź skokowa
Sygnał identyfikacyjny
Sygnał identyfikacyjny „nie czeka” na stan ustalony obiektu
Obiekt Rejestracja
Zapis wyników eksperymentu do przestrzeni roboczej matlaba
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
wektor y przechowuje sygnał wyjściowy z obiektu
wektor x przechowuje sygnał wejściowy do obiektu
W przestrzeni roboczej dostępna jest również zmienna tout przechowująca kolejne chwile czasu.
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
Istotne jest to, żeby krok zapisywania danych był stały. Ułatwia to konstrukcję modelu, ponieważ można zastosować operator z do modelowania opóźnienia (0.1 sekundy).
P=[delaysig(x',0,5);y']; %wektor wejściowy, 7 wierszy = 6 sygnałów wejściowych x(t), x(t-1),...,x(t-6) + 1 sygnał y(t)
T=y'; %wektor wyjściowy
net = newff([ -1 1
-1 1
-1 1
-1 1
-1 1
-1 1
-1 1],
[5 1],
{'tansig' 'purelin'}); %�OWA SIEĆ: zakres, liczba neuronów, funkcje aktywacji
Wejścia (7 wierszy)
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
Struktura sieci 7:5:1
net = train(net,P,T);
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
�auka sieci
» Y = sim(net,P);
» plot(tout,y,tout,Y,'o')
» grid on
Dane wyjściowe uczące są zapisane w wektorze yDane z symulacji sieci w zmiennej Y�ależy je narysować w funkcji czasu tout
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
Jak widać sieć nauczyła się dynamicznej odpowiedzi obiektu
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
Test sieci sygnałami nie używanymi w trakcie uczeniaSygnał skokowy » P=[delaysig(x',0,5);y'];
» Y = sim(net,P);
» plot(tout,y,tout,Y,'o')
» grid on
Inne testy dowodzą, że sieć musi być jeszcze uczona na podstawie stanu ustalonego odpowiedzi obiektu i z mniejszym błędem mse.
Zielony – sieć�iebieski - obiekt
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja
W pokazanym przykładzie jedna rzecz jest podejrzana. Która?
Mało użyteczne wydaje się zastosowanie sygnału y(t) na wejściu
sieci. Dlaczego? Przecież jest on na wyjściu z obiektu, więc jest
znany.
Model użyteczny wykorzystuje sygnał y(t-1) zamiast y(t).
P=[delaysig(x',0,5);y'];
Kolejny przykład pokazuje jak zidentyfikować obiekt za pomocą sztucznej sieci neuronowej, aby
przewidywać przyszłe sygnały z obiektu.
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 2
Stała czasowa obiektu T=1, wobec tego stan ustalony uzyskiwany jest po około 5T = 5 sekund. Stąd zakres czasowy sygnału identyfikacyjnego.
0 5 10 15 20 25 30 35 40 45 czas, sekundy
1
-1
-2
2
0
+1
-1
-1
+1
+2
-2
-2
+2
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 2
Struktura sieci : 11:5:110 neuronów sygnału x(t-10)...x(t) i 1 sygnału y(t-1), na wyjściu y(t)
Sygnały rejestrowane co 0.5 sekundy, co pozwala na uchwycenie szybkich zmian odpowiedzi skokowej w początkowym ich zakresie. 10 neuronów sygnału x oznacza 5 sekund obserwacji aż do osiągnięcia stanu ustaloneggo odpowiedzi skokowej.
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 2
Sygnał testowy i odpowiedź obiektu
P = [delaysig(x',0,9); delaysig(y',1,1)];
T=y';
net = newff([-2 2
-2 2
-2 2
-2 2
-2 2
-2 2
-2 2
-2 2
-2 2
-2 2
-2 2],
[5 1],{'tansig' 'purelin'}); %zakres, liczba neuronów, funkcje aktywacji
net.trainParam.epochs = 50;
net = train(net,P,T); Y = sim(net,P);plot(tout,T,tout,Y,'o')
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 2
�auka i jej wynik
Polecenie P = [delaysig(x',0,9); delaysig(y',1,1)]; układa dane
dla 11 neuronów w wierszach
[analogia do ładowania rewolweru (sieci) nabojami (próbkami
uczącymi) ]
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 2
Test i jego wynik
P = [delaysig(x',0,9); delaysig(y',1,1)];
T=y';
Y = sim(net,P);
plot(tout,T,tout,Y,'o')
O – wynik z sieci, linia ciągła – rzeczywista odpowiedź sieci na losowe pobudzenie obiektu co 0.5 sekundy
Eksperyment identyfikacyjny...
bez eksperymentu
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 3Kolejny przykład pokazuje jeszcze ciekawszą własność: zbiór uczący może składać się z losowego pobudzeniaobiektu oraz sygnału wyjściowego. Weźmy sygnał z ostatniego slajdu i użyjmy go do nauki.
P = [delaysig(x',0,9); delaysig(y',1,1)]; T=y';
net = newff([-2 2; -2 2; -2 2; -2 2; -2 2; -2 2; -2 2;-2 2; -2 2; -2 2; -2 2],[5 1],{'tansig' 'purelin'});
net.trainParam.epochs = 50;
net = train(net,P,T);
Y = sim(net,P);
plot(tout,T,tout,Y,'o')
Wynik nauki:(wartości szczytowe są lepiej odtworzone)
I testujemy sieć nie widzianym przez nią sygnałem.
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 3
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 3P = [delaysig(x',0,9); delaysig(y',1,1)];
T=y';
Y = sim(net,P);
plot(tout,T,tout,Y,'o')
1) Pomimo zakresu sygnału
wejściowego (-0.6, 0.6) sieć
prawidłowo odtwarza
odpowiedź obiektu
w zakresie (-1,1)
2) �ieprawidłowo w zakresie
(1,2), (-1,-2)
W�IOSEK
Zwiększenie zakłóceń do
pełnej dziedziny (-2,2)
powinno umożliwić dobrą
identyfikację
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4
A może by tak ...
przewidzieć następną wartość
indeksu giełdowego ?
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4
Zadanie wydaje się interesujące:
- teoretycznie miliony uczestników rynku, a przynajmniej dziesiątki
funduszy i nie wszystkie stosują metody typu insider trading oraz
pompowanie ceny pojedynczej firmy w celu podpuszczenia innych i
szybkiego wyjścia z akcji (proponuję poczytać gazety) itp.
- w danej chwili nie są znane sygnały wejściowe u (zakup akcji lub
futures, cena i wolumen)
y=[1000.00
967.70
945.60
939.60
...
18370.00
18276.30
18083.60
];
y=y/25000;
P=[delaysig(y',1,10)];
T=delaysig(y',0,0);
net=newff(minmax(P),[4 1],{'tansig' 'purelin'});
net=train(net,P,T);
Y=sim(net,P);
tout=1:1723
plot(tout,y',tout,Y,'o');
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4
1) Wprowadzamy dane o indeksie do wektora y(tutaj WIG od początku 16 IV 1991 do roku 2000, dane o kursie zamknięcia ze strony www.bossa.pl)
2) Skalujemy dane, bo inaczej sieć będzie miała trudności z nauką
3) Obserwuj 9 kolejnych sesji (wektor P)4) Podaj wartość indeksu dla 10-tej (wektor T)5) Struktura sieci 9:4:1
6) Sztuczny czas : ilość linii danych7) Pokaż wynik, ‘o’ – predykcja sieci
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4
Przebieg nauki
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4
Wynik nauki i jeden punkt z przewidywaną wartością indeksu
Wartość przewidywana na 3 I 2000 wynosi 18 130, wartość rzeczywista 18 873, a użyto zaledwie 9 neuronów...
�a poprzedniej sesji było 18083, więc sieć prawidłowo przewiduje tendencję.
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4Próba przewidywania kilku sesji do przodu (nauka: 1992-kwiecień 2007, test7 sesji w maju 2007) daje model odtwarzający rzeczywisty przebieg indeksu z dokładnością około 0,3%.
Mała dokładność przy grze milionami złotych.
Duża jak na tak prosty model z najmniejszą możliwą ilością danych wejściowych (tylko indeks).
Jak zidentyfikować obiekt
o dwóch wejściach
i jednym wyjściu?
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 5
Rezultat losowegopobudzenia obiektusygnałami x1 i x2
P = [delaysig(x1',0,9);delaysig(x2',0,9); delaysig(y',1,1)];
T=y';
net = newff(minmax(P),[5 1],{'tansig' 'purelin'});
net.trainParam.epochs = 50;
net = train(net,P,T);
Y = sim(net,P);
plot(tout,T,tout,Y,'o')
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 5
Wejścia: 10 wejść x1: x1(t),...,x1(t-9)10 wejść x2: x2(t),...,x2(t-9)1 wejście y : y(t-1)
Wyjście: y(t)
Struktura sieci 21:5:1
UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 5
Wynik nauki
‘o’ sieć
‘-’ sygnał
Wynik testu
‘o’ sieć
‘-’ sygnał
[zmieniono ziarno (seed) w obu
sygnałach x1 oraz x2 na [23351]]
Model odwrotny obiektu
Model odwrotny obiektuw układzie regulacji
Sieci neuronowe w matlabie 5.3Regulator neuronowy
REGULATOR NEURONOWYRegulator optymalizujący
Generowanie danych uczących x, y
Generowanie danych testowych xt, yt
P=[delaysig(x',0,5);delaysig(y',1,1)];
T=y';
net = newff(minmax(P),[5 1],{'tansig' 'purelin'});
net = train(net,P,T);
Y = sim(net,P);
plot(tout,y,tout,Y,'o')
grid on
Wektor wejściowy P ma 7 wierszy =
6 sygnałów wejściowych x(t), x(t-1),...,x(t-6) oraz sygnał y(t-1)
Wektor wyjściowy T zawiera sygnał y(t)
Interpretacja zbioru uczącego:
Mając zadany przyszły sygnał wejściowy x(t) wyznaczyć przyszły sygnał y(t)
�aukasieci
REGULATOR NEURONOWYRegulator optymalizujący - nauka
P=[delaysig(x',0,5);delaysig(y',1,1)];
T=y';
net = newff(minmax(P),[5 1],{'tansig' 'purelin'});
net = train(net,P,T);
Y = sim(net,P);
plot(tout,y,tout,Y,'o')
grid on
�aukasieci
Wynik nauki
‘o’ sieć
‘-’ sygnał
%test
Pt=[delaysig(xt',0,5);delaysig(yt',1,1)];
Yt = sim(net,Pt);
plot(tout,yt,tout,Yt,'o')
grid on;
Test sieci sygnałem losowym
REGULATOR NEURONOWYRegulator optymalizujący - test
REGULATOR NEURONOWYRegulator optymalizujący
Help nnet
Polecenie : gensim
Pt=[delaysig(xt',0,5);yt'];
Yt = sim(net,Pt);
plot(tout,yt,tout,Yt,'o')
grid on;
%sprawdzenie czy sieć odpowiada prawidłowo
Pr = [0
0
0
0
0
0
-0.4095];
Yr = sim(net,Pr)
%ruch sygnałem u wokół połozenia równowagi np. w chwili
0,
Pr = [-0.1
0
0
0
0
0
-0.4095];
Yr = sim(net,Pr)
%pętla optymalizująca
for i=-1:0.1:1, Pr(1)=i, Yr = sim(net,Pr), pause; end
UCZENIE NEURONÓW SZTUCZNYCH
Zasada nauki sieci neuronowej : Wektor wag (i=1...n), połączony z danym
neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r w i = [ ... ]w w wi i in
t
1 2
x1
x2
xn
...
wi1
wi2
win
yi
generator
sygnału
uczącego
i-ty neuron
x
c
r di
wi
sygnał uczący
zmiana wagc>0, c - stała uczenia
wagi w chwili t+1
( )r r di= w xi , ,
( ) ( )∆w xi t cr t=
( ) ( )w w w xi i( )t t cr tt+ = = ++1 1
Reguła Widrowa-Hoffa.
Uczenie nadzorowane.
r d yi i= −yi = w xi
t
( ) [ ] ( )∆w xi t c d y ti i= −
UCZENIE NEURONÓW SZTUCZNYCH
Zasada nauki sieci neuronowej : Wektor wag (i=1...n), połączony z danym
neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r w i = [ ... ]w w wi i in
t
1 2
x1
x2
xn
...
wi1
wi2
win
yi
generator
sygnału
uczącego
i-ty neuron
x
c
r di
wi
sygnał uczący
zmiana wagc>0, c - stała uczenia
wagi w chwili t+1
( )r r di= w xi , ,
( ) ( )∆w xi t cr t=
( ) ( )w w w xi i( )t t cr tt+ = = ++1 1
Reguła korelacyjna
r d i=
( ) ( )∆w xi t cd ti=
UCZENIE NEURONÓW SZTUCZNYCH Samoorganizujące się mapy
Uczenie konkurencyjne, nienadzorowane
Założenie: bliskie sygnały wejściowe pobudzają
bliskie sobie sygnały wyjściowe
Uporządkowany sygnał wejściowy tworzy mapę
Warstwa
konkurencji
Klasa xZnaczenie
semantyczne
x : (n x 1), wektor sygnałów wejściowych charakteryzuje je
m: (n x 1), wektor wag z neuronu reprezentujący klasę wyjściową
UCZENIE NEURONÓW SZTUCZNYCH Warstwa konkurencji w mapie
Konkurencja jest oparta o minimalizację odległości pomiędzy m oraz x
m oznacza klasę wyjściową
Sieć semantyczna identyfikuje (nazywa) klasę
UCZENIE NEURONÓW SZTUCZNYCH Cele samoorganizacji mapy
Dane: klasy wyjściowe oraz
zbiór danych wejściowych
Znaleźć: wagi mi najlepiej dzielące
zbiór wejściowy na podzbiory
Zainicjuj losowo wagi mi w przestrzeni x.
UCZENIE NEURONÓW SZTUCZNYCH Cele samoorganizacji mapy
Zdefiniuj otoczenie o promieniu
Nc dookoła każdej komórki mi.
Okręgi powinny zachodzić na
siebie.
Znajdź najlepszą (najbliższą)
wagę mbest związaną z 1-szą
próbką uczącą.
UCZENIE NEURONÓW SZTUCZNYCH Zmian wag podczas samoorganizacji mapy
Zmień wagi dla wszystkich
komórek w otoczeniu Nc
punktu mbest
ααααk = współczynnik uczenia
Powtórz zmianę wag dla
x2 ... xJ
m1...ml
UCZENIE NEURONÓW SZTUCZNYCH Zmian wag podczas samoorganizacji mapy
Zmniejszaj promień Nc dopóty, dopóki nie wystąpi zbieżność.
UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna
Dwóch najbliższych
sąsiadów tworzy związek liniowy
Reprezentuje informacje abstrakcyjne lub kategoryzujące
Informacja kontekstowa używana jest do generowania mapy symboli
Ilość najbliższych sąsiadów wpływa na wyciągane wnioski
UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – wybór zbioru sąsiednich neuronów
Czterech najbliższych
sąsiadów tworzy wielobok
UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – kwantyzacja wektora wejściowego
Włączenie elementów uczenia nadzorowanego do uczenia nienadzorowanego
Klasyfikacja grup wyjść
Typ 1:
-dodanie książki kodów – neuronów mc o określonym znaczeniu
Typ 2
-Inhibicja : x należy do klasy mj, lecz jest bliżej mi
Klasyfikacja prawidłowa
nieprawidłowa
UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – przykład identyfikacji asocjacyjnej
UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – przykład identyfikacji semantycznej
SIECI REKURENCYJNE
Rekursja: na wejście sieci wprowadzany jest
jeden sygnał, który iteruje aż do rozwiązania.
Problemem jest zbieżność oraz stabilność
Pojedyncza sieć może posiadać wiele stanów
stabilnych
-sklasyfikowane wyjścia z sieci
-rozpoznawanie zaszumionych danych
opóźnienie
SIECI REKURENCYJNE Sieć Hopfielda
opóźnienie
Wejście do
zidentyfikowania
Wyjście z
sieci
Bipolarne (-1,1)
wejścia i wyjścia
-uczenie nadzorowane z
podaniem idealnego wzorca
-identyfikowany jest
wzorzec zaszumiony
-działanie sieci
- Iteracje aż do osiągnięcia
zbieżności
ideal+
szum
Identyfikacja
SIECI REKURENCYJNE Sieć Hopfielda - przykład
Uczenie sieci
-Danych jest M próbek ys
-Obliczenie macierzy wag
Uczenie nie wymaga iteracji
Wady
-duża liczba wag
-ograniczona liczba próbek (<0.15n), n – liczba neuronów
-podobne próbki stwarzają problemy
SIECI REKURENCYJNE Sieć Grossberga, 1976
- Samoorganizująca się i
samostabilizująca się sieć do
rozpoznawania wzorców binarnych
-Uczy się nowych wzorców, jeżeli
różnią się one dostatecznie od
poprzednich
ZASTOSOWANIA
Energetyka : Predykcja emisji NOx
Ciepłownictwo: predykcja obciążenia cieplnego
Lotnictwo: kąt natarcia i osi wzdłużnej samolotu
Medycyna: rozpoznawanie raka
Ekonomia: predykcja zmian kursów walutowych i cen akcji, futures
Telekomunikacja: telefon komórkowy - rozpoznawanie głosu właściciela
Samochód: poduszka powietrzna
Chłodnictwo: rozpoznawanie kodów kreskowych produktów w lodówce
Dziękuję za uwagę i
zainteresowanie