A neurális hálózatok teljes megértéséhez.
![](https://miro.medium.com/max/1280/0*nPckd5w-WZxAUPpV.png)
A gépi tanulásban, pontosabban a neurális hálózatokban leggyakrabban használt aktivációs függvények egyike a szigmoid függvény. A neurális hálózat képzésének backpropagation lépése során meg kell találni a veszteségfüggvény deriváltját a hálózat egyes súlyaihoz viszonyítva. Ehhez meg kell találni az aktiválási függvény deriváltját. Ez a cikk célja, hogy tisztázza a szigmoidfüggvény deriváltjának megtalálásával kapcsolatos félreértéseket.
Kezdésként íme a szigmoidfüggvény:
![](https://miro.medium.com/max/60/1*h2mKSbkSqRmYi9OhHyWpKA@2x.png?q=20)
Próbaképpen vegyük ki a számológépünkön az 5-ös szigmoidot. Azt kell kapnod, hogy 0,9933030714907.
A deriváláshoz ezt a függvényt így is fel lehet írni:
![](https://miro.medium.com/max/60/1*XcZaBh3il0ooTtYChZTsiQ@2x.png?q=20)
Az első dolog, amit észrevettem ezzel a függvénnyel kapcsolatban, hogy ez egy függvényösszetétel. Az első függvény
![](https://miro.medium.com/max/60/1*bDiSa_0gjyaKffPGj-zsXg@2x.png?q=20)
és a második függvény
![](https://miro.medium.com/max/60/1*1J0Oric7dnSzYlMb0oXHOA@2x.png?q=20)
Memlékezzünk, hogy a Calculus, amikor függvények összetételéről van szó, a derivált, az első függvénynek a második függvényhez viszonyított szorzata a második függvénynek a változóhoz, jelen esetben x-hez viszonyított szorzatával. Így:
![](https://miro.medium.com/max/60/1*euGFm_1TRovvYQkje9BZ9g@2x.png?q=20)
A szigmoid függvény x-re vonatkozó deriváltja tehát a szigmoid függvény m-re vonatkozó deriváltja szorozva m x-re vonatkozó deriváltjával. Ezt a függvényösszetételi szabályt úgy is felfoghatjuk, mint egyfajta közbenső számítást, amely keresztfelszámolással eredményezi a kívánt eredeti deriváltat:
![](https://miro.medium.com/max/60/1*9qgk0QD8Agn7bw1x2G4BPg@2x.png?q=20)
Most, hogy tudjuk, hogy a szigmoidfüggvény függvények összetétele, csak annyit kell tennünk, hogy megtaláljuk a deriváltat, hogy:
- Keresd meg a szigmoidfüggvény deriváltját m, a köztes értékünk tekintetében
- Keresd meg m deriváltját x tekintetében
- Multiplikáld össze ezeket az értékeket
A szigmoid függvény deriváltja m tekintetében
Nézzük vissza, hogyan néz ki a szigmoidfüggvény m mint köztes értékünkkel:
![](https://miro.medium.com/max/60/1*en0hcpeSaFAY8IbXm3vOwA@2x.png?q=20)
Meglehetősen egyszerű ennek m-re vonatkoztatott deriváltját megtalálni, ha emlékszünk a hatványszabályra:
![](https://miro.medium.com/max/60/1*ii-9jyo9DzjdvxD_NewuPA@2x.png?q=20)
Az x^n deriváltja n-szerese az x n-1 hatványának.
Így,
![](https://miro.medium.com/max/60/1*RRPcS47LvAXygCRQdxIVRQ@2x.png?q=20)
Most, ha az m eredeti értékét visszahelyezzük az egyenletbe, megkapjuk
![](https://miro.medium.com/max/60/1*YgwWo7IGFfHCI2QL8BE2JA@2x.png?q=20)
végül,
![](https://miro.medium.com/max/60/1*DSOvR25jPyjRLxZFQ5w2Qw@2x.png?q=20)
Yay! Befejeztük az 1. lépést.
Keresd meg m deriváltját x függvényében
Itt van m:
![](https://miro.medium.com/max/60/1*HY6mNDzKbnm0KkL7BTqgFg@2x.png?q=20)
A derivált megtalálásához meg kell találnunk minden egyes tag deriváltját x függvényében. Az első tag könnyű:
![](https://miro.medium.com/max/60/1*xqN5kF3GuEhCyVuzlZ2qpQ@2x.png?q=20)
A második tag egy kicsit bonyolultabb.
Legyen
![](https://miro.medium.com/max/60/1*u6dIXvsIhIWvHXSAj3TPUQ@2x.png?q=20)
és
![](https://miro.medium.com/max/60/1*NmjZIoawG2sIaj4aCAIrqg@2x.png?q=20)
.
Tudjuk, hogy
![](https://miro.medium.com/max/60/1*yJaPKPIIqNpfV8zHw_XTwA@2x.png?q=20)
Ha az e^u-hoz jutás nem egyértelmű, kérem olvassa el ezt.
Most, ismét a láncszabályt használva,
![](https://miro.medium.com/max/60/1*FcQNYyN8wm69ZPQlcXZYkQ@2x.png?q=20)
Az imént kiszámított deriváltakat tehát csak megszorozzuk, hogy megkapjuk a deriváltat x viszonylatában:
![](https://miro.medium.com/max/60/1*9hhIYJlrrEnX9jA9j5P2wA@2x.png?q=20)
Mindent egybevetve a 2. lépéshez,
![](https://miro.medium.com/max/60/1*oQbxRgKqYbPcLDpLuCAkzw@2x.png?q=20)
A deriváltak szorzása
Emlékezzünk vissza, hogy miután megtaláltuk a két közbenső deriváltat, meg kellett szoroznunk őket. Íme tehát egy gyors összefoglaló:
![](https://miro.medium.com/max/60/1*aTlg-GrkdIkD05aV349w4g@2x.png?q=20)
most, ha már emlékszel, hogyan kell szorozni :), akkor végre befejezhetjük!
![](https://miro.medium.com/max/60/1*gCzsgoQkdQVVjJi8G5l9uA@2x.png?q=20)
Ezt az értéket most már veheted, és használhatod a szigmoidfüggvény levezetéséhez. Érdekes dolog történik azonban az eredmény manipulálása után. Kiderül, hogy a deriváltat így is átírhatod:
![](https://miro.medium.com/max/60/1*HL-p9alkMl4EvVAGNTS9bQ@2x.png?q=20)
A szigmoidfüggvény deriváltja a szigmoid szorozva 1-gyel mínusz a szigmoid. Hűha! Úgy érzem, becsaptak 🙂
Vélemény, hozzászólás?