• Nie Znaleziono Wyników

Sztuczne sieci neuronowe

N/A
N/A
Protected

Academic year: 2021

Share "Sztuczne sieci neuronowe"

Copied!
48
0
0

Pełen tekst

(1)

Sztuczne sieci neuronowe

model konekcjonistyczny

2

Plan wykładu

• Geneza modelu konekcjonistycznego

• Główne cechy

• Model sztucznego neuronu

• Architektury sieci neuronowych

• Proces uczenia się sieci

• Uczenie pojedynczego neuronu

• Właściwości pojedynczego neuronu

(2)

Ludzki mózg

• 100 000 000 000 komórek

• 3 200 000 km połączeń

• 100 000 000 000 000 (1014) połączeń

• ~1,5 kg wagi

• ~1,5 l objętości

• ~20 W poboru energii

4

Ludzki mózg a komputer

1014 105

Liczba aktywacji/s

1014bit/s 109bit/s

Czas transmisji

10-3s 10-8s

Czas operacji

1014połączeń 1012bitów dysk

1011neuronów 109bitów RAM

Pamięć

105-1011neuronów 1 - 4 CPU

Jednostki obliczeniowe

Mózg Komputer

(3)

Główne cechy modeli konekcjonistycznych

• DuŜa liczba prostych jednostek przetwarzania (neuronów)

• Subsymboliczna reprezentacja wiedzy -

„kodowanie” wiedzy za pomocą wag na połączeniach

• Przetwarzanie równoległe i rozproszone

• Kluczowe znaczenie ma sieć połączeń, jej gęstość i stopień komplikacji a nie budowa neuronu

• Najistotniejszy problem to automatyzacja procesu uczenia się sieci

6

Budowa neuronu

• ZłoŜone działanie błony komórki nerwowej - model błony synaptycznej

(Hodgkin-Huxley, Nagroda Nobla 1963)

• Jądro - centrum

obliczeniowe neuronu, gdzie zachodzą procesy kluczowe dla jego

funkcjonowania

wejście

wyjście

(4)

Sztuczny neuron

e w1

w2 w3 . . . wk x1

x2 x3 . . . xk

f() y

wejścia wagi pobudzenie f. aktywacji wyjście

8

Sztuczny neuron - budowa

• wejścia - reprezentują sygnały zewnętrzne, które wpływają do neuronu (wymuszenia) xi

• wagi wi - determinują względną waŜność poszczególnych wejść

• pobudzenie (łączne) e - wypadkowa wartość skalarna odzwierciedlająca aktywność neuronu; zaleŜne od funkcji act(), która określa sposób obliczania pobudzenia na podstawie wejść oraz wag

• wyjście y - wartość sygnału wyjściowego neuronu

• funkcja aktywacji f - determinuje stan wyjścia na podstawie pobudzenia; określa charakterystykę neuronu

(5)

Sztuczny neuron

Podstawowe zaleŜności opisujące sztuczny neuron:

e = act(x1,...,xk,w1,...,wk) y = f(e)

e w1

w2 w3 . . . wk x1

x2 x3 . . . xk

f() y

10

Prosty perceptron

ZaleŜności dla prostego perceptronu:

e w1

w2 w3 . . . wk x1

x2 x3 . . . xk

f() y

=

=

= k

i i ix w act

e

1

) , ( wx



<

= ≥

=

θ

θ

e gdy

e e gdy

f

y 0

) 1 ( ) , ( wx

(6)

Prosty perceptron:

próg aktywacji θ jako waga

ZaleŜności dla prostego perceptronu:

e w0

w1 w2 w3 . . . wk x0≡-1

x1 x2 x3 . . . xk`

f() y

=

=

= k

i i ix w act

e

0

) , ( wx



<

= ≥

0 0

0 ) 1

,

( gdy e

e y x w gdy

13

Funkcje aktywacji neuronu

) exp(

1 ) 1

( e e

f = + − β

Sigmoidalna

Tangens hiperboliczny

) tanh(

)

( e e

f = β

Progowa (skokowa Heaviside’a)

 

<

= ≥

0 0

0 ) 1

( gdy e

e e gdy

f

(7)

Wpływ parametru β

Funkcja sigmoidalna

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1

-10 -8 -6 -4 -2 0 2 4 6 8 10

0,5 1,0 2,0

• Im większa wartość β, tym większa stromość funkcji aktywacji

• W granicy β→ ∞ funkcja zbliŜa się do skoku jednostkowego

• Przeciwdziedzina mieści się w przedziale [0; 1]

- funkcja jest jednobiegunowa (unipolarna)

) exp(

1 ) 1

(e e

f = + β

15

Wpływ parametru β

Tangens hiperboliczny

-1 -0,8 -0,6 -0,4 -0,2 0 0,2 0,4 0,6 0,8 1

-10 -8 -6 -4 -2 0 2 4 6 8 10

0,5 1,0 2,0

• Im większa wartość β, tym większa stromość funkcji aktywacji

• W granicy β→ ∞ funkcja zbliŜa się do skoku jednostkowego

• Przeciwdziedzina mieści się w przedziale [-1; 1]

- funkcja jest dwubiegunowa (bipolarna)

) tanh(

)

(e e

f = β

(8)

Architektura sztucznych sieci neuronowych

Sztuczną sieć neuronową uzyskujemy łącząc ze sobą w warstwy wiele neuronów

e

x1 x2 x3 . . . xk

f()

e f()

e f()

e f() y1

e f() y2

Sieć bez sprzęŜeń (ang. feedforwarded)

Sieć ze sprzęŜeniami zwrotnymi (ang. feedback)

e

x1

f()

e f()

e f()

x2

x3

17

Sieci bez sprzęŜeń

• Połączenia miedzy neuronami nie mogą tworzyć cykli

• Sygnał podany na wejście propaguje się przez sieć w skończonym czasie

• Kolejność kroków ustalających wartość pobudzenia oraz stany wyjść neuronów zaleŜy od topologii sieci

• MoŜna uznać je za układy pozbawione pamięci

• Sygnał propagowany jest w jednym kierunku i stąd ich druga nazwa - jednokierunkowe

• Mogę być ułoŜone w jedną lub więcej warstw

(9)

Sieci ze sprzęŜeniami

• Pomiędzy neuronami musi pojawić się co najmniej jedno sprzęŜenie zwrotne (sygnał z wyjścia powraca na wejście)

• W skrajnym przypadku sygnał podany na wejście moŜe propagować się przez sieć w nieskończonym czasie i nigdy nie osiągnąć stanu stabilnego

• Charakteryzuje je skomplikowana dynamika, wymagająca złoŜonej aparatury pojęciowej (teoria chaosu, teoria złoŜoności)

• Zachowują się jak układy z pamięcią

Sieć jednowarstwowa z

20

wieloma wyjściami

Sztuczną sieć neuronową jest implementacją złoŜonej funkcji wielu zmiennych. Najczęściej jest to

równoczesna realizacja tylu funkcji ile wyjść posiada cała sieć.

e

x1 x2 x3 . . .

xk

f()

e f()

e f()

wij

y1

y2

y3

macierz wag

(10)

Uczenie sieci neuronowych

• Proces uczenia polega na modyfikowaniu wag sieci

• Najczęściej realizowane jest uczenie się z przykładów

• Uczenie nadzorowane - przykłady opisane są zarówno atrybutami warunkowymi, jak i decyzyjnymi

• Uczenie nienadzorowane - dane opisane są tylko atrybutami warunkowymi

• Cel uczenia - rozwiązanie pewnego problemu klasyfikacji (decyzje nominalne), problemu regresji (decyzje numeryczne) lub problemu grupowania

Uczenie sieci

22

neuronowych

) , ( min

arg E D

opt W

W

W

=

Algorytmy uczenia sieci modyfikują wagi neuronów bez zmiany architektury sieci, która musi być zaprojektowana wcześniej. Proces uczenia na zbiorze przykładów D moŜna sprowadzić do problemu optymalizacji

(minimalizacji) w ciągłej przestrzeni wag pewnej funkcji błędu E:

gdzie: W - macierz wag sieci

Wopt- macierz optymalnych wartości wag sieci, odpowiadająca sieci o najmniejszym moŜliwym błędzie jaki moŜna osiągnąć dla zbioru danych D

(11)

Uczenie nadzorowane sieci neuronowych

( ) ( )

[ ]

∑ ∑

=



 

 −

=

D x

k

i

i i

MSE y z

k E D

1

1 2

1 x x

W uczeniu nadzorowanym funkcja błędu E jest pewną miarą rozbieŜności między rzeczywistymi stanami wyjść sieci a wartościami podanymi jako decyzje w zbiorze danych D. Najczęściej stosowaną miarą jest błąd średniokwadratowy:

gdzie: k - liczba wyjść sieci, x - przykład ze zbioru D (wektor atrybutów warunkowych), yi(x) - wartość i-tego wyjścia sieci dla przykładu x, zi(x) - wartość „poŜądana”

dla przykładu x na wyjściu i (atrybut decyzyjny).

Uczenie pojedynczego

24

prostego perceptronu

n j

F

zj j

j, = (x ) , =1K

x

Celem uczenia nadzorowanego jest realizacja pewnego odwzorowania:

z = F(x)

gdzie: x jest wektorem atrybutów (zmiennych)

niezaleŜnych, z jest poŜądanym wyjściem neuronu, a odwzorowanie F jest nieznane i zadane jedynie w postaci zbioru n przykładów (zbiór D) postaci:

(12)

Uczenie pojedynczego prostego perceptronu

2

1 1

2 ( )

2 , 1

) 2 (

1 n j j

j j n

j

j

j y E E

z

E=

=

= δ

=

=

Agregacja wszystkich błędów popełnionych przez neuron dla poszczególnych przykładów do błędu

średniokwadratowego neuronu przebiega następująco:

Błąd generowany przez neuron po podaniu j-tego przykładu na wejścia jest wyraŜany róŜnicą:

δj= zj- yj

Minimalizacja tego błędu następuje najczęściej z zastosowaniem heurystycznego algorytmu największego spadku gradientu.

Uczenie pojedynczego

26

prostego perceptronu

i j j

i w

w E

=

η

W pojedynczym kroku uczenia wyznaczana jest wartość o jaką zmieniona ma zostać określona waga sieci zwana poprawką wagi. Modyfikacja i-tej wagi na podstawie błędu Ejpopełnianego przezeń podczas propagacji sygnału dla j-tego przykładu odbywa się wg zaleŜności:

gdzie:ηjest wielkością, która kontroluje wpływ gradientu na stosowaną poprawkę i określana jest mianem

współczynnika prędkości uczenia

(13)

Algorytm największego spadku gradientu

Interpretacja graficzna na płaszczyźnie heurystyki największego spadku gradientu:

E

wi

∆wi

j

wi w'ij

Uczenie pojedynczego

28

prostego perceptronu

i j j j

i j

w y y E w E

=

Funkcja błędu jako funkcja złoŜona wymaga dalszych zabiegów:

Z definicji pojedynczego błędu E joraz δj= zj- yj mamy:

j j j j j

y y z

E = =δ

( )

A liniowy charakter funkcji yj dla perceptronu prowadzi do:

j i i j

w x

y =

(14)

Reguła delta

j i j j

i x

w =ηδ

Ostatecznie heurystyka spadku gradientu nakazuje minimalizację błędu zgodnie z formułą:

PowyŜsza formuła określana jest mianem reguły delta albo regułą ADELINE - poprawka i-tej wagi jest wprost proporcjonalna do błędu popełnionego przez neuron oraz do wielkości sygnału wpływającego i-tym wejściem do neuronu.

Pełny krok uczenia wymaga wyznaczenia i zastosowania poprawki na wszystkich wagach danego neuronu

(równieŜ w0)

Algorytm uczenia

30

perceptronu

1. Ustawiamy wartość współ. prędkości uczenia η 2. Wybieramy losowo wagi początkowe perceptronu 3. Na wejścia podajemy wektor uczący xj

4. Obliczamy wartość wyjściową perceptronu zgodnie ze wzorem:

5. Porównujemy wartość wyjściową z poŜądaną zj 6. Modyfikujemy wagi zgodnie z zaleŜnością:

7. Jeśli nie koniec epoki uczenia, wracamy do kroku 3 8. Jeśli błąd całej epoki jest większy od załoŜonego,

wracamy do kroku 3

=

= k

i

j i j i

j w x

y

0

j j j j

i j j i j

i w x z y

w′ = +

ηδ

gdzie

δ

= −

(15)

Reguła delta - podsumowanie

Cechy algorytmu uczenia opartego na regule delta:

• Stosowana metoda spadku gradientu jest heurystyką i nie gwarantuje znalezienia optymalnej konfiguracji wag sieci (lokalne minima!)

• Współczynnik prędkości uczenia ηma znaczący wpływ na przebieg procesu uczenia

• Losowe wartości początkowe wag równieŜ wpływają na przebieg procesu uczenia

• Poprawki ∆wiobliczane są dla kaŜdej wagi niezaleŜnie

• Uczenie się przebiega w wielu krokach i wymaga wielokrotnego propagowania przez sieć danych z poszczególnych przykładów

Własności prostego

32

perceptronu - klasyfikacja

Interpretacja graficzna prostego perceptronu o dwóch wejściach:

x1 x2

y>0

y<0

2 0

w

w

1 0

w

w

y = w0+ w1x1 + w2x2= 0

0

W problemie binarnej klasyfikacji pojedynczy neuron implementuje granicę między klasami decyzyjnymi w postaci (hiper)płaszczyzny opisanej równaniem:

0

0

=

= n

i i ix w

(16)

Proces uczenia się klasyfikacji

W trakcie uczenia się prosty perceptron „manewruje”

płaszczyzną w celu oddzielenia od siebie przykładów z róŜnych klas

x1 x2

0

j=10 j=100

j=300 j=647

Podstawy teoretyczne

34

sieci neuronowych

Twierdzenie Rosenblatta:

Proces uczenia perceptronu jest zbieŜny.

Perceptron moŜe nauczyć się dowolnego

liniowo separowalnego problemu klasyfikacji

(17)

Problemy klasyfikacji

Praktyczne problemy uczenia mogą mieć róŜną charakterystykę:

x1 x2

0

Problem liniowo separowalny

x1 x2

0

Problem liniowo nieseparowalny

Pojedynczy neuron moŜe oddzielić od siebie tylko takie klasy decyzyjne, między którymi moŜliwe jest

poprowadzenie granicy w postaci (hiper)płaszczyzny

36

Znaczenie biasu

Bias - waga w0przypisana progowi aktywacji θ

x1

x2 y = w0+ w1x1 + w2x2= 0 x2= -(w1/w2)x1- (w0/w2)

y = a*x +b

a = -(w1 /w2) b=-(w0 /w2)

2 0

w b=w

2 1

w tgα=w

α

Istnienie biasu jest konieczne, jeśli moŜliwy ma być podział dwóch całkowicie dowolnych klas liniowo separowalnych

dla w0=0 zawsze b=0

(18)

Uczenie pojedynczego neuronu nieliniowego

i j j

j

i j

i j j

i w

y y E w E w

w E

=

= ,

η

Proces uczenia neuronu nieliniowego równieŜ opiera się na regule spadku gradientu:

ale pochodna wyjścia po wadze zmienia swą postać z powodu nieliniowego charakteru funkcji aktywacji:

i j

i j

w e e y w y

=

Wiemy, Ŝe z definicji błędu E oraz pobudzenia e mamy:

j i i

we =x

Reszta zaleŜy od wybranej funkcji aktywacji y=f (e)

j j j

y E =δ

Uczenie pojedynczego

38

neuronu nieliniowego

) 1 (

)) exp(

1 (

1 ))

exp(

1 (

) exp(

* 1 )) exp(

1 (

1

)) exp(

1 (

)

* exp(

)) exp(

1 (

1 ))

exp(

1 (

) exp(

) 1 (

* ) exp(

* )) exp(

1 )(

1 (

)) exp(

1 ) ( exp(

1 ) 1 (

2 2

1

j j j j

y e y

y

e e

e e

e e e

e e

e e e

y

e e e

f y

=





+

+

+

= +

+

= +

+

=

+

=

+

=

= +

=

Pochodna funkcji sigmoidalnej względem pobudzenia:

(19)

Uczenie pojedynczego neuronu nieliniowego

) 1 (

j ij j j

j j i j j

i x y y

e x y

w = −

=ηδ ∂ ηδ

Ostatecznie reguła spadku gradientu nakazuje poprawkę wagi neuronu nieliniowego (sigmoidalnego) zgodnie z formułą:

Reguła delta neuronu nieliniowego róŜni się członem y(1-y), wynikającym z wprowadzonej nieliniowości, który zwiększa poprawki tym mocniej im bliŜej przykład

znajduje się płaszczyzny decyzyjnej realizowanej przez neuron

40

Problem XOR

Funkcji XOR nie moŜe zostać odwzorowana za pomocą pojedynczego liniowego neuronu, gdyŜ potrzebna jest więcej niŜ jedna płaszczyzna decyzyjna by oddzielić od siebie dwie klasy wynikowe

x1 x2

0,0

x1 x2 XOR(x1,x2)

0 0 0

0 1 1

1 0 1

1 1 0

1,1

(20)

Układy logiczne a sieci neuronowe

Implementacja podstawowych funkcji logicznych za pomocą neuronów prostych z funkcją skokową aktywacji:

x1 x2 AND OR x1 NOT

0 0 0 0 0 1

0 1 0 1 1 0

1 0 0 1

1 1 1 1

„AND” _

-1 x1 x2

w1=1 w2=1

w0=1.5

y

-1 x1 x2

w1=1 w2=1

w0=0.5

y -1

x1w1=-1 w0=-0.49

y

y = x1 + x2 - 1.5

y = x1 + x2 - 0.5

y = -x1 + 0.5

„OR” _

„NOT” _

Sieć wielowarstwowa dla

42

funkcji XOR

Problem odwzorowania funkcji XOR moŜna rozwiązać jedynie stosując więcej niŜ jedną warstwę sieci:

x1 x2 y1 y2 XOR

0 0 0 0 0

0 1 0 1 1

1 0 1 0 1

1 1 0 0 0

„AND NOT”

-1 x1

x2 w1=1 w2=-1

w0=0.5

y1

„OR”

-1

w5=1 w6=1

w0=0.5

y

y2= -x1 + x2 - 0.5 y1= x1 - x2 - 0.5

„AND NOT”

-1 w3=-1

w4=1 w0=0.5

y2

y = x1XOR x2= ((x1AND NOT x2) OR (x2AND NOT x1))

y = y1 + y2 - 0.5

(21)

Problem XOR:

rozwiązanie

Odwzorowanie funkcji XOR jest połączeniem prostych odwzorowań z warstwy pierwszej w bardziej złoŜone odwzorowanie zrealizowane dzięki warstwie drugiej

0,0

1,1 0,1

1,0

x2AND NOT x1

x1AND NOT x2

y1= x1 - x2 - 0.5 y2= -x1 + x2 - 0.5

x2

x1

44

Sieć wielowarstwowa

x1 x2 x3 . . . xk

warstwa wejściowa

warstwy ukryte

warstwa wyjściowa

W ramach jednej warstwy neurony nie komunikują się ze sobą. Pomiędzy warstwami obowiązuje zasada

„kaŜdy z kaŜdym”.

(22)

Uczenie sieci

wielowarstwowej

j j j j

j i j j

i z y

e x y

w = −

=ηδ ∂ δ

Zastosowanie reguły delta:

wobec neuronów warstwy, która nie jest wyjściowa (ukrytej) wymaga następującej zmiany sposobu obliczania błędu przy prezentacji j-tego przykładu:

+

=

+

= 1 + 1

) 1 , ( ) 1 , ( )

, (

Nl

p

j l p j

l p k j

l

k w δ

δ

gdzie indeksy (k,l) dotyczą k-tego neuronu w warstwie l-tej, zaś Nl+1to liczba neuronów w l+1-tej warstwie sieci

Uczenie sieci

46

wielowarstwowej

Reguła wyznaczania błędu neuronu w sieci wielowarstwowej:

+

=

+

= 1 + 1

) 1 , ( ) 1 , ( )

, (

Nl

p

j l p j

l p k j

l

k w δ

δ Interpretacja:

Błąd neuronu w warstwie l-tej jest równy sumie błędów popełnionych przez neurony z warstwy

l+1-tej, waŜonych wagami jakie łączą dany neuron z neuronami warstwy l+1-tej.

(23)

Uczenie sieci

wielowarstwowej

Ilustracja graficzna reguły wyznaczania błędu :

+

=

+

= 1 + 1

) 1 , ( ) 1 , ( )

, (

Nl

p

j l p j

l p k j

l

k w δ

δ

warstwa l

j l 1) , 1 ( + j δ

w1(1,l+1)

j l 1) , 2

( +

δ

j l 1) , 3

( +

δ

j l ) , 1

δ( j

l ) , 2

δ( j

l ) , 3

δ(

warstwa l+1

j

w1(2,l+1)

Algorytm wstecznej

48

propagacji błędu

procedure backpropagation(zbiór przykładów D) begin

inicjalizacja wag sieci małymi wartościami losowymi;

repeat

for each x∈D

propagacja x przez sieć aŜ do wyjścia;

porównanie wektora wyjść y z poŜądanym wynikiem z oraz wyznaczenie błędów δ ;

wsteczna propagacja błędu przez warstwy ukryte tj. do warstwy ostatniej, przedostatniej itd.;

modyfikacja wag kaŜdego neuronu sieci stosowanie do popełnionego błędu;

endfor

Wyznaczenie błędu średniokwadratowego E po wszystkich przykładach

until E < Estopor inny_war_stopu

(24)

Uczenie sieci

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

warstwa wejściowa

warstwa ukryta

warstwa wyjściowa -1

-1

j p

wi( ,3)

z1 z2 zN3

Uczenie sieci

50

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości) Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:

2

0 ) 2 , (

1 , exp

1

1 p N

x w

h k

i

j i j

p i j

p = K

+

=

=

z1 z2 zN3

(25)

Uczenie sieci

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości) Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:

2

0 ) 2 , (

1 , exp

1

1 p N

x w

h k

i

j i j

p i j

p = K

+

=

=

Obliczamy wartości w warstwie wyjściowej:

3

0 ) 3 , (

1 , exp

1

1

2

N p

h w

y N

i

j i j

p i j

p = K





+

=

=

z1 z2 zN3

Uczenie sieci

52

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości) Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:hpj

Obliczamy wartości w warstwie wyjściowej: ypj

Obliczamy błąd w warstwie wyjściowej:

3 )

3 ,

(jp =zpjypj, p=1KN δ

z1 z2 zN3

(26)

Uczenie sieci

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości) Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:hpj

Obliczamy wartości w warstwie wyjściowej: ypj

Obliczamy błąd w warstwie wyjściowej:

3 )

3 ,

(jp =zpjypj, p=1KN δ

Obliczamy błąd w warstwie ukrytej:

2 1

) 3 , ( ) 3 , ( )

2 ,

( , 1

3

N i

w

N

p

j p j

p i j

i =

= K

=

δ δ

z1 z2 zN3

Uczenie sieci

54

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości) Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:hpj

Obliczamy wartości w warstwie wyjściowej: ypj

Obliczamy błąd w warstwie wyjściowej: δ(jp ),3

Obliczamy błąd w warstwie ukrytej:δ(ij,2) Korekta wag dla warstwy wyjściowej:

) 1 (

wij(p,3) =ηδ(jp,3)hijypj ypj

(27)

Uczenie sieci

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości)

j

hp

Obliczamy wartości w warstwie wyjściowej: ypj

Obliczamy błąd w warstwie wyjściowej: δ(jp ),3

Obliczamy błąd w warstwie ukrytej:δ(ji,2) Korekta wag dla warstwy wyjściowej:

j p

wi( ,3)

Korekta wag dla warstwy ukrytej:

) 1 (

wij(p,2)=ηδ(ji,2)xijhpj hpj

Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:

Uczenie sieci

56

wielowarstwowej

j p

wi( ,2)

hN2 h2

h1

yN3 y2

y1

x1 x2 xk

...

...

-1

-1

j p

wi( ,3)

Dany jest zbiór D przykładów: 〈xj,zj Losujemy wagi (małe wartości)

j

hp

Obliczamy wartości w warstwie wyjściowej: ypj

Obliczamy błąd w warstwie wyjściowej: δ(jp ),3

Obliczamy błąd w warstwie ukrytej:δ(ji,2) Korekta wag dla warstwy wyjściowej:

j p

wi( ,3)

Korekta wag dla warstwy ukrytej:wij(p,2) Wybieramy kolejną parę j ze zbioru D Obliczamy wartości w warstwie ukrytej:

Koniec epoki

(28)

Cechy algorytmu wstecznej propagacji błędu

• Błędnie dobrane wartości początkowe wag mogą utrudniać bądź uniemoŜliwiać zbieŜność algorytmu

• Modyfikacja wag zawsze poprzedzona jest propagacją błędu do warstwy poprzedniej

• Błąd popełniany przez neuron nie ma wpływu na jego sąsiadów z tej samej warstwy

• Proces uczenia ma charakter iteracyjny - jeden przebieg po zbiorze uczącym nazywamy epoką

• DuŜa złoŜoność obliczeniowa - przy m wagach oraz n przykładach mamy do policzenia m*n poprawek

58

Cechy algorytmu wstecznej propagacji błędu

• Zmiany wag mają „lokalny” charakter - algorytm w kaŜdym kroku dostraja je do jednego przykładu

• Uczenie ma charakter przyrostowy - zawsze istnieje moŜliwość douczenia sieci na nowych przykładach

• Algorytm jest wraŜliwy na kolejność prezentowania przykładów

• Istnieje wiele wariantów algorytmu wstecznej propagacji, które mają za zadanie przyśpieszyć

proces uczenia lub poprawić jego efekty (np. wsteczna propagacja z członem momentum, algorytm zmiennej metryki, algorytm Levenberga-Marquardta i in.)

(29)

Efekt przeuczenia sieci neuronowych - przyczyny

• Zbiór przykładów D, choć (z załoŜenia)

reprezentatywny nigdy nie zawiera pełnej informacji o uczonej funkcji

• Istnieje nieskończenie wiele macierzy wag W, dla których wartość błędu E(W,D) osiąga globalne minimum

• Tylko nieliczne konfiguracje wag odpowiadają

minimum błędu w całej dziedzinie uczonej funkcji – dla przykładów spoza zbioru uczącego otrzymany wynik wcale nie musi być optymalny (inny zbiór testujący)

60

Efekt przeuczenia sieci neuronowych

Zjawisko przeuczenia moŜe być spowodowane zbyt długim uczeniem sieci. Zatrzymanie procesu uczenia w odpowiednim momencie pozwala zachować jej zdolność do generalizacji wiedzy.

błąd E

epoki

zbiór testujący

zbiór uczący

(30)

Uczenie nienadzorowane sieci

n

j , j=1K

x

Celem uczenia nienadzorowanego jest wykrywanie pewnych regularności w danych uczących.

Dane prezentowane są jako wektory atrybutów (zmiennych) niezaleŜnych x, ale pozbawione są informacji o poŜądanym wyjściu sieci.

Formalnie mamy zatem zbiór n przykładów (zbiór D), lecz bez atrybutu decyzyjnego postaci:

Z punktu widzenia analizy danych mamy do czynienia z zadaniem grupowania (analizy skupień)

Uczenie nienadzorowane

62

sieci

hM h2

h1

yN y2

y1

...

...

wkj

Reguła Hebba:

JeŜeli przesyłanie sygnałów między dwoma połączonymi neuronami powoduje ich wspólną aktywność, to naleŜy zwiększyć wartość wagi między nimi wg zasady:

j k

kj h y

w =η

Wielkość zmiany wagi powinna być proporcjonalna do iloczynu sygnału wchodzącego do neuronu (z tą wagą) i sygnału wychodzącego z neuronu.

Reguła Hebba moŜe przyjąć róŜną postać w róŜnych sieciach

(31)

Sieci Hopfielda

• Sieć jednowarstwowa z liczbą neuronów równą liczbie składowych wektora wejściowego

• Sieć rekurencyjna

• Pełne połączenia neuronów „kaŜdy z kaŜdym”

• Wszystkie neurony sieci pełnią rolę zarówno wejść, jak i wyjść

• Neurony przetwarzają sygnały bipolarne {-1;1}

• Skokowa funkcja aktywacji

• Rodzaj autoasocjacyjnej pamięci - słuŜy do rozpoznawania wyuczonych wcześniej wzorców

64

Sieci Hopfielda: algorytm

• Faza nauczania:

wyznaczenie a priori wartości wag sieci w oparciu o zbiór przykładów (wzorców)

• Faza rozpoznawania (odtwarzania):

cykliczna propagacja sygnałów przez sieć dla nowych danych wejściowych aŜ do uzyskania stanu stabilnego

(32)

Uczenie sieci Hopfielda

y1

y2

y3 x1

w11 w21 w31

x2

w12 w22 w32

x3

w13 w23 w33

• Wagi sieci tworzą macierz kwadratową o boku k równym liczbie składowych wzorca

• Macierz jest symetryczna z wyzerowanymi wagami na głównej przekątnej, czyli:

wmn=wnmoraz wnn=0

• Dla zbioru N przykładów (wzorców) uczenie wag opiera się na formule:

n m x

x w

N

j

j n j

m

mn=

=1

) 1 2 )(

1 2 (

66

Uczenie sieci Hopfielda

Przykład

Wzorzec 5-elementowy x1=(0 1 1 0 1). Dla jednego wzorca

obliczenia macierzy:

oraz

=

= N

j

j n j

m

mn x x

w

1

) 1 2 )(

1 2 (

w12= (2x1- 1)(2x2- 1) = (0 - 1)(2 - 1) = (-1)(1) = -1 w13= (2x1- 1)(2x3- 1) = (0 - 1)(2 - 1) = (-1)(1) = -1 w14= (2x1- 1)(2x4- 1) = (0 - 1)(0 - 1) = (-1)(-1) = 1 w15= (2x1- 1)(2x5- 1) = (0 - 1)(2 - 1) = (-1)(1) = -1

w23= (2x2- 1)(2x3- 1) = (2 - 1)(2 - 1) = (1)(1) = 1 w24= (2x2- 1)(2x4- 1) = (2 - 1)(0 - 1) = (1)(-1) = -1 w25= (2x2- 1)(2x5- 1) = (2 - 1)(2 - 1) = (1)(1) = 1

w34= (2x3- 1)(2x4- 1) = (2 - 1)(0 - 1) = (1)(-1) = -1 w35= (2x3- 1)(2x5- 1) = (2 - 1)(2 - 1) = (1)(1) = 1

w45= (2x4- 1)(2x5- 1) = (0 - 1)(2 - 1) = (-1)(1) = -1

=

0 1 1 1 1

1 0 1 1 1

1 1 0 1 1

1 1 1 0 1

1 1 1 1 0 W

=0 wii

sprowadzą się do postaci:

) 1 2 )(

1 2

(

= m n

mn x x

w

Cytaty

Powiązane dokumenty

Zaznaczenie opcji Use for the whole network skutkuje zastosowaniem danej funkcji aktywacji do wszystkich neuronów w sieci, co znów jest szczególnie użyteczne w

Podstawową cechą sieci neuronowej jest jej zdolność do uogólniania, a więc generowania właściwego rozwiązania dla danych, które nie pojawiły się w zestawie danych

Przy starcie uczenia z wartości losowych prawdopodobieństwo utknięcia procesu w minimum lokalnym jest większe niż w przypadku sieci. sigmoidalnych, ze względu na silną

Systemy uczące się (machine learning, ML) oraz sztuczne sieci neuronowe (artificial neural networks, ANN) są ważnymi elementami CI.... Problemy

Modele koneksjonistyczne: sieci i rozproszone przetwarzanie równoległe, ale węzły nie działają jak neurony – sieci Bayesowskie, modele graficzne, uczenie się przez

ANN, sztuczne sieci neuronowe – liczne zastosowania techniczne, modele funkcji mózgu, neurony impulsujące lub progowe3. PDP, Parallel Data Processing, czyli

• dla wygenerowanych danych dwuwymiarowych dwóch klas z rozkładów normal- nych zaznacz na wykresie dane treningowe, klasyfikator sieciami neuronowymi, dla różnej liczby neuronów

Gdy mamy warstwę ukrytą problem jest taki, że nie znamy prawidłowej wartości na wyjściu neuronów z warstwy ukrytej, więc nie wiemy jak wyliczyć modyfikacje wag.. Algorytm