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.

14 Rozdział 2. Sieci jednowarstwowe<br />

(<br />

f b ′ (u) = . . . = β · 1 − y 2) (2.9)<br />

Sprawdzenie kształtu pochodnej pozostawiamy Czytelnikowi.<br />

Obliczenie wyjścia warstwy <strong>sieci</strong> neuronowej polega na obliczeniu wyjść wszystkich<br />

jej neuronów. Zakładamy, że wszystkie neurony w warstwie posiadają taką<br />

samą funkcję aktywacji – sigmoidalną unipolarną. Podobnie, jak w przypadku pobudzeń,<br />

wyjścia wszystkich neuronów danej warstwy <strong>sieci</strong> zostaną zebrane w jednym<br />

wektorze<br />

⎡<br />

Y =<br />

⎢<br />

⎣<br />

y 1<br />

y 2<br />

.<br />

y K<br />

⎤<br />

⎥<br />

⎦<br />

K×1<br />

⎡<br />

=<br />

⎢<br />

⎣<br />

f (u 1 )<br />

f (u 2 )<br />

.<br />

f (u K )<br />

⎤<br />

⎥<br />

⎦<br />

(2.10)<br />

Ostatecznie funkcja obliczająca wyjście całej warstwy <strong>sieci</strong> będzie zawierała<br />

zaledwie trzy linie kodu.<br />

function [ Y ] = dzialaj1 ( W , X )<br />

% funkcja symuluje działanie <strong>sieci</strong> jednowarstwowej<br />

% parametry: W - macierz wag <strong>sieci</strong><br />

% X - wektor wejść do <strong>sieci</strong><br />

% sygnał podany na wejście<br />

% wynik: Y - wektor wyjść <strong>sieci</strong><br />

% sygnał na wyjściu <strong>sieci</strong><br />

beta = 5 ;<br />

U = ... ;<br />

Y = ... ;<br />

Przyjęto współczynnik nachylenia funkcji aktywacji za równy 5, czego rezultatem<br />

będzie średnia stromość zbocza tej funkcji. Pozostawiamy Czytelnikowi<br />

uzupełnienie poniższego szablonu funkcji w taki sposób, aby mnożenia macierzy<br />

zapisać możliwie zwięźle i wykorzystać fakt, że wbudowane funkcje numeryczne<br />

<strong>MATLAB</strong>a operują na całych macierzach i wektorach. Odpowiedni zapis operacji<br />

mnożenia macierzy – unikanie zbędnych pętli for – ma wpływ nie tylko na<br />

elegancję zapisu, lecz również na wydajność. Funkcja dzialaj będą wykonywana<br />

wielokrotnie w pętlach podczas uczenia <strong>sieci</strong>. Wpływ wydajnej implementacji na<br />

szybkość procesu uczenia będzie szczególnie widoczny podczas uczenia <strong>sieci</strong> dwuwarstwowych<br />

o większych rozmiarach.

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

Saved successfully!

Ooh no, something went wrong!