PSI 2011 12 w 4 SSN 3

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

x

1

x

2

w

i1

.

.

.
.

.

.

i-ty neuron

w

ij

w

i2

w

in

x

j

x

n

y

i

generator

sygnału

uczącego

d

i

x

w

i

x

c

r

t

i

Ogólny wzór korekty współczynników wagowych:

k

k

i

k

k

i

k

i

k

i

k

i

d

w

cr

w

w

w

w

x

x

)

,

,

(

1

Jaką postać ma sygnał uczący r ?

Uczenie neuronu

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

Ogólny przepis (algorytm) uczenia neuronu
wynika z zadania minimalizacji błędu uczenia.
Zadanie to można sformułować następująco:

Dla jakich wartości współczynników wagowych,
błąd uczenia przyjmuje najmniejszą
(minimalną) wartość?

Błąd uczenia pojedynczego neuronu

gdzie:

y=ϕ(s) =ϕ

w

i

x

i

i=1

n

⎟ =ϕ W

T

X

(

)

E =

1
2

(y

i

t

i

)

2

i=1

n

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

Ogólnie, zagadnienie optymalizacji sprowadza
się do poszukiwania minimum funkcji celu J
(kryterium jakości) drogą kolejnych iteracji
zgodnie z zależnością:

gdzie:

s - krok,
d - kierunek poszukiwań.

sd

x

x

k

k

)

(

)

1

(

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

Ogólnie, do minimalizacji funkcji celu J można
wykorzystać gradientową metodę najszybszego
spadku, wg której zmiana parametrów
optymalizacji następuje zgodnie z zależnością:

czyli

Dx - przyrost zmiennej optymalizacji,
h - długość kroku.

x

J

x

x

x

x

k

k

)

(

)

1

(

x

J

x

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

W naszym przypadku kryterium jakości J=E

l

jest

funkcją współczynników wagowych E

l

= E

l

(W).

Minimalizując funkcję celu metodą gradientową,
poprawka o jaką należy zmodyfikować i-tą
składową wektora wag ma postać:

Poprawka jest proporcjonalna do i-tej
składowej gradientu funkcji E

l

(znak minus

oznacza, że poprawki dokonujemy w kierunku
najszybszego zmniejszania błędu).

i

l

i

w

E

w

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

Korzystając ze wzoru na pochodną funkcji
złożonej zapisać:

E

w

i

=

E

y

y

w

i

Zgodnie z wzorem na
wielkość błędu:

E

y

=−(ty) =−δ

E

l

=

1

2

(t

i

y

i

)

2

i=1

n

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie neuronu

E

w

i

=

E

y

y

w

i

y

w

i

=

ϕ(s)

w

i

=

ϕ( w

i

x

i

)

w

i

Tak więc poprawki współczynników wagowych
zależą od przyjętej funkcji aktywacji

)

(s

Ostatecznie, wzór na zmianę współczynników
wagowych przyjmuje postać:

w

i

(k+1)

=w

i

(k)

+ηΔw

i

=w

i

(k)

+ηδ

ϕ

w

i

y

j

=w

i

(k)

+η(t

j

y

j

)ϕ'y

j

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

+

x

1

x

2

w

i1

.

.

.
.

.

.

w

ij

w

i2

w

in

x

j

x

n

y

i

d

i

x

w

i

x

Funkcja

aktywacji

+

d

i

- y

i

+

-

c

s

i

r

gdzie j’(w

i

T

x) jest pochodną funkcji

aktywacji.

Sygnał uczący r neuronu o ciągłej funkcji
aktywacji:

r =δϕ'(s) =(t

i

y

i

)ϕ'(w

i

T

x) =[t

i

ϕ(w

i

T

x)]ϕ'(w

i

T

x)

)

(

'

i

s

)

(

i

s

t

i

t

i

- y

i

Uczenie neuronu – reguła

delta

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Ostatecznie, korekta współczynników wagowych
jest następująca:

• Dla

sigmoidalnej (logistycznej)

funkcji

aktywacji

:

• Dla

neuronów liniowych:

Δw

i

=ηδx =c(ty)x

• Dla funkcji aktywacji

tanh:

Uczenie neuronu

Δw

i

=ηδy(1−y)x =η(ty)y(1−y)x

Δw

i

=ηδ(1−y

2

)x =η(ty)(1−y

2

)x

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej

Inteligencji

Jan Kusiak

Sztuczna sieć neuronowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Sieć neuronowa

Sieć neuronowa jest układem neuronów
odpowiednio ze sobą połączonych w warstwy,
przy czym wyróżnia się zazwyczaj warstwę
wejściową, warstwy ukryte i warstwę wyjściową:

warstwa

wyjściowa

warstwa

ukryta

warstwa wejściowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej

Inteligencji

Jan Kusiak

Sztuczne Sieci Neuronowe 1

Sieć neuronowa

Pojedyncza warstwa (wejściowa) sieci

R – liczba elementów wektora wejściowego p
S – liczba neuronów w warstwie
Uwaga: R nie musi być równe S

• Każdy sygnał wejściowy (każdy element wektora

p) jest podawany na wejście każdego z
neuronów poprzez macierz wag W.

• Sygnałem wyjściowym jest wektor kolumnowy a.

• Macierz wag W

R

S

S

S

R

R

w

w

w

w

w

w

w

w

w

,

2

,

1

,

,

2

2

,

2

1

,

2

,

1

2

,

1

1

,

1

...

...

...

W

Uwaga: numer wiersza (pierwszy wskaźnik) to numer neuronu
docelowego, a numer kolumny (drugi wskaźnik) to numer źródła

n

1

=w

1,1

p

1

+w

1,2

p

2

+...+w

1,R

p

R

+b

b

Wp

n

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej

Inteligencji

Jan Kusiak

Sztuczne Sieci Neuronowe 1

Sieć neuronowa

Pojedyncza warstwa (wejściowa) sieci w skróconej notacji

R – liczba elementów wektora
wejściowego p
S – liczba neuronów w warstwie
1

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej

Inteligencji

Jan Kusiak

Sztuczne Sieci Neuronowe 1

Sieć neuronowa

Ogólna struktura sieci neuronowej wielowarstwowej



a

2

f

2

(LW

2,1

a

1

b

2

)



a

3

f

3

(LW

3,2

a

2

b

3

)



a

1

f

1

(IW

1,1

pb

1

)



a

3

f

3

(LW

3,2

f

2

(LW

2,1

f

1

(IW

1,1

pb

1

) b

2

) b

3

)



LW

- Macierz wag warstwy
wewnętrznej (ukrytej)

- Macierz wag warstwy
wejściowej

IW

background image

Sieć neuronowa

Ogólna struktura sieci neuronowej wielowarstwowej

a1=f1(Wx)

a3 =f3(V2f2(V1f1(Wx)))

Warstwa
wejściowa

x

a

1

W

V

2

a

2

V

1

...

a

3

a2 =f2(V1a1)

a3=f3(V2a2)

Warstwa
ukryta 1

Warstwa
ukryta 2

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Podstawy Sztucznej

Inteligencji

Jan Kusiak

Sztuczne Sieci Neuronowe 1

Sieć neuronowa

Sieć neuronowa wielowarstwowa w skróconej notacji



a

2

f

2

(LW

2,1

a

1

b

2

)



a

3

f

3

(LW

3,2

a

2

b

3

)



a

1

f

1

(IW

1,1

pb

1

)



a

3

f

3

(LW

3,2

f

2

(LW

2,1

f

1

(IW

1,1

pb

1

) b

2

) b

3

)



LW

- Macierz wag warstwy
wewnętrznej (ukrytej)

- Macierz wag warstwy
wejściowej



IW

Pierwszy indeks – warstwa docelowa
Drugi indeks – warstwa źródłowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Sygnał wyjściowy każdego z neuronów jest w
ogólnym przypadku nieliniową funkcją
pobudzenia

gdzie: w

i

= [w

i1

, w

i2

, ...,w

im

]

T

, - wektor wag

sygnałów wejściowych i-tego neuronu.

Sieć neuronowa

y

i

=ϕ(n

i

)=ϕ

w

ij

x

j

j=1

m

=ϕ(w

i

Tx), i=1,2,K ,n

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Relację wejście - wyjście można zapisać w
postaci macierzowej:

gdzie: D jest macierzowym operatorem
nieliniowym reprezentującym funkcje
aktywacji poszczególnych neuronów:

Sieć neuronowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

W jest macierzą wag synaptycznych,
reprezentującą tablicę połączeń poszczególnych
neuronów analizowanej warstwy z warstwą
poprzednią:

gdzie:
n - liczba warstw,
m - liczba neuronów w danej warstwie

Sieć neuronowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Wektor sygnałów wyjściowych z dowolnej
warstwy można wyznaczyć mnożąc wektor
sygnałów wejściowych przez macierz
współczynników wagowych

W przypadku wektorów nieliniowych, składowe
otrzymanego wektora należy przekształcić
poprzez funkcję aktywacji.

Sieć neuronowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Sygnały wejściowe przyjmują wartości z
pewnego określonego przedziału, zazwyczaj
przyjmuje się:

x Î [-1,1]

lub

x Î [0,1]

Można to osiągnąć poprzez normalizację
sygnałów wejściowych

Sieć neuronowa

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Budowa sieci

• Neurony tworzą warstwy

• Sygnały wyjściowe neuronów jednej warstwy

stanowią sygnały wejściowe neuronów
warstwy następnej

• Liczba wejść każdego neuronu jest

zwiększoną o 1 liczbą neuronów w warstwie
poprzedniej (sygnał progowy o stałej
wartości).

• Liczba wejść w neuronach pierwszej warstwy

jest uzależniona od liczby sygnałów
wejściowych do sieci.

• Liczba warstw (a także liczba neuronów) w

znaczący sposób decyduje o możliwościach
sieci

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Co ma wpływ na sygnały wyjściowe?

Sygnał wyjściowy neuronu
zależy od:

sygnałów wejściowych,
współczynników wagowych,
funkcji aktywacji,
budowy sieci

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Techniki uczenia

sieci neuronowych

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Zmieniając wartości współczynników
wagowych możemy zmieniać zależności
pomiędzy wektorami sygnałów
wejściowych i wyjściowych sieci.

Jak ustawić te współczynniki aby
uzyskać żądane zależności pomiędzy
tymi wektorami?

Sieci neuronowych się nie programuje.
Oznacza to, że wartości współczynników
wag nie ustala się bezpośrednio,
ulegają one zmianom podczas procesu
nazywanego uczeniem sieci.

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Dla n neuronów warstwy wyjściowej sieci, błąd

jednej epoki wynosi:

Całkowity błąd uczenia złożonego z m epok
wynosi:

E

e

=

1
n

(y

i

t

i

)

2

i=1

n

m

j

ej

E

m

E

1

1

Błąd uczenia sieci

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie sieci jednowarstwowej

1

K

k

z

1

z

k

z

K

y

1

y

j

y

J

w

11

w

k1

w

K1

w

1j

w

1J

w

k1

w

kj

w

Kj

w

kJ

w

KJ

.

.

.

.

.

.

.

.

.

.

.

.

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Wektor sygnałów wyjściowych sieci wynosi:

gdzie
:

a F jest operatorem
nieliniowym
zależnym od funkcji
aktywacji
poszczególnych
neuronów:

J

y

y

y

y

2

1

J

z

z

z

z

2

1

KJ

K

K

kJ

k

k

J

w

w

w

w

w

w

w

w

w

W

2

1

2

1

1

12

11

Uczenie sieci jednowarstwowej

z = F[Wy]

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie sieci jednowarstwowej

Ogólny wzór korekty współczynników wagowych:

k

k

i

k

k

i

k

i

k

i

k

i

d

w

cr

w

w

w

w

x

x

)

,

,

(

1

Jaką postać ma sygnał uczący r ?

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

min

)

(

2

1

1

2

K

k

lk

lk

l

z

d

E

Celem procesu uczenia jest minimalizacja
błędu E

l

prezentacji pojedynczego obrazu

wejściowego y

l

, l=1,...,p

Uczenie sieci jednowarstwowej

min

l

E

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Ogólnie, zagadnienie optymalizacji sprowadza
się do poszukiwania minimum funkcji celu
(kryterium jakości) drogą kolejnych iteracji
zgodnie z zależnością:

gdzie:

s - krok,
d - kierunek poszukiwań.

Uczenie sieci jednowarstwowej

sd

x

x

k

k

)

(

)

1

(

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Ogólnie, do minimalizacji funkcji celu można
wykorzystać gradientową metodę najszybszego
spadku, wg której zmiana parametrów
optymalizacji następuje zgodnie z zależnością:

czyli

Dx - przyrost zmiennej optymalizacji,
h - długość kroku.

x

J

x

x

x

x

k

k

)

(

)

1

(

x

J

x

Uczenie sieci jednowarstwowej

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

W naszym przypadku kryterium jakości J=E

l

jest

funkcją współczynników wagowych E

l

= E

l

(W).

Minimalizując funkcję celu metodą gradientową,
poprawka o jaką należy zmodyfikować i-tą
składową wektora wag ma postać:

Poprawka jest proporcjonalna do i-tej
składowej gradientu funkcji E

l

(znak minus

oznacza, że poprawki dokonujemy w kierunku
najszybszego zmniejszania błędu).

Uczenie sieci jednowarstwowej

i

l

i

w

E

w

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Korzystając ze wzoru
na pochodną funkcji
złożonej zapisać:

i

i

w

z

z

E

w

E

Uczenie sieci jednowarstwowej

1

K

k

z

1

z

k

z

K

y

1

y

j

y

J

w

11

w

k1

w

K1

w

1j

w

1J

w

k1

w

kj

w

Kj

w

kJ

w

KJ

.

.

.

.

.

.

.

.

.

.

.

.

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Korzystając ze wzoru
na pochodną funkcji
złożonej zapisać:

i

i

w

z

z

E

w

E

Uczenie sieci jednowarstwowej

1

K

k

z

1

z

k

z

K

y

1

y

j

y

J

w

11

w

k1

w

K1

w

1j

w

1J

w

k1

w

kj

w

Kj

w

kJ

w

KJ

.

.

.

.

.

.

.

.

.

.

.

.

)

(

z

d

z

E

Zgodnie z wzorem na
wielkość błędu:

K

k

lk

lk

l

z

d

E

1

2

)

(

2

1

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

i

i

w

z

z

E

w

E

Uczenie sieci jednowarstwowej

Tak więc poprawki współczynników wagowych
zależą od budowy sieci, a konkretnie, od
przyjętej funkcji aktywacji

i

i

i

i

i

w

y

w

w

s

w

z

)

(

)

(

)

(s

Ostatecznie, wzór na zmianę współczynników
wagowych przyjmuje postać:

j

k

k

k

kj

j

j

k

kj

kj

k

kj

k

kj

y

z

d

w

y

w

w

w

w

w

'

)

(

)

(

)

(

)

(

)

1

(



background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie sieci jednowarstwowej

Ostatecznie, korekta współczynników wagowych
jest następująca:

• Dla

sigmoidalnej (logistycznej)

funkcji

aktywacji

:

• Dla

neuronów liniowych:

j

k

k

kj

y

w



)

(

j

k

k

k

k

kj

y

z

z

z

d

w

)

1

(

)

(

• Dla funkcji aktywacji

tanh:

j

k

k

k

kj

y

z

z

d

w

)

1

)(

(

2

J

j

,

,

1

K

k

,

,

1

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm uczenia ciągłej

jednowarstwowej sieci

Dane jest p par uczących:

{(y

1

,d

1

),(y

2

,d

2

),...,(y

p

,d

p

)}

gdzie y

i

ma rozmiar J ×1, d

i

ma rozmiar K ×1, a

sygnał progowy przyjmuje wartość y

iJ

= -1, i =

1, 2,..., p. Niech parametr l oznacza numer
kroku cyklu uczenia.

Krok 1: Wybór h > 0, E

max

> 0.

Krok 2: Wybór początkowych wartości elementów

macierzy wag W jako niewielkich liczb
losowych. Macierz W ma wymiar K ×J.

Krok 3: Ustawienie wartości początkowej

licznika kroków oraz wyzerowanie
wartości błędu: l = 1, E = 0.

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm uczenia ciągłej

jednowarstwowej sieci

Krok 4: Podanie obrazu na wejście i obliczenie

sygnału wyjściowego: y = y

l

, d=d

l

, z

k

=

j(w

k

T

y), k=1,2, ..., K gdzie w

k

T

jest k-

tym wierszem macierzy W.

Krok 5: Dla bipolarnej (tanh) funkcji

aktywacji uaktualnienie wag wg
zależności:

y

z

z

d

w

w

k

k

k

k

k

)

1

)(

(

2

1

2

K

k

,

,

2

,

1 

K

k

,

,

2

,

1 

y

z

z

z

d

w

w

k

k

k

k

k

k

)

1

(

)

(

2

1

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Krok 6: Obliczenie błędu łącznego:

Krok 7: Jeżeli l < p, to l=l+1 i przejście do

kroku 4.

Krok 8: Cykl uczenia został zakończony. Jeżeli

E < E

max

, to zakończenie uczenia. W

przeciwnym razie rozpoczęcie nowego
cyklu uczenia począwszy od kroku 3.

2

1

)

(

2

1

K

k

k

k

z

d

E

E

Algorytm uczenia ciągłej

jednowarstwowej sieci

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Uczenie sieci wielowarstwowej

1

J -1

j

x

1

x

i

x

I-1

z

1

z

k

z

K

v

11

v

j1

v

1i

v

1i

v

1I

v

j1

v

ji

v

jI

v

J -1,I

.

.

.

.

.

.

.

.

.

.

.

.

x

J

= -1

w

11

v

11

1

K

k

.

.

.

.

.

.

y

J

= -1

w

k1

w

1j

w

kj

w

Kj

w

kJ

w

KJ

w

1J

warstwa wyjściowa

warstwa ukryta

Czy można
stosować tę
samą regułę
uczenia co dla
sieci
jednowarstwowe
j?

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm wstecznej propagacji

błędu

Przez wiele lat nie znano metody skutecznego
uczenia sieci wielowarstwowych.

1986 - D. Rumelhart, G. Hinton i R. Williams
- Algorytm wstecznej propagacji błędu dla
jednokierunkowych sieci warstwowych. Algorytm
ten stanowi uogólnienie reguły Delta.

Mając wyznaczony błąd d

m

występujący podczas

realizacji procesu uczenia w neuronie o
numerze m
, możemy "rzutować" ten błąd wstecz
do wszystkich tych neuronów, których sygnały
stanowiły wejścia dla m
-tego neuronu.

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm wstecznej propagacji

błędu

k

k

w

1

J -1

j

x

1

x

i

x

I-1

z

1

z

k

z

K

v

11

v

j1

v

1i

v

1i

v

1I

v

j1

v

ji

v

jI

v

J -1,I

.

.

.

.

.

.

.

.

.

.

.

.

x

J

= -1

w

11

v

11

1

K

k

.

.

.

.

.

.

y

J

= -1

w

k1

w

1j

w

kj

w

Kj

w

kJ

w

KJ

w

1J

warstwa wyjściowa

warstwa ukryta

WE

(x)

WY

(z)

WE

(

k

)

WY

(

j

)

i

i

x

w

z

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm wstecznej propagacji

błędu

Algorytm:

gdzie: M – liczba warstw

M

m

m

m

m

m

M

m

a

a

b

a

W

f

a

p

a

,

1

,

,

1

,

0

dla

)

(

1

1

1

1

0

1. Podanie sygnału wejściowego p i uzyskanie

na wyjściu sygnału a (kierunek sygnału od WE
do WY)

2. Rzutowanie wstecz błędu = (t – a)

(kierunek sygnału od WY do WE)

1

2

1

dla

)

)(

(

)

)(

(

2

1

1

,

,

,

M-

m

m

T

m

m

m

m

M

M

M

s

W

n

F

s

a

t

n

F

s

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm wstecznej propagacji

błędu

)

(

0

0

0

)

(

0

0

0

)

(

)

(

2

1

m

s

m

m

m

m

m

m

m

m

n

f

n

f

n

f

n

F

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Algorytm wstecznej propagacji

błędu

m

m

m

T

m

m

m

m

k

k

k

k

s

b

b

a

s

W

W

)

(

)

1

(

)

(

)

(

)

1

(

1

Korekta wag:

background image

Problemy uczenia sieci neuronowej

background image

Problemy uczenia

Zadanie:

Chcemy aproksymować funkcję:

nnd11fa



g(p) 1 sin(i

4

p) dla  2p2, i 1,2,4,8

i=1

i=2

i=4

i=8

background image

Problemy uczenia – dobór architektury

Właściwy dobór architektury
(rozmiaru) sieci

nnd11fa

i=1

i=2

i=4

i=8

Sieć 1 – 3 – 1;

logsig - linear

Sieć 1 –

6

– 1

background image

Problemy uczenia

Zbieżność

nnd11fa

Sieć: 1 – 3 – 1; logsig - linear



g(p) 1 sin(

p) dla  2p2

Funkcja aproksymowana:

a)

b)

Powód?

Minimum lokalne -punkt startowy 

background image

Problemy uczenia - uogólnianie

Zdolność do uogólnień

nnd11gn

Sieć: 1 – 2 – 1; logsig - linear

2

2

dla

)

4

sin(

1

)

(

p

p

p

g

Funkcja aproksymowana:

Zbiór danych uczących:

}

,

{

,

},

,

{

},

,

{

2

2

1

1

Q

Q

t

p

t

p

t

p

Zakładamy: Q=11, czyli p= -2, -1.6, -1.2, ..., 1.2, 1.6, 2

Sieć: 1 – 9 – 1; logsig - linear

Dlaczego?

7 parametrów

28 parametrów (18 wag + 10
bias)
- zbyt dużo stopni swobody
dla
11 danych uczących (za mało
danych)

background image

Problemy uczenia

Właściwy dobór struktury (architektury)
sieci wpływa na:

• Dokładność

działania

• Czas uczenia

Skrócenie czasu uczenia:

• Rozwijanie technik heurystycznych

(optymalizacja współczynników uczenia,
zastosowanie momentum, itp.)

• Zastosowanie efektywniejszych technik

optymalizacji

background image

Kilka uwag praktycznych

background image

Jak konstruować sieć ?

Jaką wybrać topologię sieci?

• Ile warstw ukrytych?

• Ile neuronów w poszczególnych warstwach?

Brak jednoznacznej odpowiedzi (brak
teoretycznych podstaw)

Większość autorów opowiada się za stosowaniem

nie więcej niż dwóch warstw ukrytych (

o ile

nie ma istotnej potrzeby, zaleca się tylko
jedną warstwę ukrytą).

background image

Ile warstw ukrytych ?

Sieci o większej liczbie warstw ukrytych uczą
się dłużej i proces uczenia jest słabiej
zbieżny.

Rozbudowanie sieci do dwóch warstw ukrytych
jest uzasadnione w zagadnieniach w których
sieć ma nauczyć się funkcji nieciągłych.

Zaleca się rozpoczynać zawsze od jednej
warstwy ukrytej.
Jeżeli pomimo zwiększenia liczby neuronów
sieć uczy się źle, wówczas należy podjąć
próbę

dodanie dodatkowej drugiej warstwy

ukrytej i

zmniejszyć jednocześnie liczbę

neuronów ukrytych.

background image

Również i tutaj brak jednoznacznej odpowiedzi

Zbyt mała liczba neuronów w warstwie ukrytej
- mogą wystąpić trudności w uczenia sieci.

Zbyt duża liczba neuronów - wydłużenie czasu
uczenia jak również może doprowadzić do tzw.
nadmiernego dopasowania. Sieć uczy się wtedy
"na pamięć"
pewnych szczegółów i zatraca
zdolność do uogólnień. Taka sieć uczy się
wprost idealnie i wiernie odwzorowuje
wartości zbioru uczącego. Jednakże wyniki
testowania sieci na danych spoza zbioru
uczącego są zazwyczaj bardzo słabe.

Ile neuronów w warstwach ukrytych ?

background image

Wstępne oszacowanie liczby neuronów wg tzw.
regułę piramidy geometrycznej (liczba
neuronów maleje od wejścia do wyjścia zgodnie
z postępem geometrycznym).

kn

WE

WY

kn

n

k

Przykładowo, dla
sieci
trójwarstwowej
o n
neuronach na
wejściu i k
neuronach na
wyjściu, warstwa
ukryta powinna
mieć

neuronów.

Ile neuronów w warstwach ukrytych ?

background image

Dla sieci o czterech warstwach (dwóch
warstwach ukrytych), liczba neuronów w
poszczególnych warstwach wynosi:

WE

WY

2

kr

n

k

kr

kr

l

k

n

r

gdzie

kr

l

2

3

2

1

Ile neuronów w warstwach ukrytych ?

background image

Wzory powyższe nie dają recepty na optymalną
topologię sieci.

Przykładowo, jeżeli sieć wykorzystywana jest do
aproksymacji złożonej funkcji jednej zmiennej,
wówczas na wejściu i wyjściu sieć ma tylko po
jednym neuronie, natomiast warstwa ukryta
zazwyczaj musi być rozbudowana.

Poszukiwanie optymalnej struktury sieci jest
zwykle czasochłonne i żmudne.

Zazwyczaj zaczynamy uczenie sieci o małej
liczbie neuronów i stopniowo ją rozbudowujemy w
miarę potrzeb. Sieć zbyt rozbudowana powoduje
utratę zdolności do uogólniania (sieć uczy się
na pamięć).

Jak konstruować sieć ?

background image

Reasumując:

Ze względu na fakt, że brak jest
teoretycznych przesłanek do projektowania
topologii sieci, zgodnie z zaleceniami
podanymi przez Masters'a, we wstępnych
pracach nad siecią dobrze jest przestrzegać
następujących 3 zasad:

1. należy stosować tylko jedną warstwę ukrytą,
2. należy używać niewielu neuronów ukrytych,
3. należy uczyć sieć do granic możliwości.

Jak konstruować sieć ?

background image

Oznaką przetrenowania jest wzrost błędu dla
danych testowych, przy malejącym błędzie
danych uczących

Jak długo uczyć sieć ?

b

ł

ą

d

l. iteracji

test

uczenie

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

• Dla każdej próbnej liczby neuronów ukrytych

tworzymy losowe wagi początkowe i uczymy
sieć do chwili, gdy przestajemy osiągać
poprawę.

• Następnie przyjmujemy inne wartości wag

początkowych i powtarzamy proces uczenia.
Gdy nie zauważamy zmian, sieć możemy uznać
za nauczoną.

• Sprawdzamy działanie sieci przy pomocy

danych testowych. Jeżeli jakość sieci jest
wyraźnie gorsza niż na zbiorze uczącym, to:

- albo zbiór uczący jest zły (za mały

lub mało reprezentatywny)

- albo mamy za dużo neuronów ukrytych.

Sieć jest przetrenowana.

Prawidłowa procedura uczenia sieci

background image

Podstawy Sztucznej Inteligencji

Jan Kusiak

Ocena jakości sieci

Zbiór danych do uczenia sieci

Skalowanie sygnałów

Liczebność zbioru danych uczących

Rozkład danych w zbiorze uczącym

Trendy danych uczących

Sieć nie ma zdolności do ekstrapolacji

Prawidłowa procedura uczenia sieci


Document Outline


Wyszukiwarka

Podobne podstrony:
PSI 2011 12 w 3 SSN 2
PSI 2011 12 w 2 SSN 1
PSI 2011 12 w 6 SSN SOM
PSI 2011 12 w 5 SSN 4
PSI 2011 12 w 3 bis SSN 2
PSI 2011 12 w 9 SE 1
PSI 2011 12 w 10 SE 2
PSI 2011 12 w 8 Model i Metamodel
PSI 2011 12 w 7 rekurencyjne 1
PSI 2011 12 w 1 wstep
K1 2011 12 zad 2
1 MSL temat 2011 12 zaoczneid 1 Nieznany

więcej podobnych podstron