Sieci neuronowe - Skrypt rozdzial 10.PDF

(313 KB) Pobierz
Ćwiczenie __
Ćwiczenie 10
SIECI NEURONOWE I – SIECI JEDNOKIERUNKOWE
Celem ćwiczenia jest zaznajomienie studentów z podstawowymi
pojęciami z zakresu sieci neuronowych, takimi jak: neuron, sieć neuronowa,
funkcja aktywacji, struktura sieci neuronowej, uczenie sieci neuronowej.
Podczas ćwiczenia badana jest wielowarstwowa jednokierunkowa sieć
neuronowa (wielowarstwowy perceptron) wraz z jej algorytmem uczenia -
algorytmem propagacji wstecz. W szczególności badana jest możliwość
aproksymacji dowolnej funkcji za pomocą tego typu sieci.
I. WSTĘP
Początki badań nad modelami biologicznych (naturalnych) sieci
neuronowych sięgają lat czterdziestych dwudziestego wieku, kiedy to
sformułowano matematyczny model pojedynczego neuronu. Od tego czasu do
chwili obecnej dziedzina wiedzy zajmująca się modelami sieci neuronowych
(sztucznymi sieciami neuronowymi) rozwinęła się w sposób, który z pewnością
zadziwił wielu luminarzy współczesnej nauki. Rozwój ten dotyczy zarówno
samej teorii sztucznych sieci neuronowych, a więc ich struktur i algorytmów
uczenia, jak również dziedzin ich zastosowania. Prawdopodobnie łatwiej
obecnie wymienić obszary nauki, w których sieci neuronowych nie usiłowano
jeszcze zastosować niż te, w których z mniejszym lub większym powodzeniem
sztuczne sieci neuronowe są wykorzystywane.
Obecnie w wyrażeniu "sztuczne sieci neuronowe", określającym
software'ową lub (rzadziej) hardware'ową implementację matematycznego
modelu sieci neuronowej, najczęściej pomija się przymiotnik "sztuczne",
mówiąc po prostu "sieci neuronowe". My również w niniejszej instrukcji
przyjmiemy taką konwencję.
II. PODSTAWOWE POJĘCIA
1. Sieć neuronowa i jej elementy składowe
Sieć neuronowa
Siecią neuronową nazywamy układ wzajemnie połączonych
podstawowych elementów nazywanych neuronami.
Model neuronu
Neuron jest elementem statycznym posiadającym N wejść i jedno wyjście.
Został przedstawiony na rysunku 1a. Sygnał wyjściowy neuronu zależy od
sygnałów wejściowych i wyraża się następującym wzorem 1 :
1
N
yf
=
wx b
+
(1)
jj
j
=
gdzie:
y
- sygnał wyjściowy neuronu,
x x
1 , , , K
x N
- sygnały wejściowe neuronu,
f (⋅
- funkcja aktywacji neuronu,
K - wagi neuronu,
b - składnik stały (przesunięcie).
Wielkość występująca we wzorze (1) w nawiasie, będąca ważoną sumą
sygnałów wejściowych i składnika stałego, nazywana jest pobudzeniem neuronu
i oznaczana tutaj będzie symbolem v .
ww w N
1 , , ,
a )
b )
x 1
w 1
w 2
x 2
v
v
w T
f
y
f
y
x
M
x N
w N
b
b
Rys.1. Model neuronu
1 W literaturze spotykane są również inne, bardziej złożone, modele neuronu.
433434547.051.png 433434547.062.png 433434547.066.png 433434547.067.png 433434547.001.png 433434547.002.png 433434547.003.png 433434547.004.png 433434547.005.png 433434547.006.png
Dla uproszczenia wzoru (1) często zakłada się istnienie dodatkowego sygnału x 0
stale równego jedności, który wchodzi do ważonej sumy z wagą
0 = b
. Mamy
wtedy
0
N
yf
=
j
=
w jj
Przesunięcie b można więc traktować jako zerową wagę neuronu.
Po wprowadzeniu zapisu wektorowego sygnałów wejściowych i wag
x T
= [, ,
xx x
N
, w T
= [, , ,
ww w
12 K
N
] uzyskamy następującą postać wzoru
(1):
yf
= +
( wx )
T
b
(2)
Graficznie zależność (2) została przedstawiona na rysunku 1b. Sygnał
wektorowy x został na nim zaznaczony pogrubioną linią.
Funkcja aktywacji
Funkcja aktywacji neuronu może być dowolną (w ogólności nieliniową)
funkcją przekształcającą pobudzenie neuronu v w sygnał wyjściowy y
y f v
= ().
(3)
Przykłady takich funkcji zostały przedstawione na rys. 2
W sieciach neuronowych uczonych przy użyciu metod gradientowych
wykorzystuje się neurony, których funkcje aktywacji są różniczkowalne ze
względu na v . Spośród prezentowanych na rys.2. funkcji aktywacji cechę taką
posiadają funkcje a ), e ) i f ), a więc funkcja liniowa, tangens hiperboliczny i
funkcja sigmoidalna. Funkcje te ponadto charakteryzują się cechą wygodną ze
względów obliczeniowych. Mianowicie wartości ich pochodnych w prosty
sposób zależą od wartości tych funkcji. Dla funkcji a ), e ) i f ) mamy
odpowiednio:
y f vv
= =
=
f v
()
1
1
2
yf v v
() ()
th
=+−
f v
() ( )( )
1
y y
1
(4)
1
yf v
= =
=−
fv y y
() ( )
1
v
1
+
e
12 K
()
= =
()
433434547.007.png
a )
y
d )
y
1
−1
0
v
0
1
v
−1
y v
=
gdy v
vyv
gdy v
1
< −
>
1
1
y
=
1
1
b )
y
e )
1
y
1
0
v
0
v
−1
−1
y
= =
sgn( )
1
gdy v
gdy v
<
0
y
= =
th( )
v
1
1
+
e
e
v
v
1
0
c )
y
f )
1
y
1
0,
0
v
0
v
==
0
gdy v
gdy v
<
0
y
=
1
1
0
1
+
e
v
Rys. 2. Przykłady funkcji aktywacji neuronu
v
yv
1 ()
433434547.008.png 433434547.009.png 433434547.010.png 433434547.011.png 433434547.012.png 433434547.013.png 433434547.014.png 433434547.015.png 433434547.016.png 433434547.017.png 433434547.018.png 433434547.019.png 433434547.020.png 433434547.021.png 433434547.022.png 433434547.023.png 433434547.024.png 433434547.025.png 433434547.026.png 433434547.027.png 433434547.028.png 433434547.029.png 433434547.030.png 433434547.031.png 433434547.032.png 433434547.033.png 433434547.034.png 433434547.035.png 433434547.036.png 433434547.037.png 433434547.038.png
Warstwa neuronów
Często wygodnie jest wydzielić spośród wszystkich neuronów sieci
pewne grupy nazywane warstwami. Cechą wspólną neuronów należących do
jednej warstwy jest to, że posiadają te same sygnały wejściowe.
Rozpatrzmy warstwę złożoną z M neuronów - rysunek 3a.
a )
x 1
f
y 1
b 1
b )
x 2
f
y 2
v
x
W
f
y
b 2
b
M
M M
x N
f
y M
b M
Rys.3. Warstwa neuronów
Sygnał wyjściowy i -tego neuronu dany jest wzorem
N
0
yf
=
wxb i
+
⎟ =
,
12
, , K , .
M
(5)
i
ij j
i
j
=
Podobnie jak wcześ
niej możemy zastosować zapis macierzowy. Jeśli
wprowadzimy oznaczenia:
x
x
1
2
y
y
1
2
ww
L
L
M M OM
L
11
12
w
N
N
b
b
1
2
ww
w
x
=
,
y
=
,
W
=
21
22
2
,
b
=
(6)
M M
M
x
y
ww
w
b
N
M
MM
1
2
N
M
uzyskamy macierzową postać równania (5)
y
= +
f (
Wx b
).
(7)
Ilustruje to rysunek 3b.
1
433434547.039.png 433434547.040.png 433434547.041.png 433434547.042.png 433434547.043.png 433434547.044.png 433434547.045.png 433434547.046.png 433434547.047.png 433434547.048.png 433434547.049.png 433434547.050.png 433434547.052.png 433434547.053.png 433434547.054.png 433434547.055.png 433434547.056.png 433434547.057.png 433434547.058.png 433434547.059.png 433434547.060.png 433434547.061.png 433434547.063.png 433434547.064.png 433434547.065.png
Zgłoś jeśli naruszono regulamin