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.

28 Rozdział 3. Sieci dwuwarstwowe MLP<br />

x <br />

x 1<br />

x 2<br />

<br />

x S<br />

0<br />

1<br />

1<br />

w k ,1<br />

1<br />

1<br />

w k ,0<br />

w k ,2<br />

<br />

1<br />

w k , S<br />

x <br />

<br />

<br />

0<br />

1<br />

y<br />

y<br />

y<br />

<br />

<br />

x<br />

x<br />

<br />

1 2<br />

1 1<br />

<br />

1 2<br />

k k<br />

<br />

x<br />

<br />

1 2<br />

K1 S2<br />

2<br />

w k ,1<br />

<br />

<br />

2<br />

w k ,0<br />

2<br />

w k , k<br />

2<br />

w k , S 2<br />

Rysunek 3.3. Obie warstwy <strong>sieci</strong> dwuwarstwowej<br />

<br />

<br />

2<br />

y 1<br />

2<br />

y k<br />

2<br />

y K 2<br />

tworzone są macierze losowych wag o odpowiednich wymiarach.<br />

function [ W1 , W2 ] = init2 ( S , K1 , K2 )<br />

% funkcja tworzy sieć dwuwarstwową<br />

% i wypełnia jej macierze wag wartościami losowymi<br />

% z zakresu od -0.1 do 0.1<br />

% parametry: S - liczba wejść do <strong>sieci</strong> (wejść warstwy 1)<br />

% K1 - liczba neuronów w warstwie 1<br />

% K2 - liczba neuronów w warstwie 2 (wyjść <strong>sieci</strong>)<br />

% wynik: W1 - macierz wag warstwy 1 <strong>sieci</strong><br />

% W2 - macierz wag warstwy 2 <strong>sieci</strong><br />

W1 = ...<br />

W2 = ...<br />

3.2. Symulacja działania <strong>sieci</strong><br />

Zadanie 5. Napisz funkcję, która obliczy wyjście Y dwuwarstwowej <strong>sieci</strong> o macierzach<br />

wag W 1 i W 2 jako odpowiedź na wektor sygnałów wejściowych X podany<br />

na jej wejście. Neurony obu warstw <strong>sieci</strong> mają sigmoidalną unipolarną funkcję aktywacji<br />

o współczynniku nachylenia równym 5. Nagłówek funkcji dany jest jako:<br />

function [ Y1 , Y2 ] = dzialaj2 ( W1 , W2 , X )<br />

Jak widać, wynikiem funkcji są wektory wyjściowe obu warstw <strong>sieci</strong>. W zasadzie<br />

funkcja powinna podawać jedynie wyjścia drugiej warstwy, jako odpowiedź<br />

całej <strong>sieci</strong>. Jednak, jak zobaczymy później, wektor wyjść warstwy pierwszej, będzie<br />

nam potrzebny podczas uczenia <strong>sieci</strong>.<br />

Obliczanie wyjścia <strong>sieci</strong> dwuwarstwowej przedstawione jest schematycznie na<br />

rys. 3.4. Dla ułatwienia przy macierzach podano ich rozmiary. Po zaimplemento-

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

Saved successfully!

Ooh no, something went wrong!