next up previous contents index
Next: Generalizacja Up: Sztuczne sieci neuronowe (ANN) Previous: Sztuczne sieci neuronowe (ANN)   Spis tresci   Skorowidz

Sieci warstwowe z propagacją wsteczną

Rysunek: Schemat sieci neuronowej z jedną warstwą ukrytą

Na rysunku 5.2 wagę połączenia przewodzącego pobudzenie od $ j$-tego do $ i$-tego neuronu w $ k$-tej warstwie oznaczono $ w_{ij}^k$. Suma pobudzeń docierających w danej chwili do $ i$-tego neuronu wyniesie $ \sum_{j} w_{ij} n_j$. Przetwarzanie w neuronie polega na odjęciu od tej sumy charakteryzującego neuron progu $ \mu_i$ i podziałaniu na wynik nieliniową funkcją $ \Phi$:

$\displaystyle n_i=\Theta\left(\sum_{j} w_{ij}^k n_j - \mu_i\right)$ (5.3)

W oryginalnym modelu Mc Culloha i Pittsa z roku 1943, $ \Theta(\cdot)$ była funkcją progową:

$\displaystyle \Theta(x)=\begin{cases}0 \ \text{dla}\ x < 0\\ 1\ \text{dla}\ x\ge 0
\end{cases}.
$

Aktualnie najczęściej stosowaną formą nieliniowości jest funkcja logistyczna

$\displaystyle \Theta(x)=\dfrac{1}{1+e^{-\beta x}}
$

Tak więc działanie sieci z rys. 5.2 wygląda następująco: ,,Inteligencja'' sieci zawarta jest w wagach $ w_{ij}^k$ połączeń między kolejnymi warstwami. Clou problemu polega na dobraniu tych wag tak, by realizowały interesujące nas odwzorowanie.

W klasycznym przypadku, nieznane odwzorowanie mamy zadane z pomocą zestawu ,,przykładów'' postaci (wektor wejściowy, prawidłowa klasyfikacja) -- oznaczmy je $ (\vec{x}^i, \vec{r}^i)$. Rozważmy dla przykładu konstrukcję sieci rozpoznającej pisane odręcznie litery. Zestaw przykładów stanowić będą mapy bitowe obrazów reprezentujących litery i ich prawidłowe klasyfikacje. Wagi dobierane są w procesie uczenia sieci. Cała procedura przebiega jak następuje:

  1. Ustalamy architekturę sieci:
  2. Inicjalizujemy wagi połączeń $ w_{ij}^k$ przypisując im małe liczby losowe -- warto zapamiętać, że w związku z tym każde uruchomienie tego samego algorytmu na tych samych danych może dać w wyniku inną sieć.
  3. Wybrany losowo ze zbioru uczącego wektor $ \vec{x}^l$ prezentujemy na wejściu sieci i obliczamy odpowiedź $ \vec{n}^$wyjść.
  4. Wartości odczytane z neuronów wyjściowych $ n_i^$wyjść porównujemy z ,,prawidłową odpowiedzią'' $ r_i^l$. Błąd średniokwadratowy obliczamy jako

    $\displaystyle \sum_i (n_i^$wyjść$\displaystyle -r_i^l)^2$ (5.4)

  5. Modyfikujemy wagi połączeń kolejnych warstw proporcjonalnie do ich wkładu w dany wynik (propagacja wsteczna błędu)5.2.
  6. Punkty 3-5 powtarzamy na losowo wybieranych przykładach aż do uzyskania zamierzonego efektu.
Ostatni punkt wymaga podjęcia wysoce nietrywialnej decyzji, od której m.in. zależeć będzie zdolność sieci do generalizacji wiedzy podanej w postaci przykładów.



Subsections
next up previous contents index
Next: Generalizacja Up: Sztuczne sieci neuronowe (ANN) Previous: Sztuczne sieci neuronowe (ANN)   Spis tresci   Skorowidz
Piotr J. Durka 2004-01-05