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.
40 Rozdział 3. Sieci dwuwarstwowe MLP<br />
na poprawkę dowolnego neuronu <strong>sieci</strong>, Czytelnik powinien zauważyć w nim część<br />
odpowiadającą błędowi tego neuronu.<br />
Oszacowanie błędu k-tego neuronu w pierwszej warstwie <strong>sieci</strong> d (1)<br />
k<br />
, zapisane<br />
wcześniej przybliżonym wzorem (3.2), można teraz uściślić uzupełniając odpowiednimi<br />
pochodnymi funkcji celu:<br />
d (1)<br />
k<br />
=<br />
=<br />
K 2 ∑<br />
k 2 =1<br />
K 2 ∑<br />
k 2 =1<br />
w (2)<br />
k 2 ,k · d(2) k 2 · f ′ ( u (2)<br />
k 2<br />
)<br />
= (3.11)<br />
w (2)<br />
k 2 ,k · e(2) k 2<br />
Powyższy przykład pokazał prostotę i piękno teorii uczenia <strong>sieci</strong> <strong>neuronowych</strong>.<br />
Wyprowadzone z początku intuicyjnie wzory – zarówno wzór na poprawkę wag<br />
dowolnego neuronu, jak i wzór na oszacowanie błędu neuronu warstwy ukrytej –<br />
znalazły potwierdzenie w skomplikowanej teorii optymalizacji leżącej u podstaw<br />
uczenia <strong>sieci</strong>.<br />
Schematyczny zapis fazy backpropagation pojedynczego kroku uczenia możemy<br />
teraz przedstawić jak na rys. 3.8.<br />
X S1<br />
1<br />
<br />
1<br />
X S+11<br />
W<br />
1<br />
S+1K<br />
1<br />
dW SK<br />
1<br />
1<br />
1<br />
U K 1<br />
1<br />
1<br />
E K 1<br />
1<br />
f <br />
f<br />
'<br />
1<br />
1<br />
1<br />
<br />
Y K 1<br />
1<br />
D K 1<br />
1<br />
2<br />
2<br />
W<br />
X K <br />
1<br />
BP<br />
K1 K2<br />
2<br />
dW K +1 K<br />
1 2<br />
2<br />
U K 1<br />
E<br />
2<br />
2<br />
K21<br />
f <br />
Rysunek 3.8. Pojedynczy krok uczenia <strong>sieci</strong> dwuwarstwowej - schemat dokładny<br />
f<br />
'<br />
2<br />
Y K 1<br />
2<br />
2<br />
D K 1<br />
2<br />
Szkielet funkcji uczącej sieć dwuwarstwową w pełnej wersji można zaś uzupełnić<br />
do następującej postaci:<br />
function [ W1po , W2po ] = ucz2 ( W1przed , W2przed , P , T , n )<br />
% funkcja uczy sieć dwuwarstwową na podanym ciągu uczącym (P,T)<br />
% przez zadaną liczbę epok (n)<br />
% wersja dokładna<br />
% ...<br />
liczbaPrzykladow = ...<br />
wierW2 = ... % liczba wierszy macierzy W2<br />
W1 = W1przed ;