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