129
© Dr inŜ. JANUSZ LICHOTA PODSTAWY MECHATRONIKI Sztuczne sieci neuronowe (Tekst oparty m.in. o wykład Roberta Stengela / Princeton) Wydział Mechaniczno-Energetyczny

SSN-wyklad III

Embed Size (px)

Citation preview

Page 1: SSN-wyklad III

© Dr inŜ. JANUSZ LICHOTA

PODSTAWY MECHATRONIKI

Sztuczne sieci neuronowe(Tekst oparty m.in. o wykład Roberta Stengela / Princeton)

Wydział Mechaniczno-Energetyczny

Page 2: SSN-wyklad III

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

Page 3: SSN-wyklad III

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.

Page 4: SSN-wyklad III

NEURONY NATURALNE Inspiracja biologiczna

Page 5: SSN-wyklad III

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ść

Page 6: SSN-wyklad III

NEURONY NATURALNE

Page 7: SSN-wyklad III

Dendryty

(Dendrites)

Ciało somatyczne

(Soma)

Akson (Axon)

NEURONY NATURALNE

Page 8: SSN-wyklad III

Synapsy

(synapses)

Akson

(axon)

Dendryty

(dendrites)

Przekazywanie informacji następuje poprzez synapsy.

NEURONY NATURALNE

Page 9: SSN-wyklad III

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

Page 10: SSN-wyklad III

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

Page 11: SSN-wyklad III

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

Page 12: SSN-wyklad III

• Badania nad SSN rozpoczęto 1943 roku

• Początkiem był model neuronu

McCulloch-Pitts’a

• Model ten realizował funkcje logiczne

NEURONY NATURALNE I SZTUCZNE

Page 13: SSN-wyklad III

NEURONY NATURALNE I SZTUCZNE

synapsadendryty

akson

Page 14: SSN-wyklad III

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

Page 15: SSN-wyklad III

Warstwa

wejściowa

Warstwa

ukryta

Warstwa

wyjściowa

NEURONY SZTUCZNE

Page 16: SSN-wyklad III

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

Page 17: SSN-wyklad III

Warstwa pojedyncza

-liczba wejść n

-Liczba neuronów m

NEURONY SZTUCZNEOpis matematyczny

Dwie warstwy

Page 18: SSN-wyklad III

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ą

Page 19: SSN-wyklad III

NEURONY SZTUCZNEFunkcje aktywacji neuronów

Funkcja skokowa (McCulloch i Pitts)

Funkcja sigmoidalna

Funkcja sigmoidalna

z dwoma wejściami

Page 20: SSN-wyklad III

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

Page 21: SSN-wyklad III

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

Page 22: SSN-wyklad III

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

Page 23: SSN-wyklad III

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

Page 24: SSN-wyklad III

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

Page 25: SSN-wyklad III

NEURONY SZTUCZNESieć percepronowa jako dyskryminanta

Dwa wejścia, pojedynczy skok

dyskryminanta

Trzy wejścia, pojedynczy neuron

Page 26: SSN-wyklad III

NEURONY SZTUCZNESieć percepronowa jako dyskryminanta

Wiele wejść – więcej wymiarów w

dyskryminantach

Wiele wyjść – więcej dyskryminant

Page 27: SSN-wyklad III

NEURONY SZTUCZNESieć percepronowa jako klasyfikator

Wpływ ilości warstw na możliwości obliczeniowe sieci

Page 28: SSN-wyklad III

NEURONY SZTUCZNESieć percepronowa jako maszyna logiczna

X1

X2

1

1

1Y

Y = X1 OR X2

Page 29: SSN-wyklad III

NEURONY SZTUCZNESieć percepronowa jako maszyna logiczna

X1

X2

1

1

2Y

Y = X1 AND X2

Page 30: SSN-wyklad III

X-1 0

Y

Y = NOT X

NEURONY SZTUCZNESieć percepronowa jako maszyna logiczna

Page 31: SSN-wyklad III

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

Page 32: SSN-wyklad III

NEURONY SZTUCZNESieć sigmoidalna

Alternatywne funkcje sigmoidalne

-logistyczna

-arc tangens

Warstwy sigmoidalne

-funkcje gładkie

-nieskończenie różniczkowalne

-Dlatego względnie łatwe do uczenia

Page 33: SSN-wyklad III

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)

Page 34: SSN-wyklad III

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.

Page 35: SSN-wyklad III

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= Γ Γ

...

Page 36: SSN-wyklad III

NEURONY SZTUCZNESieć z progiem TAK/NIE

Page 37: SSN-wyklad III

NEURONY SZTUCZNEWybór funkcji aktywacji

Funkcja radialna

Rozważania przed wyborem

funkcji aktywacji

- wiedza a priori o aproksymowanej

powierzchni

- liczba wymaganych neuronów

Page 38: SSN-wyklad III

NEURONY SZTUCZNEPrzykład – rozpoznawanie komórek rakowych

Rak = 1

Komórka normalna=0

Page 39: SSN-wyklad III

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

Page 40: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH

Liczba wyjść = liczba powierzchni docelowych

Liczba wejść = liczba wymiarów powierzchni

docelowych

Liczba neuronów = złożoność powierzchni

Page 41: SSN-wyklad III

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

Page 42: SSN-wyklad III

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

Page 43: SSN-wyklad III

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

Page 44: SSN-wyklad III

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

Page 45: SSN-wyklad III

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

Page 46: SSN-wyklad III

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

Page 47: SSN-wyklad III

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

Page 48: SSN-wyklad III

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

Page 49: SSN-wyklad III

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.

Page 50: SSN-wyklad III

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

Page 51: SSN-wyklad III

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= −

Page 52: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Sieć sigmoidalna – uczenie pojedynczego neuronu

Parametr poszukiwany

Funkcja kosztów

Page 53: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Sieć sigmoidalna – uczenie pojedynczego neuronu

Page 54: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Sieć sigmoidalna – uczenie warstw neuronów

Page 55: SSN-wyklad III

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= −

Page 56: SSN-wyklad III

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

' . . . .

Page 57: SSN-wyklad III

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

' . . . .

Page 58: SSN-wyklad III

Metoda identyfikacji dowolnych obiektów (liniowych lub nieliniowych)

za pomocą sztucznej sieci neuronowej

Page 59: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja

czasSygnał pozwala na identyfikację obiektu liniowego

przez sieć neuronową

Page 60: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja

Obiekt i jego odpowiedź skokowa

Sygnał identyfikacyjny

Sygnał identyfikacyjny „nie czeka” na stan ustalony obiektu

Obiekt Rejestracja

Page 61: SSN-wyklad III

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.

Page 62: SSN-wyklad III

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).

Page 63: SSN-wyklad III

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

Page 64: SSN-wyklad III

net = train(net,P,T);

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna - identyfikacja

�auka sieci

Page 65: SSN-wyklad III

» 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

Page 66: SSN-wyklad III

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

Page 67: SSN-wyklad III

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'];

Page 68: SSN-wyklad III

Kolejny przykład pokazuje jak zidentyfikować obiekt za pomocą sztucznej sieci neuronowej, aby

przewidywać przyszłe sygnały z obiektu.

Page 69: SSN-wyklad III

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

Page 70: SSN-wyklad III

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.

Page 71: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 2

Sygnał testowy i odpowiedź obiektu

Page 72: SSN-wyklad III

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) ]

Page 73: SSN-wyklad III

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

Page 74: SSN-wyklad III

Eksperyment identyfikacyjny...

bez eksperymentu

Page 75: SSN-wyklad III

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)

Page 76: SSN-wyklad III

I testujemy sieć nie widzianym przez nią sygnałem.

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 3

Page 77: SSN-wyklad III

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ę

Page 78: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4

A może by tak ...

przewidzieć następną wartość

indeksu giełdowego ?

Page 79: SSN-wyklad III

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)

Page 80: SSN-wyklad III

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

Page 81: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 4

Przebieg nauki

Page 82: SSN-wyklad III

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ę.

Page 83: SSN-wyklad III

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).

Page 84: SSN-wyklad III

Jak zidentyfikować obiekt

o dwóch wejściach

i jednym wyjściu?

Page 85: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCHSieć sigmoidalna – identyfikacja 5

Rezultat losowegopobudzenia obiektusygnałami x1 i x2

Page 86: SSN-wyklad III

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

Page 87: SSN-wyklad III

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]]

Page 88: SSN-wyklad III

Model odwrotny obiektu

Page 89: SSN-wyklad III
Page 90: SSN-wyklad III
Page 91: SSN-wyklad III
Page 92: SSN-wyklad III
Page 93: SSN-wyklad III
Page 94: SSN-wyklad III

Model odwrotny obiektuw układzie regulacji

Page 95: SSN-wyklad III
Page 96: SSN-wyklad III
Page 97: SSN-wyklad III
Page 98: SSN-wyklad III
Page 99: SSN-wyklad III
Page 100: SSN-wyklad III
Page 101: SSN-wyklad III

Sieci neuronowe w matlabie 5.3Regulator neuronowy

Page 102: SSN-wyklad III

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

Page 103: SSN-wyklad III

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ł

Page 104: SSN-wyklad III

%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

Page 105: SSN-wyklad III
Page 106: SSN-wyklad III
Page 107: SSN-wyklad III

REGULATOR NEURONOWYRegulator optymalizujący

Page 108: SSN-wyklad III

Help nnet

Polecenie : gensim

Page 109: SSN-wyklad III
Page 110: SSN-wyklad III

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

Page 111: SSN-wyklad III

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= −

Page 112: SSN-wyklad III

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=

Page 113: SSN-wyklad III

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ą

Page 114: SSN-wyklad III

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ę

Page 115: SSN-wyklad III

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.

Page 116: SSN-wyklad III

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ą.

Page 117: SSN-wyklad III

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

Page 118: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Zmian wag podczas samoorganizacji mapy

Zmniejszaj promień Nc dopóty, dopóki nie wystąpi zbieżność.

Page 119: SSN-wyklad III

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

Page 120: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – wybór zbioru sąsiednich neuronów

Czterech najbliższych

sąsiadów tworzy wielobok

Page 121: SSN-wyklad III

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

Page 122: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – przykład identyfikacji asocjacyjnej

Page 123: SSN-wyklad III

UCZENIE NEURONÓW SZTUCZNYCH Mapa semantyczna – przykład identyfikacji semantycznej

Page 124: SSN-wyklad III

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

Page 125: SSN-wyklad III

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

Page 126: SSN-wyklad III

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

Page 127: SSN-wyklad III

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

Page 128: SSN-wyklad III

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

Page 129: SSN-wyklad III

Dziękuję za uwagę i

zainteresowanie