Dla pełnego zrozumienia sieci neuronowych.
Jedną z najczęściej używanych funkcji aktywacji w uczeniu maszynowym, a dokładniej w sieciach neuronowych, jest funkcja sigmoidalna. W kroku wstecznej propagacji w treningu sieci neuronowej, musisz znaleźć pochodną funkcji straty w odniesieniu do każdej wagi w sieci. Aby to zrobić, należy znaleźć pochodną funkcji aktywacji. Ten artykuł ma na celu wyjaśnienie wszelkich niejasności związanych ze znajdowaniem pochodnej funkcji sigmoidalnej.
Na początek, oto funkcja sigmoidalna:
Na próbę, wykonaj sigmoidę o wartości 5 na kalkulatorze. Powinieneś otrzymać 0,99330714907.
Dla celów pochodnej, funkcja ta może być również zapisana jako:
Pierwszą rzeczą, jaką zauważyłem w tej funkcji, jest to, że jest ona złożeniem funkcji. Pierwsza funkcja to
a druga to
Przypomnij sobie, że w Calculusie, gdy mamy do czynienia ze złożeniem funkcji, pochodną, jest pierwsza funkcja względem drugiej pomnożona przez drugą funkcję względem zmiennej, w tym przypadku x. Na przykład:
Tak więc, pochodna sigmoidy względem x jest pochodną funkcji sigmoidy względem m razy pochodna m względem x. Można myśleć o tej zasadzie kompozycji funkcji jako o pewnym rodzaju obliczeń pośrednich, których wynikiem jest oryginalna pochodna, którą chcieliśmy uzyskać przez anulowanie krzyżowe:
Teraz, gdy wiemy, że funkcja sigmoidalna jest kompozycją funkcji, wszystko co musimy zrobić, aby znaleźć pochodną, to:
- Znajdź pochodną funkcji sigmoidalnej względem m, naszej wartości pośredniej
- Znajdź pochodną m względem x
- Multiplikuj te wartości razem
Pochodna sigmoidy względem m
Spójrzmy jeszcze raz na to, jak wygląda funkcja sigmoidalna z m jako naszą wartością pośrednią:
Znalezienie pochodnej tego względem m jest dość proste, jeśli pamiętamy regułę potęgowania:
Pochodna x^n jest n razy pochodną x do potęgi n-1.
Więc,
Teraz, jeśli podstawimy naszą oryginalną wartość m z powrotem do równania, otrzymamy
W końcu,
Yay! Ukończyliśmy krok 1.
Znajdź pochodną m względem x
Oto m:
Aby znaleźć pochodną, musimy znaleźć pochodną każdego z członów względem x. Pierwszy człon jest prosty:
Drugi człon jest nieco bardziej skomplikowany.
Let’s let
and
Wiemy, że
Jeśli dojście do e^u nie jest jasne, proszę przeczytać to.
Teraz, wykorzystując ponownie regułę łańcuchową,
Więc po prostu mnożymy te pochodne, które właśnie obliczyliśmy, aby otrzymać pochodną względem x:
Wszystko dla kroku 2,
Mnożenie pochodnych
Przypomnijmy, że gdy już znaleźliśmy dwie pośrednie pochodne, musieliśmy je pomnożyć. Tak więc, oto szybkie podsumowanie:
Teraz, jeśli pamiętasz jak mnożyć :), możemy to wreszcie zakończyć!
Możesz teraz wziąć tę wartość i użyć jej jako pochodnej funkcji sigmoidalnej. Ciekawa rzecz pojawia się jednak po tym, jak już zmanipulujemy ten wynik. Okazuje się, że pochodną można zapisać w następujący sposób:
Pochodna funkcji sigmoidalnej to sigmoida razy 1 minus sigmoida. Wow. Czuję się oszukany 🙂
.
Dodaj komentarz