background image

WAI

Wykład 3. Sieci neuronowe. Uczenie

Żurada Jacek,  Barski Mariusz ,  Jędruch  Wojciech, Sztuczne 

sieci neuronowe Wydawnictwo Naukowe PWN, Warszawa, 

1996

.

Literatura:
S. Osowski, Sieci neuronowe w ujęciu algorytmicznym. WNT, 
Warszawa 1997.

background image

Perceptron - przypomnienie

.

.

0

1

p

p

w

x

w

y

i

i

w

1

x

1

x

2

x

n

y

w

2

w

n

background image

Przypomnienie.Jak opisać 

perceptron?

Co charakteryzuje perceptron?

• Perceptron jest opisywany  

jedno-znacznie przez zbiór wag 
w

1

,...,w

n

 oraz wartość 

progowa  

• Wartości x

1

,...,x

n

  to zmienne 

pojawiające się na wejściu do  
perceptronu

• Funkcja aktywacji:

otherwise

x

w

y

i

i

0

1

background image

Uczenie perceptronu

Przykład: rozpoznawanie znaków

Siatka 6  6

36 wejść

Wyjście: 1, jeśli na wejściu 
pojawia się litera “A”, zaś 0 
w p.p.

Zadanie: dobrać wagi wejść i wartość 
progową tak, by uzyskać zaplanowany 
efekt

Dane treningowe

(znane odpowiedzi)

Dobór wag (uczenie)

Dane testowe

Odpowiedź

background image

Uczenie perceptronu, n=2

• Proces uczenia:

– Inicjujemy wagi losowo
– Dla każdego przykładu, 

jeśli odpowiedź jest 

nieprawidłowa, to

w

1

 + =  x

1

w

2

 + =  x

2

 – = 

w

1

(k+1)= w

1

(k) + w

1

 + , 

podobnie dla w

2

 , 

(k+1)= (k) –  – ,  
k
-krok iteracji, epoka

• Wejście:

– Ciąg przykładów uczących ze znanymi 

odpowiedziami

w

1

x

1

 +

 w

2

x

2

 - 

 =

 0

[w

1

,w

2

]

gdzie  jest równe  różnicy odpowiedzi sieci i prawidłowej 

odpowiedzi.

background image

Uczenie perceptronu

• Często  mnoży się dodatkowo 

przez niewielki współczynnik 
uczenia

• Po wyczerpaniu przykładów, 

zaczynamy proces uczenia od 
początku, dopóki następują 
jakiekolwiek zmiany wag połączeń

• Próg  można traktować jako wagę 

dodatkowego wejścia o wartości -1:

 = 3

2

-4

x

2

x

1

( = 0)

2

-4

x

2

x

1

(zawsze -1)3

background image

Przykład: Uczenie neuronu

• Zbiór punktów na 

wykresie jest liniowo 

separowalne.

otherwise

x

w

y

i

i

1

1

Funkcja 
aktywacji:

background image

• Otrzymamy

w

1

 = - 18.8

w

2

 = - 12.2

   = 3

• Niech 

w

1

=1, w

2

=1,  = 1, wsp. 

uczenia =1

•Pierwszy przykład jest 

dobrze, ale drugi nie, 

modyfikujemy zatem 

wagi:

w

1

 + = (-1 - 1) 9.4

w

2

 + = (-1 - 1) 6.4

   – = (-1 - 1)

•Drugi przykład jest 

dobry, ale trzeci 

nie…

background image

Uczenie perceptronu

• Opisany schemat jest w miarę 

przejrzysty tylko dla 
pojedynczych perceptronów, 
lub niewielkich sieci

• Ciężko jest stosować reguły 

tego typu dla 
skomplikowanych modeli

– Tymczasem np. do 

rozpoznawania wszystkich liter 
potrzeba by sieci złożonej z 26 
takich perceptronów

background image

Sieci perceptronów

Ograniczenia pojedynczych perceptronów 
spowodowały w latach 80-tych wzrost 
zainteresowania sieciami wielowarstwowymi i 
opracowanie algorytmu ich uczenia (propagacja 
wsteczna)

Synapses

Axon

Dendrites

Synapses

+

+

+

-

-

(weights)

Nodes

background image

SIECI PERCEPTRONÓW

Potrafią reprezentować dowolną funkcję 

boolowską (opartą na rachunku zdań)

 = 2

1

1

q

p

 = 1

-2

p XOR q

1

1

background image

SIECI WIELOWARSTWOWE

• Wyjścia neuronów 

należących do 
warstwy niższej 
połączone są z 
wejściami 
neuronów 
należących do 
warstwy wyższej

– np. metodą „każdy z 

każdym”

• Działanie sieci polega na liczeniu odpowiedzi 

neuronów w kolejnych warstwach

• Nie jest znana ogólna metoda projektowania 

optymalnej architektury sieci neuronowej

background image

Funkcje aktywacji

• Progowe

• Sigmoidaln

e

 

0

0

0

1

s

s

s

f

 

s

e

s

f

1

1

0

0,2

0,4

0,6

0,8

1

1,2

-15

-10

-5

0

5

10

15

-0,2

0

0,2

0,4

0,6

0,8

1

1,2

-15

-10

-5

0

5

10

15

background image

FUNKCJE AKTYWACJI (2)

• Unipolarne

• Bipolarne

0

0,2

0,4

0,6

0,8

1

1,2

-15

-10

-5

0

5

10

15

 

s

e

s

f

1

1

-1,5

-1

-0,5

0

0,5

1

1,5

-15

-10

-5

0

5

10

15

 

1

1

2

 s

e

s

f

background image

FUNKCJE AKTYWACJI (3)

0

0,2

0,4

0,6

0,8

1

1,2

-15

-10

-5

0

5

10

15

 

s

e

s

f

1

1

 = 
2.0
 = 
1.0
 = 
0.5

 

 



0

0

0

5

.

0

0

1

lim

5

.

0

lim

0

s

s

s

s

f

s

f

background image

FUNKCJE AKTYWACJI (4)

 

s

e

s

f

1

1

,

0

0,2

0,4

0,6

0,8

1

1,2

-10

-5

0

5

10

15

5

.

1

2

background image

FUNKCJE AKTYWACJI (5)

• Zasady ogólne:

– Ciągłość (zachowanie stabilności 

sieci jako modelu rzeczywistego)

– Różniczkowalność (zastosowanie 

propagacji wstecznej błędu)

– Monotoniczność (intuicje związane 

z aktywacją komórek neuronowych)

– Nieliniowość (możliwości ekspresji)

background image

SIECI NEURONOWE

Potrafią modelować (dowolnie dokładnie 

przybliżać) funkcje rzeczywiste

(z tw. Kołmogorowa)

y f w

wx

i i

i

n



0

1

 

s

e

s

f

1

1

funkcja aktywacji

background image

0.3

1.1

1

-2

0

-0.2

-0.2

0.4

0.4

SIECI NEURONOWE

background image

0.9

-0.5

1.2

0.3

0.9

1.2

-0.4

-0.4

1

-0.4

-0.8

-2

1.2

1

-0.5

-0.1

-0.4

-0.8

-0.7

SIECI NEURONOWE

background image

SIECI JAKO FUNKCJE ZŁOŻONE (1)

g

f2

f1

x
1

x
2

w
1

w
2

v1
1

v2
2

v1
2

v2
1

y

2

22

1

12

2

2

2

21

1

11

1

1

x

v

x

v

f

w

x

v

x

v

f

w

g

y

2

1

,x

x

Network

background image

SIECI JAKO FUNKCJE ZŁOŻONE (2)




8

1

1

2

3

1

4

0

8

1

1

2

3

1

4

1

2

1

2

1

2

1

2

1

3

2

7

5

3

3

2

7

5

3

x

x

x

x

x

x

x

x

e

e

e

e

y

g

f2

f1

x
1

x
2

4

-3

5

1

3
-7

y

background image

SIECI JAKO FUNKCJE ZŁOŻONE (3)

• Jeśli wszystkie poszczególne funkcje 

aktywacji są liniowe, to funkcja 

Network jest również liniowa

• Architektura wielowarstwowa daje 

zatem nowe możliwości tylko w 

przypadku stosowania funkcji 

nieliniowych

g

f2

f1

x
1

x
2

w
1

w
2

v1
1

v2
2

v1
2

v2
1

y =

=Network(x1
,x2)

background image

SIECI JAKO FUNKCJE ZŁOŻONE – przypadek 

liniowy

• Niech

f

i

(x1,x2) = a

i

*(x1*v

i

1 + x2*v

i

2) + b

i

g(z1,z2) = a*(z1*w1 + z2*w2) + b

• Wtedy

Network(x1,x2) = A1*x1 + A2*x2 + B

• Np.:

A1 = a*(a1*v1*w1 + a2*v2*w2)

g

f2

f1

x
1

x
2

w
1

w
2

v1
1

v2
2

v1
2

v2
1

y

background image

PROPAGACJA WSTECZNA BŁĘDU (1)

• Chcemy “wytrenować” wagi połączeń 

między kolejnymi warstwami neuronów

• Inicjujemy wagi losowo (na małe wartości)
• Dla danego wektora uczącego obliczamy 

odpowiedź sieci (warstwa po warstwie)

• Każdy neuron wyjściowy oblicza swój 

błąd, odnoszący się do różnicy pomiędzy 

obliczoną odpowiedzią y oraz poprawną 

odpowiedzią t

background image

PROPAGACJA WSTECZNA BŁĘDU (2)

dane uczące

odpowiedź 

sieci y

właściwa 

odpowiedź t

błąd d

2

2

1

t

y

d

Błąd sieci definiowany jest zazwyczaj 
jako

background image

PROPAGACJA WSTECZNA BŁĘDU (3)

• Oznaczmy przez:

– f: R 

 R – funkcję aktywacji w neuronie

– w

1

 ,..., w

K

 – wagi połączeń wchodzących

– z

1

 ,..., z

K

 – sygnały napływające do 

neuronu z poprzedniej warstwy

• Błąd neuronu traktujemy jako funkcję 

wag połączeń do niego prowadzących:

2

1

1

1

...

2

1

,...,

t

z

w

z

w

f

w

w

d

K

K

K

background image

PRZYKŁAD (1)

• Rozpatrzmy model, w którym:

– Funkcja aktywacji przyjmuje postać

– Wektor wag połączeń = [1;-3;2]

• Załóżmy, że dla danego przykładu:

– Odpowiedź powinna wynosić t = 0.5
– Z poprzedniej warstwy dochodzą sygnały 

[0;1;0.3]

2

3

1

1

)

(

s

e

s

f

background image

Zadania sprawdzające:

1. Co charakteryzuje prosty perceptron?
2. Podać inną funkcję logiczną niż XOR, 

której nie potrafi obliczyć sieć neuronowa.

3. Jaką własność posiada każda funkcja 

aktywacji?

4. Co to jest równanie perceptronowe? Jakie 

jest jego znaczenie?

5. Co potrafi zrobić pojedyńczy neuron?

background image

Zadania sprawdzające:

1. Co charakteryzuje prosty perceptron?
2. Podać inną funkcję logiczną niż XOR, 

której nie potrafi obliczyć sieć neuronowa.

3. Jaką własność posiada każda funkcja 

aktywacji?

4. Co to jest równanie perceptronowe? Jakie 

jest jego znaczenie?

5. Co potrafi zrobić pojedyńczy neuron?

background image

PRZYKŁAD (2)

• Liczymy wejściową sumę ważoną:

• Liczymy odpowiedź neuronu:

• Błąd wynosi:

23

.

0

1

1

1

1

)

(

2

.

1

2

4

.

2

3

e

e

s

f

y

4

.

2

3

.

0

2

1

)

3

(

0

1

3

3

2

2

1

1

x

w

x

w

x

w

s

036

.

0

5

.

0

23

.

0

2

1

2

d

background image

IDEA ROZKŁADU BŁĘDU

• Musimy „rozłożyć” otrzymany błąd 

na połączenia wprowadzające 
sygnały do danego neuronu

• Składową błędu dla każdego j-tego 

połączenia określamy jako 
pochodną cząstkową błędu 
względem j-tej wagi

• Składowych tych będziemy mogli 

użyć do zmodyfikowania ustawień 
poszczególnych wag połączeń

background image

IDEA ROZKŁADU BŁĘDU (2)

Załóżmy, że mamy neuron z wagami w

0

=0, w

1

=2, 

w

2

=3. Mamy dane wektor wejściowy:  [0.3 , 0.7], 

przy czym oczekiwana odpowiedź to t=1. Jak 
należy zmienić wagi, aby błąd był jak najmniejszy? 

y f w

wx

i i

i

n



0

1

 

s

e

s

f

1

1

w

1

w

2

x

1

x

2

y

Wagi powinniśmy 
zmienić w kierunku 
spadku wartości błędu.

-4

-2

0

2

4

-4

-2

0

2

4

0

0.2

0.4

-4

-2

0

2

4

Możemy błąd przedstawić jako 
funkcję w

1

, w

2

:

błąd

wartość błędu
dla wag [2, 3]

w

ag

i

background image

KIERUNEK ZMIANY WAG

Jeśli rozważymy większą liczbę przykładów, funkcja 

średniego błędu będzie miała bardziej skomplikowany 
kształt.

[0.3, 0.7], t=1
[0.2, 0.9], t=0.1
[-0.6, 1],  t=0
[0, -0.8],  t=0.5
[0.6, 1],   t=0.3 

-10

-8

-6

-4

-2

0

2

4

-10

-5

0

5

10

Nachylenie wykresu w danym punkcie 
(odpowiadającym aktualnym wartościom 
wag) dane jest przez gradient, czyli wektor 
pochodnych cząstkowych.

Zmiana wag powinna nastąpić w kierunku przeciwnym.

-10

-5

0

5

-10

-5

0

5

10

0.25

0.5

0.75

1

1.25

-10

-5

0

5

background image

  

j

z

s

f

t

y

'

OBLICZANIE POCHODNEJ

j

K

w

w

w

d

,...,

1

  

j

K

K

w

z

w

z

w

s

s

f

y

t

y

...

2

1

1

1

2

j

K

K

w

t

z

w

z

w

f

2

1

1

...

2

1

background image

PROPAGACJA WSTECZNA BŁĘDU

• Idea:

– Wektor wag połączeń powinniśmy przesunąć w kierunku 

przeciwnym do wektora gradientu błędu (z pewnym 
współczynnikiem uczenia 

)

– Możemy to zrobić po każdym przykładzie uczącym, albo 

sumując zmiany po kilku przykładach.

• Realizacja:

  

j

j

z

s

f

y

t

w

'

Prosty przykład: wagi w

1

=1, w

2

=1, dane wejściowe: [0.5, 0.5], = 1.

Funkcja sigmoidalna: 

więc:

Stąd: = 0.5 + 0.5 = 1,  = 0.731,  zmiana w= (1- 0.731) * 0.19 * 0.5 = 0.026.
A więc nowe wagi to 1.026. Ten sam przykład da tym razem odpowiedź y=0.736.

 

s

e

s

f

1

1

 

2

1

s

s

e

e

s

f

background image

PROPAGACJA WSTECZNA BŁĘDU (2)

błąd 

1

błąd 

w

1

w

2

Błędy są następnie propagowane w kierunku 
poprzednich warstw.
Wprowadźmy pomocniczo współczynnik błędu 

 

zdefiniowany dla ostatniej warstwy jako:

n

i

i

i

w

s

f

1

)

(

czyli neuron w warstwie ukrytej 
“zbiera” błąd z neuronów, z którymi 
jest połączony.

błąd 

2

y

t

s

f

)

(

a dla pozostałych warstw:

Zmiana wag połączeń następuje po fazie propagacji 
błędu i odbywa się według wzoru:

z

w

Oznaczenia: w - waga wejścia neuronu, z - sygnał wchodzący do 
neuronu danym wejściem, 

 - współczynnik błędu obliczony dla danego 

neuronu, s - wartość wzbudzenia (suma wartości wejściowych 
pomnożonych przez wagi) dla danego neuronu.

background image

Zadania sprawdzające:

1. Co charakteryzuje prosty perceptron?
2. Podać inną funkcję logiczną niż XOR, 

której nie potrafi obliczyć sieć neuronowa.

3. Jaką własność posiada każda funkcja 

aktywacji?

4. Co to jest równanie perceptronowe? Jakie 

jest jego znaczenie?

5. Co potrafi zrobić pojedyńczy neuron?


Document Outline