Próbuję zrozumieć, jak działa propagacja wsteczna dla warstwy wyjściowej softmax / cross-entropii.
Funkcja błędu entropii krzyżowej to
z i jako celem i wyjściem odpowiednio w neuronie . Suma jest nad każdym neuronem w warstwie wyjściowej. jest wynikiem funkcji softmax:
Ponownie, suma jest nad każdym neuronem w warstwie wyjściowej, a jest wejściem do neuronu :
Jest to suma po wszystkich neuronów w poprzedniej warstwy odpowiadającego mocy i masy wobec neuronów plus polaryzacji .
Teraz, aby zaktualizować wagę która łączy neuron w warstwie wyjściowej z neuronem w poprzedniej warstwie, muszę obliczyć częściową pochodną funkcji błędu za pomocą reguły łańcucha:
z jako wejście do neuronu .
Ostatni termin jest dość prosty. Ponieważ między i występuje tylko jedna waga , pochodna jest następująca:
Pierwszy termin to wyprowadzenie funkcji błędu w odniesieniu do wyjścia :
Środkowy składnik to wyprowadzenie funkcji softmax w odniesieniu do jej wejścia jest trudniejsze:
Powiedzmy, że mamy trzy neurony wyjściowe odpowiadające klasom a następnie o b = s o f t m a x ( b ) wynosi:
i jego wyprowadzenie przy użyciu reguły ilorazowej:
=softmax(b)-softmax2(b)=ob-o 2 b =ob(1-ob) Powrót do terminu średniego w przypadku propagacji wstecznej oznacza to: ∂oj
Zestawiam to wszystko razem
co oznacza, że jeśli celem tej klasy jest , to nie zaktualizuję wag dla tego. To nie brzmi dobrze.
Ale nie mogę tego zrozumieć. Nie jestem nawet pewien, czy to jest przyczyną mojego błędu, dlatego publikuję wszystkie moje obliczenia. Mam nadzieję, że ktoś może mi wyjaśnić, gdzie coś mi brakuje lub idzie źle.