Dla pełnego zrozumienia sieci neuronowych.
![](https://miro.medium.com/max/1280/0*nPckd5w-WZxAUPpV.png)
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:
![](https://miro.medium.com/max/60/1*h2mKSbkSqRmYi9OhHyWpKA@2x.png?q=20)
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:
![](https://miro.medium.com/max/60/1*XcZaBh3il0ooTtYChZTsiQ@2x.png?q=20)
Pierwszą rzeczą, jaką zauważyłem w tej funkcji, jest to, że jest ona złożeniem funkcji. Pierwsza funkcja to
![](https://miro.medium.com/max/60/1*bDiSa_0gjyaKffPGj-zsXg@2x.png?q=20)
a druga to
![](https://miro.medium.com/max/60/1*1J0Oric7dnSzYlMb0oXHOA@2x.png?q=20)
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:
![](https://miro.medium.com/max/60/1*euGFm_1TRovvYQkje9BZ9g@2x.png?q=20)
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:
![](https://miro.medium.com/max/60/1*9qgk0QD8Agn7bw1x2G4BPg@2x.png?q=20)
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ą:
![](https://miro.medium.com/max/60/1*en0hcpeSaFAY8IbXm3vOwA@2x.png?q=20)
Znalezienie pochodnej tego względem m jest dość proste, jeśli pamiętamy regułę potęgowania:
![](https://miro.medium.com/max/60/1*ii-9jyo9DzjdvxD_NewuPA@2x.png?q=20)
Pochodna x^n jest n razy pochodną x do potęgi n-1.
Więc,
![](https://miro.medium.com/max/60/1*RRPcS47LvAXygCRQdxIVRQ@2x.png?q=20)
Teraz, jeśli podstawimy naszą oryginalną wartość m z powrotem do równania, otrzymamy
![](https://miro.medium.com/max/60/1*YgwWo7IGFfHCI2QL8BE2JA@2x.png?q=20)
W końcu,
![](https://miro.medium.com/max/60/1*DSOvR25jPyjRLxZFQ5w2Qw@2x.png?q=20)
Yay! Ukończyliśmy krok 1.
Znajdź pochodną m względem x
Oto m:
![](https://miro.medium.com/max/60/1*HY6mNDzKbnm0KkL7BTqgFg@2x.png?q=20)
Aby znaleźć pochodną, musimy znaleźć pochodną każdego z członów względem x. Pierwszy człon jest prosty:
![](https://miro.medium.com/max/60/1*xqN5kF3GuEhCyVuzlZ2qpQ@2x.png?q=20)
Drugi człon jest nieco bardziej skomplikowany.
Let’s let
![](https://miro.medium.com/max/60/1*u6dIXvsIhIWvHXSAj3TPUQ@2x.png?q=20)
and
![](https://miro.medium.com/max/60/1*NmjZIoawG2sIaj4aCAIrqg@2x.png?q=20)
.
Wiemy, że
![](https://miro.medium.com/max/60/1*yJaPKPIIqNpfV8zHw_XTwA@2x.png?q=20)
Jeśli dojście do e^u nie jest jasne, proszę przeczytać to.
Teraz, wykorzystując ponownie regułę łańcuchową,
![](https://miro.medium.com/max/60/1*FcQNYyN8wm69ZPQlcXZYkQ@2x.png?q=20)
Więc po prostu mnożymy te pochodne, które właśnie obliczyliśmy, aby otrzymać pochodną względem x:
![](https://miro.medium.com/max/60/1*9hhIYJlrrEnX9jA9j5P2wA@2x.png?q=20)
Wszystko dla kroku 2,
![](https://miro.medium.com/max/60/1*oQbxRgKqYbPcLDpLuCAkzw@2x.png?q=20)
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:
![](https://miro.medium.com/max/60/1*aTlg-GrkdIkD05aV349w4g@2x.png?q=20)
Teraz, jeśli pamiętasz jak mnożyć :), możemy to wreszcie zakończyć!
![](https://miro.medium.com/max/60/1*gCzsgoQkdQVVjJi8G5l9uA@2x.png?q=20)
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:
![](https://miro.medium.com/max/60/1*HL-p9alkMl4EvVAGNTS9bQ@2x.png?q=20)
Pochodna funkcji sigmoidalnej to sigmoida razy 1 minus sigmoida. Wow. Czuję się oszukany 🙂
.
Dodaj komentarz