2. Architektury sztucznych sieci neuronowych

Transkrypt

2. Architektury sztucznych sieci neuronowych
- 18 -
2. Architektury sztucznych sieci neuronowych
2.1. Matematyczny model neuronu i prostej sieci
neuronowej
Sztuczne sieci neuronowe są modelami inspirowanymi przez
strukturę i zachowanie prawdziwych neuronów. Podobnie jak mózg mogą
one rozpoznawać obrazy, przetwarzać dane i uczyć się. Analogicznie do
budowy mózgu, którego podstawowym elementem jest komórka nerwowa,
tak dla sztucznych sieci neuronowych jest sztuczny neuron.
Pierwszą formalną definicję modelu neuronu podali McCulloch
i Pitts w 1943 r. Charakteryzował się tym, iż posiadał wiele wejść i jedno
wyjście oraz był dwuwartościowym elementem progowym. Sygnały
wejściowe xi, gdzie i = 1, 2, ..., n, oraz sygnał wyjściowy y mogą
przyjmować wartości z pewnego ograniczonego przedziału [7]:
x i ∈[− 1,1] ,
y ∈ [− 1,1] .
- 19 -
x1
w1
w2
x2
∑
y
wn
xn
Rys. 2.1.
Pojedynczy element sieci neuronowej
Istotnym elementem tego modelu jest sumowanie sygnałów wejściowych
z odpowiednią wagą i poddanie otrzymanej sumy działaniu funkcji
aktywacji f [2]. Zależność sygnału wyjściowego od wejściowego może być
liniowa, chociaż istnieją także inne przypadki.
n
y = ∑ wixi
(2.1)
i =1
gdzie: wi – wagi synaptyczne, które podlegają modyfikacji w trakcie
procesu uczenia
Sygnały wejściowe i wagi synaptyczne tworzą wektory
X = <x1 x2 ... xn>T ,
W = <w1 w2 ... wn>T.
Przy takich założeniach odpowiedź neuronu wyrazić można jako skalarny
iloczyn wektora wejść i wektora wag:
y = WT . X.
(2.2)
Neurony mają następujące właściwości:
• każdy neuron otrzymuje wiele sygnałów wejściowych i wyznacza na ich
podstawie swoją „odpowiedź” to znaczy jeden sygnał wyjściowy,
- 20 -
• z każdym oddzielnym wejściem neuronu związany jest parametr
nazywany wagą (weight). Określa on stopień ważności informacji
docierających tym właśnie wejściem,
• sygnały wejściowe (pomnożone przez odpowiednie wagi) są w neuronie
sumowane, dając pewien pomocniczy sygnał wewnętrzny zwany
łącznym pobudzeniem neuronu (net value),
• do tak utworzonej sumy
sygnałów dodaje się niekiedy pewien
dodatkowy składnik niezależny od sygnałów wejściowych, nazywany
progiem (bias) [19].
y1
y2
w (11) w (21) ... w (n1)
w (12 ) w (22 ) ... w (n2 )
yk
w (1k ) w (2k ) ... w (nk )
x1
x2
xn
Rys. 2.2.
Warstwa neuronów jako najprostsza sieć
Łącząc pojedyncze neurony w warstwy możemy utworzyć najprostszą sieć. W tym przypadku każdy neuron otrzymuje ten sam zestaw
sygnałów wejściowych i posiada własny wektor wag. Sygnał wyjściowy
k – tego neuronu yk wynosi:
n
yk = ∑ w i ⋅ xi
(2.3)
i =1
Można go także zapisać w postaci wektorowej
y = W kT ⋅ X
(2.4)
- 21 -
Działanie tej sieci polega na tym, że pojawienie się określonego wektora
wejściowego X powoduje powstanie sygnałów wyjściowych na wszystkich
neuronach wchodzących w skład rozważanej warstwy. Oczekuje się przy
tym, maksymalnego sygnału wyjściowego na tym neuronie, którego wektor
wag najbardziej przypomina wektor sygnałów wejściowych X. Jedną
z podstawowych własności rozważanej sieci jest to, że macierz W zadaje
k
określone odwzorowanie liniowe sygnału X ∈ R n w sygnał Y ∈ R .
Odwzorowanie to może być w zasadzie dowolne [7].
O zachowaniu pojedynczego neuronu decyduje wektor wag Wk
a o działaniu sieci – macierz wag W. Bardzo trudne jest ustalenie wektora
Wk lub macierzy W odpowiednich dla rozwiązywania za pomocą sieci
neuronowej jakiegoś złożonego zadania. Aby to ułatwić należy stary model
neuronu uzupełnić o dwa dodatkowe elementy: procesor zmiany wag
i detektor błędu. Tak uzupełniony neuron nazywa się ADALINE
(ADAptive LINear Element) [7]. Wiąże on sygnał wejściowy i wyjściowy
pewną zależnością. Funkcja f nie musi być zadana w sposób jawny;
wystarczy, że dla każdego konkretnego wektora wejściowego potrafi się
wskazać konkretną wartość; stanowiącą żądanie odnośnie sygnału wyjściowego. Wraz z każdym wektorem wejściowym X do elementu sieci podawany jest sygnał z. Jest to wymagana odpowiedź neuronu na sygnał X.
Neuron odpowiada sygnałem y (wzór 2.2), przy czym jeśli neuron nie jest
nauczony, sygnał ten jest inny niż wymagany (y ≠ z). Wewnątrz neuronu
ADALINE znajduje się blok oceniający (który składa się z inwertora oraz
sumatora) wielkość błędu.
δ = z – y.
(2.5)
- 22 -
x1
w1
x2
w2
xn
w3
Σ
δ
y
Σ
z
Rys. 2.3.
Struktura neuronu ADALINE [7]
Na podstawie sygnału błędu δ oraz wektora wejściowego X możliwe jest
takie skorygowanie wektora wag W, by neuron lepiej realizował zadaną
funkcję y = f (X).
Łącząc pojedyncze elementy ADALINE można utworzyć sieć zwaną
MADALINE (Many ADALINE). Sieci te były pierwszymi efektywnie
zastosowanymi sieciami neuronowymi i mimo ogromnego postępu
notowanego w tej dziedzinie pozostają wciąż bardzo użytecznym
narzędziem. Jednak możliwości tej sieci są ograniczone ponieważ
odwzorowania X => Y jakie może realizować sieć MADALINE są
wyłącznie odwzorowaniami liniowymi.
Innym rozwiązaniem, które wniosło nowy element w stosunku do
omówionych wcześniej sieci ADALINE był PERCEPTRON zbudowany
- 23 -
przez Rosenblatta. Jest to nieliniowy element przetwarzający informację
w każdym neuronie sieci. Opisuje go równanie:
y = ϕ (e)
(2.6)
gdzie: ϕ – progowa funkcja aktywacji
e – łączne pobudzenie neuronu.
Można zapisać sygnał e jako sumę wag w i sygnałów wejściowych x
n
e = ∑ wi ⋅ xi
(2.7)
i =1
lub uzupełnioną dodatkowo o składnik stały – bias (przesuwa funkcję
o pewną wartość) [7].
n
e = ∑ wi ⋅ xi + b
(2.8)
i =1
zapis wektorowy:
e = WT . X.
x1
xi
xn
Rys. 2.4.
(2.9)
w1
wi
wn
Σ
e
ϕ
y
bias
b=1
Nieliniowy neuron z biasem o sygnale wejściowym X [3]
- 24 -
Te funkcje scalające wejściowe sygnały w łączne pobudzenie e używane są
w perceptronie jedynie jako wstępny etap przetwarzania informacji.
O specyficznych właściwościach perceptronu decyduje funkcja aktywacji
ϕ. Jest to funkcja nieliniowa, która na podstawie sygnału wejścia daje
określony sygnał wyjściowy (przy sieciach ADALINE zastosowany był
zapis liniowej funkcji aktywacji f w odróżnieniu od funkcji nieliniowej ϕ).
Wczesne modele neuronowe wykorzystywały prostą funkcję progową.
ϕ (e) =
1
e≥0
gdy
(2.10)
0
gdy
e<0
ϕ (e)
1
e
0
Rys. 2.5. Funkcja progowa I (jednostkowa)
lub
ϕ (e) =
1
gdy
e≥0
(2.11)
-1
gdy
e<0
ϕ (e)
1
0
-1
Rys. 2.6.
Funkcja progowa (bipolarna) II [8]
e
- 25 -
Jeżeli ważona suma sygnałów wejściowych jest mniejsza od wartości
progowej, to wyjście neuronu jest równe 0 (-1), w przeciwnym przypadku
jest ono równe 1. W neuronie ADALINE funkcja aktywacji ϕ ma postać
liniową
ϕ (e)
1
0
Rys. 2.7.
e
Funkcja liniowa [5]
Większość współczesnych modeli wykorzystuje sigmoidalną funkcję
aktywacji. Można ją zdefiniować jako funkcję ciągłą o wartościach
rzeczywistych. Najczęściej stosowaną funkcją sigmoidalną jest funkcja
logistyczna
ϕ (e) =
1
1 + exp (− β ⋅ e)
(2.12)
Zaletą tej funkcji jest prosta i łatwa do obliczenia wartość jej pochodnej,
którą wykorzystuje się przy uczeniu sieci (rozdział 3)
dϕ
= ϕ (e) ⋅ (1 − ϕ (e))
de
(2.13)
- 26 -
ϕ (e)
1,0
0,8
0,6
0,5
0,4
0,2
-4
Rys. 2.8.
Niekiedy
używana
jest
0
-2
2
e
4
Funkcja logistyczna [5]
funkcja
sigmoidalna,
taka
jak
tangens
hiperboliczny.
ϕ (e) = tg h (β e) =
exp (βe) − exp (−β e)
exp (βe) + exp (−β e)
(2.14)
ϕ (e)
1,0
0,75
0,5
0,25
-4 -2
0 2
- 0,25
4
- 0,5
- 0,75
- 1,0
Rys. 2.9.
Tangens hiperboliczny [5]
e
- 27 -
Tu także jest prosta pochodna
dϕ
= (1 + ϕ (e) ) (1 − ϕ (e) ).
de
(2.15)
Ponadto występuje jeszcze bardzo wiele innych nieliniowości, spośród
których wymienić należy jeszcze:
• funkcję sinus – stosuje się, aby uzyskać wartość z przedziału
ϕ (e) ∈ [-1,1] [7].
ϕ (e) = sin (βe)
(2.16)
• funkcję signum
ϕ (e) =
1
gdy
e>0
0
gdy
e=0
-1
gdy
e<0
(2.17)
Kształt funkcji ma mały wpływ na ostateczną skuteczność sieci ale może
mieć wpływ także na szybkość uczenia. Pokazane funkcje aktywacji
pozwalają na wygodną analizę matematyczną zachodzących zjawisk, łatwą
realizację techniczną i wygodne modelowanie.
W tym podrozdziale opisane zostały najprostsze modele sieci
neuronowych. Stanowią one filar, podstawę rozważanej w tej pracy
dziedziny nauki, dlatego warto o nich wspomnieć. W dalszej części
rozdziału pokazane zostaną dużo bardziej złożone struktury sztucznych
sieci neuronowych jak np. sieci wielowarstwowe jednokierunkowe, sieci
komórkowe, sieci rezonansowe itp.
- 28 -
2.2. Sieci wielowarstwowe jednokierunkowe
Sieć wielowarstwowa jednokierunkowa składa się ze zbioru
neuronów, logicznie rozmieszczonych w dwóch lub więcej warstwach.
Wyróżnia się warstwę wejściową zbierającą informacje ze świata
zewnętrznego; warstwę wyjściową wysyłającą sygnał oraz warstwy ukryte
pośredniczące
pomiędzy
warstwami
wejściowymi
i
wyjściowymi.
Określenie „jednokierunkowe” oznacza, że informacja przepływa tylko od
wejścia do wyjścia, czyli sygnały wejściowe dochodzące do neuronów
w każdej warstwie za wyjątkiem warstwy wejściowej, pochodzą wyłącznie
od sygnałów wyjściowych neuronów z warstw poprzednich, a sygnały
wyjściowe z tych neuronów dochodzą wyłącznie do neuronów
w następnych warstwach (z wyjątkiem warstwy wyjściowej) [5]. W sieciach tych neurony warstwy poprzedniej łączą się z wszystkimi neuronami
warstwy następnej. Sygnał wyjściowy zależy tylko od aktualnych wartości
sygnałów wejściowych. Aby utworzyć złożoną strukturę sieci wielowarstwowej należy zacząć od pojedynczej warstwy.
warstwa neuronów
wejście
x1
w1,1
Σ
e1
ϕ
y1
e2
ϕ
y2
ek
ϕ
yk
b1
1
Σ
x2
b2
1
xn
wk,n
Σ
bk
1
Rys. 2.10.
Pojedyncza warstwa neuronów [3]
w1(1,1)
Σ
ϕ1
b1(1)
1
e1(2)
ϕ1
y1(1) w2(1,1)
y1(2)
Σ
Σ
x(n) w
1( k1 , n )
Σ
1
1
b2(1)
1
e2(2)
ϕ2
y2(1) w3(1,1)
y2(2)
Σ
Σ
b2(2)
1
e1( k )
b1( k )
1
ϕ2
ϕ1
y1( k )
Σ
1
w 2( k
,k1 )
2
b3(1)
1
e3(2)
ϕ3
y3(1)
ϕ3
y3(2)
b3(2)
1
e 2( k
b 2( k
1
e3(1)
2
)
2
)
ϕ2
y 2( k
2
)
w 3( k
Σ
,k 2 )
3
e3( k
b 3( k
1
3
3
)
ϕ3
y 3( k
3
)
)
- 29 -
b1(2)
1
e2(1)
y = ϕ (WT . X +B)
Σ
x(2)
e1(1)
3-cia warstwa neuronów
Sygnał wyjściowy pojedynczej warstwy wynosi:
x(1)
Po połączeniu kilku warstw powstaje sieć:
(2.18)
Rys. 2. 11. Schemat sieci neuronowej składającej się z 3 warstw [3]
wejście 1-sza warstwa neuronów 2-ga warstwa neuronów