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