Next: Generalizacja
Up: Sztuczne sieci neuronowe (ANN)
Previous: Sztuczne sieci neuronowe (ANN)
Spis tresci
Skorowidz
Rysunek:
Schemat sieci neuronowej z jedną warstwą ukrytą
|
Na rysunku 5.2 wagę połączenia przewodzącego pobudzenie od -tego do -tego neuronu w -tej warstwie oznaczono . Suma pobudzeń docierających w danej chwili do -tego neuronu wyniesie
. Przetwarzanie w neuronie polega na odjęciu od tej sumy charakteryzującego neuron progu i podziałaniu na wynik nieliniową funkcją :
|
(5.3) |
W oryginalnym modelu Mc Culloha i Pittsa z roku 1943,
była funkcją progową:
Aktualnie najczęściej stosowaną formą nieliniowości jest funkcja logistyczna
Tak więc działanie sieci z rys. 5.2 wygląda następująco:
- Sygnał wejściowy
podawany jest na neurony warstwy wejściowej.
- Aktywacja każdego z neuronów warstwy ukrytej obliczana jest na podstawie równania 5.3. Dla przykładu dla ,,środkowego'' neuronu
- Aktywacja neuronów warstwy wyjściowej, czyli odpowiedź sieci na sygnał , obliczana jest analogicznie jak w poprzednim kroku, tylko sygnały wejściowe zastęują obliczone aktywacje neuronów warstwy ukrytej.
,,Inteligencja'' sieci zawarta jest w wagach 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
.
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:
- Ustalamy architekturę sieci:
- rozmiar warstwy wejściowej jest zwykle zdeterminowany przez rozmiar wektora danych; np w przypadku zapisu pisanych odręcznie liter w postaci obrazów o rozmiarach 15x15 pixeli, rozmiar warstwy wejściowej wyniesie 225 neuronów,
- rozmiar i ilość warstw ukrytych są problemem otwartym; najczęściej używamy jednej warstwy ukrytej, której rozmiar dobieramy empirycznie,
- rozmiar warstwy wyjściowej zależy od sposobu kodowania informacji, którą chcemy na niej odczytywać; w przypadku rozpoznawania dużych liter alfabetu polskiego najlepiej wybrać 35 neuronów wyjściowych: literę ,,A'' reprezentować będzie jedynka na pierwszym neuronie i zera na pozostałych, ,,B'' -- jedynka na drugim neuronie itd.
- Inicjalizujemy wagi połączeń 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ć.
- Wybrany losowo ze zbioru uczącego wektor prezentujemy na wejściu sieci i obliczamy odpowiedź
wyjść.
- Wartości odczytane z neuronów wyjściowych
wyjść porównujemy z ,,prawidłową odpowiedzią'' . Błąd średniokwadratowy obliczamy jako
wyjść |
(5.4) |
- Modyfikujemy wagi połączeń kolejnych warstw proporcjonalnie do ich wkładu w dany wynik (propagacja wsteczna błędu)5.2.
- 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: Generalizacja
Up: Sztuczne sieci neuronowe (ANN)
Previous: Sztuczne sieci neuronowe (ANN)
Spis tresci
Skorowidz
Piotr J. Durka
2004-01-05