You are on page 1of 129

Wydział Mechaniczno-Energetyczny

© Dr inŜ. JANUSZ LICHOTA

PODSTAWY MECHATRONIKI

Sztuczne sieci neuronowe


(Tekst oparty m.in. o wykład Roberta Stengela / Princeton)
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 biologiczna
Zwierzę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
NEURONY NATURALNE

Dendryty
(Dendrites)

Ciało somatyczne
(Soma)

Akson (Axon)
NEURONY NATURALNE

Dendryty
Akson (dendrites)
(axon)

Synapsy
(synapses)

Przekazywanie informacji następuje poprzez synapsy.


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
NEURONY NATURALNE

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 I SZTUCZNE

• Badania nad SSN rozpoczęto 1943 roku


• Początkiem był model neuronu
McCulloch-Pitts’a
• Model ten realizował funkcje logiczne
NEURONY NATURALNE I SZTUCZNE

synapsa
dendryty

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


NEURONY SZTUCZNE

Warstwa Warstwa Warstwa


wejściowa ukryta wyjściowa
NEURONY SZTUCZNE
Warstwa Warstwa Warstwa
wejściowa ukryta wyjściowa
w11 Warstwa
x1 w12 y1 ukryta
w1n 1
w21 Warstwa Warstwa
x2 w22 y2 wejściowa wyjściowa
w2n 2
x(t) [Wx] y(t)

wm1
wm2
xn wmn ym
m
   
 f (⋅) 0 ... 0 w11 w12 ... w1n 
 
t
 
t    
y =  y1 y2 ... ym  def 0 f (⋅) ... 0 def  w
x =  x1 x 2 ... x n  21 w22 ... w2 n 
    Γ = W = y = Γ[Wx]
 
 .............   .................. 
def
 
t    
w i =  wi1 wi 2 ... win  0 0 ... f (⋅)  w w ... w 
     m1 m2 mn 

def n
net i = ∑w
j =1
ij x j , i = 1,2,..., m

, i - numer neuronu, j - numer wejścia


NEURONY SZTUCZNE
Opis matematyczny
Warstwa pojedyncza
-liczba wejść n
-Liczba neuronów m

Dwie warstwy
NEURONY SZTUCZNE
Sieć liniowa
Wyjścia z sieci są liniowo przeskalowanymi wejściami
Sieć równoważna macierzowej transformacji y = Wx + b
Łatwe w uczeniu – wystarczy obliczyć macierz odwrotną

Sieć ADALINE (Adaptive Linear Neuron)


- uczenie sieci liniowej metodą rekursywną najmniejszych kwadratów
NEURONY SZTUCZNE
Funkcje aktywacji neuronów
Funkcja skokowa (McCulloch i Pitts)
Funkcja sigmoidalna
z dwoma wejściami

Funkcja sigmoidalna
NEURONY SZTUCZNE
Funkcje aktywacji neuronów
Bipolarna ciągła Bipolarna binarna
2 + 1, net ≥ 0
f (net ) =
1 + exp( − λ ⋅ net )
− 1, λ > 0 f (net ) = sgn( net ) = 
− 1, net < 0
t
x1 
def

w1 w = w1 w2 ... wn 
x2  
w2
 n 
y = f ( w x) = f  ∑ wi xi 
t
 
f(wtx)
def
t y x =  x1 x 2 ... x n 
...  
 i =1 
wn def
xn net = w t x

sygnały wagi sygnał


neuron
wejściowe synaptyczne wyjściowy

Unipolarna ciągła Unipolarna binarna


1 + 1, net ≥ 0
f (net ) = ,λ > 0 f (net ) = 
1 + exp( − λ ⋅ net ) 0, net < 0
Y

NEURONY SZTUCZNE
Model McCulloch’a-Pitts’a X1
X2 X3

X1
W1
Y
X2 W2 T

X3 W3

Y=1 jeżeli W1X1+W2X2+W3X3 ≥T


Y=0 jeżeli W1X1+W2X2+W3X3<T
NEURONY SZTUCZNE
Model McCulloch’a-Pitts’a
Neurony przetwarzają informacje. Otrzymują i wytwarzają
informację w postaci impulsów.

x1
x2 w1
Wejścia

n
x3 w2 z = ∑ wi xi ; y = H ( z ) Wyjście
i =1 y
… w3
. . x1
w1
.
xn-1 wn-1
x2
w2 1

+ net

-1 net
y(w,x)
...

xn wn
wn
xn

Model neuronu (perceptronu) binarnego


NEURONY SZTUCZNE
Model prowadzi do sieci percepronowej
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

Każdy neuron jest funkcją skokową

Ważona suma wejść jest wprowadzana


do neuronu

Każdy neuron liniowo klasyfikuje przestrzeń


wejściową
NEURONY SZTUCZNE
Sieć percepronowa
Cechy modelu:
• impulsy są dwustanowe;
• siła synaps jest rozumiana jako
wagi synaptyczne;
• pobudzenie oznacza dodatni
iloczyn przychodzącego impulsu i
wagi;
• inhibicja oznacza ujemny
iloczyn przychodzącego impulsu i
wagi;
NEURONY SZTUCZNE
Sieć percepronowa jako dyskryminanta

Dwa wejścia, pojedynczy skok


dyskryminanta

Trzy wejścia, pojedynczy neuron


NEURONY SZTUCZNE
Sieć percepronowa jako dyskryminanta
Wiele wejść – więcej wymiarów w
dyskryminantach
Wiele wyjść – więcej dyskryminant
NEURONY SZTUCZNE
Sieć percepronowa jako klasyfikator
Wpływ ilości warstw na możliwości obliczeniowe sieci
NEURONY SZTUCZNE
Sieć percepronowa jako maszyna logiczna

X1
1
Y
1
X2
1

Y = X1 OR X2
NEURONY SZTUCZNE
Sieć percepronowa jako maszyna logiczna

X1
1
Y
2
X2
1

Y = X1 AND X2
NEURONY SZTUCZNE
Sieć percepronowa jako maszyna logiczna

X Y
-1 0

Y = NOT X
NEURONY SZTUCZNE
Sieć percepronowa - przykład
Przeanalizować dwuwarstwową sieć jednokierunkową
warstwa 1
1
1 + net y1  y1   
-1 net
   1 0 1
1
 y2   x1   
x1
  − 1 0 − 2
y =  y3 
-1
x =  x2  W1 =  
 
net
1
y2 1  y4  − 1  0 1 0
+  
-2 -1 net
1 y 
1  5  0 −1 − 3
x2 -2 + net
y5  
1 -1 net
y3
1
+ net
1 1 warstwa 2
-1 net 3.5
-1  y1 
x3  
 y2 
 
-3
+ net
1

net
y4 -1
[ ]
y = y5 x =  y3  W2 =  1 1 1 1 35
  
.

-1
 y4 
− 1
sgn( x1 − 1)   
 
sgn( − x1 + 2) 
Wektor wyjściowy pierwszej warstwy y= 
sgn( x 2 ) 
 
sgn( − x 2 + 3)

Wektor wyjściowy drugiej warstwy [


y = sgn( y1 + y2 + y3 + y4 − 35
.) ]
NEURONY SZTUCZNE
Sieć sigmoidalna

Alternatywne funkcje sigmoidalne


-logistyczna
-arc tangens

Warstwy sigmoidalne
-funkcje gładkie
-nieskończenie różniczkowalne
-Dlatego względnie łatwe do uczenia
NEURONY SZTUCZNE
Sieć 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 SZTUCZNE
Sieć sigmoidalna uniwersalnym aproksymatorem
Klasyfikacja nie jest ograniczona do liniowych dyskryminant.

Sieć sigmoidalna z jedną warstwą ukrytą może aproksymować ciągłą,


nieliniową funkcję z dowolną dokładnością.
NEURONY SZTUCZNE
Sieć sigmoidalna ze sprzęŜeniem zwrotnym
Jednowarstwowa, dyskretna w czasie sieć ze sprzężeniem zwrotnym
w11
x1(0) w12 y1
w1n 1
w21
x2(0) w22 y2
w2n 2
x(0) [Wx] y(t)

wm1
wm2
xn(0) wmn ym
m y(t+delta)

y( t + ∆) = Γ[Wy( t ) ] y k +1 = Γ[Wy k ]

y 1 = Γ[Wx 0 ]

y 2 = Γ[WΓ[Wx 0 ]]
...
NEURONY SZTUCZNE
Sieć z progiem TAK/NIE
NEURONY SZTUCZNE
Wybór funkcji aktywacji
Funkcja radialna

Rozważania przed wyborem


funkcji aktywacji

- wiedza a priori o aproksymowanej


powierzchni
- liczba wymaganych neuronów
NEURONY SZTUCZNE
Przykład – rozpoznawanie komórek rakowych

Rak = 1
Komórka normalna=0
NEURONY SZTUCZNE
Przykł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 w = [ w w ... w ] (i=1...n), połączony z danym
i i1 i2 in
t

neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r

sygnał uczący r = r ( w i , x , di ) x1 wi1


x2 wi2 i-ty neuron

zmiana wag ∆w i ( t ) = crx( t )


yi
c>0, c - stała uczenia
...

wagi w chwili t+1 w i (t + 1) = w t +1 = w i (t ) + crx( t ) win


xn
wi
generator
r sygnału di
x
uczącego
Reguła Hebba. c
Uczenie nienadzorowane.
r = yi = f ( w it x)

∆w i ( t ) = cyi x( t )
∆wij = cyi x j , j = 1,2 ,..., n
UCZENIE NEURONÓW SZTUCZNYCH
Sieć perceptronowa - przykład
Kontynuować naukę sieci neuronowej z rysunku
x1 w1
Założenia :
funkcja aktywacji : binarna bipolarna x2 w2
c=1 w3 y
1  1  0 
− 2 − 0.5 1  x3
Dane są trzy wektory wejściowe x1 = 15 
. 
x2 =   x3 =  
− 2  − 1 w4
+ 1, net ≥ 0
      f (net ) = sgn( net ) = 
0  − 15
.  . 
15 x4 − 1, net < 0
1 
− 1
Wektor wag w = 
1
0 
 
 0.5

Krok 1. 1  Krok 2. 1 
   
  − 2   − 0.5
Pobudzenie neuronu net 1 = w 1x1 = 1 − 1 0 0.5 =3 net = w x 2 = 2 − 3 15
2 2
. 0.5 = −0.25
  15
.    − 2 
   
0  − 15
. 

1  1  2 
− 1 − 2  − 3 2  1  1 
− 3 − 0.5 − 2.5
Nowe wagi w = w + sgn(net )x1 = w + x1 =   +   =
2 1 1 1  
w = w + sgn(net )x 2 = w − x 2 =   − 
3 2 2 2 =  
0  15.  15
. 
      15
.  − 2  35
. 
0.5 0  0.5       
0.5  − 15
.  2 
UCZENIE NEURONÓW SZTUCZNYCH
Sieć perceptronowa - przykład
Kontynuować naukę sieci neuronowej z rysunku
x1 w1
Założenia :
funkcja aktywacji : binarna bipolarna x2 w2
c=1 w3 y
1  1  0 
− 2 − 0.5 1  x3
Dane są trzy wektory wejściowe x1 = 15 
. 
x2 =   x3 =  
− 2  − 1 w4
     
0  − 15
.  . 
15 x4
1 
− 1
Wektor wag w = 
1
0 
 
 0.5

Krok 2. 1  Krok 3. 0 
   
  − 0.5   1 
Pobudzenie neuronu net = w x 2 = 2 − 3 15
2 2
. 0.5 = −0.25 net 3 = w 3x 3 = 1 − 2.5 3.5 2  = −3
  − 2    − 1
   
− 15
.  15
. 

2  1  1  1  0  1 
− 3 − 0.5 − 2.5 − 2.5 1  − 35.
Nowe wagi w = w + sgn(net )x2 = w − x2 =   − 
3 2 2 2 =   w = w + sgn( net )x 3 = w − x 3 = 
4 3 3 3 −  =  
15
.  − 2  35
.  3.5  − 1  4.5 
           
0.5  − 15
.  2  2  15 .  0.5 
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)

Zbiór uczący:
-wejścia X (m x n)
-wyjścia Y (1 x n)
Odpowiedź Zbiór
sieci uczący

Losowo zainicjuj w oraz b


Algorytm
największego
Dopóty rekursywnie estymuj w oraz b spadku

(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 SZTUCZNYCH
Sieć perceptronowa

Zasada nauki sieci neuronowej : Wektor wag w = [ w w ... w ] (i=1...n), połączony z danym
i i1 i2 in
t

neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r

sygnał uczący r = r ( w i , x , di ) x1 wi1


x2 wi2 i-ty neuron

zmiana wag ∆w i ( t ) = crx( t )


yi
c>0, c - stała uczenia
...

wagi w chwili t+1 w i (t + 1) = w t +1 = w i (t ) + crx( t ) win


xn
wi
generator
r sygnału di
x
uczącego
Reguła perceptronowa. c
Uczenie nadzorowane.
r = di − yi
yi = sgn( w it x)
∆w i (t ) = c[d i − yi ]x(t )
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – uczenie pojedynczego neuronu

Funkcja kosztów

Parametr poszukiwany
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 w = [ w w ... w ] (i=1...n), połączony z danym
i i1 i2 in
t

neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r

sygnał uczący r = r ( w i , x , di ) x1 wi1


x2 wi2 i-ty neuron

zmiana wag ∆w i ( t ) = crx( t )


yi
c>0, c - stała uczenia
...

wagi w chwili t+1 w i (t + 1) = w t +1 = w i (t ) + crx( t ) win


xn
wi
generator
r sygnału di
x
uczącego
Reguła delta. c
Uczenie nadzorowane.

[
r = δ = d i − yi yi' ]
δw i (t ) = c[d i − yi ] f i ( net i )x(t )
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - przykład
Kontynuować naukę sieci neuronowej z rysunku
x1 w1
Założenia :
funkcja aktywacji : ciągła bipolarna x2 w2
1  0  − 1
c=0.1 , λ=1 − 2  15
.  1  w3 y
Dane są trzy wektory wejściowe x 1 =   x2 =   x3 =   x3
0  − 0.5 0.5
1       
− 1 − 1  − 1  − 1 w4
Wektor wag w = 
1
x4
0 
 
0.5
1
Pożądane odpowiedzi na kolejne obrazy
Pochodna funkcji aktywacji y f ( net ) = (1 − y 2 )
'
xi (sygnał nauczyciela) : -1, -1, 1
2
Krok 1. Krok 2.

Pobudzenie neuronu net 1 = w 1 x 1 = 2.5 net 2 = w 2 x 2 = −1948


.

y 1 = f ( net 1 ) = 0.848 y 2 = f (net 2 ) = −0.75


Wartość wyjściowa z neuronu :

(
Wartość pochodnej funkcji aktywacji : f ' ( net 1 ) = 1 1 − ( y 1 ) 2 = 014
2
. ) f ' ( net 1 ) =
1
2
( )
1 − ( y 2 ) = 0.218
2

t
 
Nowe wagi w = w + c(d 1 − y ) f (net )x 1 = 0.974 − 0.948 0 0.526
2 1 1 ' 1

 
t
 
w = w + c( d 2 − y ) f ( net ) x 2 = 0.974 − 0.956 0.002 0.531
3 2 2 ' 2

 
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - przykład
Kontynuować naukę sieci neuronowej z rysunku
x1 w1
Założenia :
funkcja aktywacji : ciągła bipolarna x2 w2
1  0  − 1
c=0.1 , λ=1 − 2  15
.  1  w3 y
Dane są trzy wektory wejściowe x 1 =   x2 =   x3 =   x3
0  − 0.5 0.5
1       
− 1 − 1  − 1  − 1 w4
Wektor wag w = 
1
x4
0 
 
0.5
1
Pożądane odpowiedzi na kolejne obrazy
Pochodna funkcji aktywacji y f ( net ) = (1 − y 2 )
'
xi (sygnał nauczyciela) : -1, -1, 1
2
Krok 2. Krok 3.

Pobudzenie neuronu net 2 = w 2 x 2 = −1948


. net 3 = w 3x 3 = −2.46
y 2 = f (net 2 ) = −0.75 y 3 = f ( net 3 ) = −0.842
Wartość wyjściowa z neuronu :
1
(
Wartość pochodnej funkcji aktywacji : f ( net ) = 2 1 − ( y ) = 0.218
' 1 2 2
) f ' ( net 1 ) =
1
2
( )
1 − ( y 3 ) = 0.145
2

t
 
Nowe wagi w = w + c( d 2 − y ) f ( net ) x 2 = 0.974 − 0.956 0.002 0.531
3 2 2 ' 2

 
t
 
w = w + c( d 2 − y ) f ( net ) x 2 = 0.974 − 0.929 0.016 0.505
4 3 2 ' 2

 
Metoda identyfikacji dowolnych obiektów
(liniowych lub nieliniowych)
za pomocą sztucznej sieci neuronowej
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja

czas
Sygnał pozwala na identyfikację obiektu liniowego
przez sieć neuronową
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
Obiekt i jego odpowiedź skokowa

Sygnał identyfikacyjny

Obiekt Rejestracja

Sygnał identyfikacyjny „nie czeka” na stan ustalony obiektu


UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
Zapis wyników eksperymentu do przestrzeni roboczej matlaba

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 SZTUCZNYCH
Sieć 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).
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
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 Struktura sieci 7:5:1
net = newff([ -1 1
-1 1
-1 1 Wejścia
(7 wierszy)
-1 1
-1 1
-1 1
-1 1],
[5 1],
{'tansig' 'purelin'}); %OWA SIEĆ: zakres, liczba neuronów, funkcje aktywacji
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
net = train(net,P,T); auka sieci
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
» Y = sim(net,P);
Dane wyjściowe uczące są zapisane w wektorze y
» plot(tout,y,tout,Y,'o') Dane z symulacji sieci w zmiennej Y
ależy je narysować w funkcji czasu tout
» grid on

Jak widać sieć nauczyła się


dynamicznej odpowiedzi obiektu
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
Test sieci sygnałami nie używanymi w trakcie uczenia
Sygnał skokowy » P=[delaysig(x',0,5);y'];
» Y = sim(net,P);
» plot(tout,y,tout,Y,'o')
» grid on

Zielony – sieć
iebieski - obiekt

Inne testy dowodzą, że sieć musi być


jeszcze uczona na podstawie stanu
ustalonego odpowiedzi obiektu i z
mniejszym błędem mse.
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna - identyfikacja
W pokazanym przykładzie jedna rzecz jest podejrzana. Która?
P=[delaysig(x',0,5);y'];

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


Kolejny przykład pokazuje jak zidentyfikować
obiekt za pomocą sztucznej sieci neuronowej, aby
przewidywać przyszłe sygnały z obiektu.
UCZENIE NEURONÓW SZTUCZNYCH
Sieć 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.

+2
2

1 +1

0 -1 +1 -2 +2

0 5 10 15 20 25 30 35 40 45 czas, sekundy
-1
-1

-2 -2
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 2
Struktura sieci : 11:5:1
10 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 SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 2
Sygnał testowy i odpowiedź obiektu
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 2
auka i jej wynik

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
Polecenie P = [delaysig(x',0,9); delaysig(y',1,1)]; układa dane
net.trainParam.epochs = 50; dla 11 neuronów w wierszach
net = train(net,P,T); Y = sim(net,P);plot(tout,T,tout,Y,'o') [analogia do ładowania rewolweru (sieci) nabojami (próbkami
uczącymi) ]
UCZENIE NEURONÓW SZTUCZNYCH
Sieć 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 SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 3
Kolejny przykład pokazuje jeszcze ciekawszą własność: zbiór uczący może składać się z losowego pobudzenia
obiektu 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)
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 3
I testujemy sieć nie widzianym przez nią sygnałem.
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 3
P = [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)

WIOSEK

Zwiększenie zakłóceń do
pełnej dziedziny (-2,2)
powinno umożliwić dobrą
identyfikację
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 4

A może by tak ...

przewidzieć następną wartość

indeksu giełdowego ?
UCZENIE NEURONÓW SZTUCZNYCH
Sieć 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)
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 4
y=[1000.00
1) Wprowadzamy dane o indeksie do wektora y
967.70 (tutaj WIG od początku 16 IV 1991 do roku
945.60 2000, dane o kursie zamknięcia
ze strony www.bossa.pl)
939.60
...
18370.00
18276.30
18083.60
];
y=y/25000; 2) Skalujemy dane, bo inaczej sieć będzie miała
trudności z nauką
P=[delaysig(y',1,10)];
3) Obserwuj 9 kolejnych sesji (wektor P)
T=delaysig(y',0,0); 4) Podaj wartość indeksu dla 10-tej (wektor T)
net=newff(minmax(P),[4 1],{'tansig' 'purelin'}); 5) Struktura sieci 9:4:1
net=train(net,P,T);
Y=sim(net,P);
tout=1:1723 6) Sztuczny czas : ilość linii danych
plot(tout,y',tout,Y,'o'); 7) Pokaż wynik, ‘o’ – predykcja sieci
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 4
Przebieg nauki
UCZENIE NEURONÓW SZTUCZNYCH
Sieć 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 SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 4
Próba przewidywania kilku sesji do przodu (nauka: 1992-kwiecień 2007, test
7 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 SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 5

Rezultat losowego
pobudzenia obiektu
sygnałami x1 i x2
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 5
P = [delaysig(x1',0,9);delaysig(x2',0,9); delaysig(y',1,1)]; Wejścia: 10 wejść x1: x1(t),...,x1(t-9)
T=y'; 10 wejść x2: x2(t),...,x2(t-9)
1 wejście y : y(t-1)
net = newff(minmax(P),[5 1],{'tansig' 'purelin'});
net.trainParam.epochs = 50; Wyjście: y(t)
net = train(net,P,T);
Y = sim(net,P);
Struktura sieci 21:5:1
plot(tout,T,tout,Y,'o')
UCZENIE NEURONÓW SZTUCZNYCH
Sieć sigmoidalna – identyfikacja 5
Wynik nauki Wynik testu
‘o’ sieć ‘o’ sieć
‘-’ sygnał ‘-’ sygnał
[zmieniono ziarno (seed) w obu
sygnałach x1 oraz x2 na [23351]]
Model odwrotny obiektu
Model odwrotny obiektu
w układzie regulacji
Sieci neuronowe w matlabie 5.3
Regulator neuronowy
REGULATOR NEURONOWY
Regulator optymalizujący
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)

Generowanie danych uczących x, y P=[delaysig(x',0,5);delaysig(y',1,1)];


T=y';
net = newff(minmax(P),[5 1],{'tansig' 'purelin'});
net = train(net,P,T); auka
Y = sim(net,P); sieci
plot(tout,y,tout,Y,'o')
Generowanie danych testowych xt, yt grid on

Interpretacja zbioru uczącego:


Mając zadany przyszły sygnał wejściowy x(t) wyznaczyć
przyszły sygnał y(t)
REGULATOR NEURONOWY
Regulator optymalizujący - nauka
P=[delaysig(x',0,5);delaysig(y',1,1)];
T=y';
net = newff(minmax(P),[5 1],{'tansig' 'purelin'}); auka
net = train(net,P,T); sieci
Y = sim(net,P);
plot(tout,y,tout,Y,'o')
grid on

Wynik nauki
‘o’ sieć
‘-’ sygnał
REGULATOR NEURONOWY
Regulator optymalizujący - test

%test
Pt=[delaysig(xt',0,5);delaysig(yt',1,1)];
Yt = sim(net,Pt); Test sieci sygnałem losowym
plot(tout,yt,tout,Yt,'o')
grid on;
REGULATOR NEURONOWY
Regulator 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 w = [ w w ... w ] (i=1...n), połączony z danym
i i1 i2 in
t

neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r

sygnał uczący r = r ( w i , x , di ) x1 wi1


x2 wi2 i-ty neuron

zmiana wag ∆w i ( t ) = crx( t )


yi
c>0, c - stała uczenia
...

wagi w chwili t+1 w i (t + 1) = w t +1 = w i (t ) + crx( t ) win


xn
wi
generator
r sygnału di
x
uczącego
Reguła Widrowa-Hoffa. c
Uczenie nadzorowane.
r = di − yi
yi = w it x
[ ]
∆w i ( t ) = c di − y i x( t )
UCZENIE NEURONÓW SZTUCZNYCH

Zasada nauki sieci neuronowej : Wektor wag w = [ w w ... w ] (i=1...n), połączony z danym
i i1 i2 in
t

neuronem, rośnie proporcjonalnie do iloczynu sygnałów wejściowego x i uczącego r

sygnał uczący r = r ( w i , x , di ) x1 wi1


x2 wi2 i-ty neuron

zmiana wag ∆w i ( t ) = crx( t )


yi
c>0, c - stała uczenia
...

wagi w chwili t+1 w i (t + 1) = w t +1 = w i (t ) + crx( t ) win


xn
wi
generator
r sygnału di
x
uczącego
Reguła korelacyjna c

r = di
∆w i (t ) = cd i x( t )
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 Klasa x
Znaczenie
konkurencji 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
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

Dwóch najbliższych
sąsiadów tworzy związek liniowy
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

Klasyfikacja prawidłowa
nieprawidłowa

Typ 2
-Inhibicja : x należy do klasy mj, lecz jest bliżej mi
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ść


opóźnienie

Pojedyncza sieć może posiadać wiele stanów


stabilnych
-sklasyfikowane wyjścia z sieci
-rozpoznawanie zaszumionych danych
SIECI REKURENCYJNE
Sieć Hopfielda
Bipolarne (-1,1) Wejście do Wyjście z
wejścia i wyjścia zidentyfikowania sieci

-uczenie nadzorowane z
podaniem idealnego wzorca

-identyfikowany jest
wzorzec zaszumiony
opóźnienie
-działanie sieci
Identyfikacja
ideal+
szum

- Iteracje aż do osiągnięcia
zbieżności
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

You might also like