19.01.2015 Views

Poznawanie własności sieci neuronowych w środowisku MATLAB

Poznawanie własności sieci neuronowych w środowisku MATLAB

Poznawanie własności sieci neuronowych w środowisku MATLAB

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.1. Inicjalizacja <strong>sieci</strong> 27<br />

cych badany obiekt lub zjawisko, będziemy oznaczać przez X. Po rozszerzeniu o<br />

wejście zerowe x 0 = −1 stanie się on wektorem wejściowym pierwszej warstwy<br />

X (1) = [x 0 , x 1 , . . . , x S ] T , o wymiarze S + 1 × 1. Macierz wag pierwszej warstwy<br />

<strong>sieci</strong> jest zbudowana, podobnie, jak w przypadku <strong>sieci</strong> jednowarstwowej, z wektorów<br />

kolumnowych wag kolejnych neuronów. Tym razem jednak, pierwszy jej<br />

wiersz, indeksowany przez nas jako zerowy (drugi dolny indeks), zawiera wagi<br />

poszczególnych neuronów do wejścia progowego, czyli krótko ich biasy.<br />

[<br />

W (1) =<br />

W (1)<br />

1 W (1)<br />

2 · · · W 1 K 1<br />

]<br />

=<br />

⎡<br />

⎢<br />

⎣<br />

w (1)<br />

1,0 w (1)<br />

2,0 · · · w (1)<br />

K 1 ,0<br />

w (1)<br />

1,1 w (1)<br />

2,1 · · · w (1)<br />

K 1 ,1<br />

w (1)<br />

1,2 w (1)<br />

2,2 · · · w (1)<br />

K 1 ,2<br />

.<br />

. . .. .<br />

w (1)<br />

1,S<br />

w (1)<br />

2,S<br />

· · · w (1)<br />

K 1 ,S<br />

S+1×K 1<br />

(3.1)<br />

Przy implementacji następnych funkcji trzeba będzie pamiętać o tym, że program<br />

<strong>MATLAB</strong> indeksuje wiersze macierzy od 1, a nie on 0, jak np. język C++.<br />

Sieć dwuwarstwowa jest kaskadowym połączeniem warstwy pierwszej i drugiej.<br />

Pomimo tego, że jedną z głównych i podkreślanych zalet <strong>sieci</strong> <strong>neuronowych</strong> jest<br />

równoległe przetwarzanie danych, to jednak architekturę rozważanych właśnie<br />

wielowarstwowych <strong>sieci</strong> jednokierunkowych (Multi Layer Perceptron – MLP) możemy<br />

określić jako równoległo-szeregową. W jednej warstwie rzeczywiście sygnały<br />

przetwarzane są równolegle przez wszystkie neurony, jednak z jednej warstwy do<br />

kolejnej przesyłane są szeregowo. Zobaczymy później, że kolejne warstwy po kolei<br />

upraszczają zadanie, które ma do wykonania sieć. Wiele badań dowodzi, że jest<br />

to sposób działania zbliżony do procesów, zachodzących w naszym mózgu ([1]),<br />

szczególnie tych związanych z percepcją. W mózgu występuje jednak dodatkowo<br />

bardzo wiele połączeń zwrotnych. Sprawiają one, ze <strong>sieci</strong> <strong>sieci</strong> biologiczne są układami<br />

dynamicznymi o wielkich możliwościach przetwarzania i kojarzenia sygnałów.<br />

Sieci rekurencyjne wykraczają jednak daleko poza zakres niniejszej książki.<br />

Pełny model <strong>sieci</strong> dwuwarstwowej przedstawia rys. 3.3. Wektor wyjść warstwy<br />

pierwszej, po rozszerzeniu o wejście progowe, staje się wektorem wejść do warstwy<br />

drugiej. Macierz wag warstwy drugiej, konstruowana w analogiczny sposób, jak<br />

macierz wag warstwy pierwszej, ma wymiar K 1 + 1 × K 2 . Wszystkie wielkości<br />

odnoszące się do neuronów drugiej warstwy <strong>sieci</strong> oznaczamy indeksem górnym<br />

(2).<br />

Funkcja inicjująca sieć dwuwarstwową o S wejściach, K 1 neuronach w pierwszej<br />

i K 2 neuronach w drugiej warstwie zawiera zaledwie dwie linie kodu, w których<br />

⎤<br />

⎥<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!