You are on page 1of 13

- 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 y
x2

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 yk

w (11) w (21) ... w (n1) w (12 ) w (22 ) ... w (n2 ) 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ć naj-


prostszą 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ścio-
wego. Wraz z każdym wektorem wejściowym X do elementu sieci poda-
wany 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 Σ y

xn w3

δ
Σ

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. (2.9)

x1
w1

wi e ϕ
xi Σ y

xn wn bias
b=1

Rys. 2.4. 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ą.

1 gdy e≥0
ϕ (e) = (2.10)
0 gdy e<0

ϕ (e)

0 e

Rys. 2.5. Funkcja progowa I (jednostkowa)

lub

1 gdy e≥0
ϕ (e) = (2.11)
-1 gdy e<0

ϕ (e)

0 e
-1

Rys. 2.6. Funkcja progowa (bipolarna) II [8]


- 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)

0 e

Rys. 2.7. 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

1
ϕ (e) = (2.12)
1 + exp (− β ⋅ e)

Zaletą tej funkcji jest prosta i łatwa do obliczenia wartość jej pochodnej,
którą wykorzystuje się przy uczeniu sieci (rozdział 3)


= ϕ (e) ⋅ (1 − ϕ (e)) (2.13)
de
- 26 -

ϕ (e)

1,0

0,8
0,6
0,5
0,4

0,2

-4 -2 0 2 4 e

Rys. 2.8. Funkcja logistyczna [5]

Niekiedy używana jest funkcja sigmoidalna, taka jak tangens


hiperboliczny.

exp (βe) − exp (−β e)


ϕ (e) = tg h (β e) = (2.14)
exp (βe) + exp (−β e)

ϕ (e)
1,0
0,75
0,5
0,25

-4 -2 0 2 4 e
- 0,25
- 0,5
- 0,75
- 1,0

Rys. 2.9. Tangens hiperboliczny [5]


- 27 -

Tu także jest prosta pochodna


= (1 + ϕ (e) ) (1 − ϕ (e) ). (2.15)
de

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
1 gdy e>0
ϕ (e) = 0 gdy e=0 (2.17)
-1 gdy e<0

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 sie-
ciach 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 wielo-
warstwowej należy zacząć od pojedynczej warstwy.

wejście warstwa neuronów

w1,1 e1 ϕ
x1 Σ y1
b1
1
e2 ϕ
x2 Σ y2
b2
1
ek ϕ
xn
wk,n Σ yk
bk
1
Rys. 2.10. Pojedyncza warstwa neuronów [3]
Po połączeniu kilku warstw powstaje sieć:

Sygnał wyjściowy pojedynczej warstwy wynosi:


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 3-cia warstwa neuronów

w1(1,1) e1(1) y1(1) w2(1,1) e2(1) y2(1) w3(1,1) e3(1) y3(1)


x(1) Σ ϕ1 Σ ϕ2 Σ ϕ3
b1(1) b2(1) b3(1)

y = ϕ (WT . X +B)
1 1 1
e1(2) y1(2) e2(2) y2(2) e3(2) y3(2)
x(2) Σ ϕ1 Σ ϕ2 Σ ϕ3

b1(2) b2(2) b3(2)


1 1 1

- 29 -
e1( k ) y1( k ) e 2( k )
y 2( k )
e3( k y 3( k )
)
x(n) w Σ
1
ϕ1 1
Σ
2
ϕ2 2
Σ
3
ϕ3 3

1( k1 , n )
w 2( k ,k1 )
w 3( k ,k 2 )
b1( k ) 2
b 2( k )
3
b 3( k )
1 2 3
1 1 1

(2.18)

You might also like