Witam. Piszę sieć neuronową ze wsteczną propagacją korzystając z pomocy kilku podobnych postów na tym forum i podanych tam źródeł ale kilka kwestii wymaga według mnie uściślenia.
-
Błąd warstwy ukrytej. Był już taki temat na forum i odpowiedzi pozwoliły mi wreszcie zrozumieć o co "kaman" ale jednej kwestii nie rozumiem - czy błąd dla warstwy ukrytej wyliczam ze starymi wagami warstwy wyjściowej, czy najpierw mam je zmodyfikować i dopiero wtedy zająć się warstwą ukrytą? pÓÓÓÓki co moja warstwa wyjściowa wylicza sobie ten błąd mnożąc błąd swojego wyjścia przez wszystkie wagi po kolei i zapisując wynik w tablicy, następnie tablice ze wszystkich neuronów wyjściowych są zbierane i wartości z tych samych pozycji są dodawane i tak powstałe "cosie" są rozsyłane do odpowiednich neuronów warstwy ukrytej. i to jest drugi problem - czy te wyliczone "cosie" to są wartości odpowiedzi oczekiwanych od warstwy ukrytej czy może jest to od razu wyliczony błąd tej warstwy? Nigdzie nie mogę się tego dowiedzieć...
-
Obliczanie zmian wag. Według wzorów jakie znalazłem wygląda tak:
wartość danej wagi + ((współczynnik uczenia * błąd wyjścia tego neuronu) * wartość jaka ostatnio była na tym wejściu do którego obliczamy nową wagę).
I tu jest moje drugie pytanie - wyliczona wartość jest nową wagą, czy raczej mam ją dodać / odjąć od obecnej wartości?
- Obliczanie błędu. Takie proste że "ścisłowcom" nawet nie przyjdzie do głowy że można się zastanawiać co tu od czego jest odejmowane? odpowiedź oczekiwana od otrzymanej czy na odwrót? No ja się właśnie zastanawiam bo niby taki szczegół a jednak ma znaczenie ponoć ;-P
Z góry dziękuje za nie złoszczenie się na nooba i odpowiedzi na te niebagatelne pytania.