Rzecz w tym:
Oblicz gradient w odniesieniu do warstwy wejściowej dla sieci neuronowej z jedną ukrytą warstwą, używając sigmoid dla wejścia -> ukryty, softmax dla ukrytego -> wyjścia, z utratą entropii krzyżowej.
Mogę przejść przez większość pochodnych za pomocą reguły łańcucha, ale nie jestem pewien, jak właściwie „połączyć” je razem.
Zdefiniuj niektóre notacje
, jest funkcją sigmoidalną
,
, jest funkcją softmax
, to prawdziwa etykieta jeden gorący wektor
Następnie regułą łańcucha
Poszczególne gradienty to:
Teraz musimy połączyć definicje razem. W pojedynczej zmiennej jest to łatwe, po prostu mnożymy wszystko razem. W wektorach nie jestem pewien, czy użyć mnożenia elementarnego czy mnożenia macierzy.
Gdzie to elementowe mnożenie wektorów, a to mnożenie macierzy. Ta kombinacja operacji jest jedynym sposobem, w jaki wydaje mi się, że mogę połączyć je razem, aby uzyskać wektor wymiaru , o czym wiem, że .
Moje pytanie brzmi: w jaki sposób mogę dowiedzieć się, którego operatora użyć? Jestem szczególnie zdezorientowany potrzebą elementu między i .
Dzięki!
źródło
Odpowiedzi:
Uważam, że kluczem do odpowiedzi na to pytanie jest zwrócenie uwagi na to, że mnożenie elementarne jest w rzeczywistości krótsze, a zatem, kiedy wyprowadzasz równania, nigdy go nie używasz.
Rzeczywiste działanie nie jest mnożenie elementów mądry lecz standardowym mnożenie macierzy gradientu z jakobian , zawsze .
W przypadku nieliniowości, jakobian wyjściowego wektora nieliniowości w odniesieniu do wejściowego wektora nieliniowości okazuje się być macierzą diagonalną. Prawdą jest zatem, że gradient pomnożony przez tę macierz jest równoważny gradientowi wyjściowego nieliniowości w odniesieniu do elementu straty pomnożonego przez wektor zawierający wszystkie częściowe pochodne nieliniowości w odniesieniu do danych wejściowych nieliniowości, ale wynika to z przekątnej jakobianów. Musisz przejść przez etap jakobowski, aby dojść do mnożenia elementarnego, co może wyjaśnić twoje zamieszanie.
W matematyce, że jedne nieliniowości , strata i wejścia do nieliniowości (może to być dowolny napinacz). Wyjście nieliniowości ma ten sam wymiar --- jak mówi @Logan, funkcja aktywacji jest zdefiniowana jako element.s L. x∈Rn×1 s(x)∈Rn×1
Chcemy
Gdzie jest jakobianem . Rozszerzając ten jakobski, otrzymujemy∂s(x)∂x s
Widzimy, że wszędzie jest zero, z wyjątkiem przekątnej. Możemy wykonać wektor wszystkich jego elementów ukośnych
A następnie użyj operatora opartego na elementach.
źródło
Ilekroć jest to odwrotnie proporcjonalne do funkcji aktywacji, operacje stają się elementarne. W szczególności na twoim przykładzie jest pochodną propagacji wstecznej, a jest pochodną aktywacji, a jej produkt jest produktem elementarnym, . Jest tak, ponieważ funkcje aktywacyjne są zdefiniowane jako operacje elementowe w sieci neuronowej.δ2=(y^−y)WT2 a′=h∘(1−h) δ2∘a′
Zobacz slajdy wykładowe cs224d strona 30, może to również pomóc.
źródło