A neurális hálózatok teljes megértéséhez.

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:

  
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:

  
Az első dolog, amit észrevettem ezzel a függvénnyel kapcsolatban, hogy ez egy függvényösszetétel. Az első függvény

  
és a második függvény

  
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:

  
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:

  
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:

  
Meglehetősen egyszerű ennek m-re vonatkoztatott deriváltját megtalálni, ha emlékszünk a hatványszabályra:

  
Az x^n deriváltja n-szerese az x n-1 hatványának.
Így,

  
Most, ha az m eredeti értékét visszahelyezzük az egyenletbe, megkapjuk

  
végül,

  
Yay! Befejeztük az 1. lépést.
Keresd meg m deriváltját x függvényében
Itt van m:

  
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ű:

  
A második tag egy kicsit bonyolultabb.
Legyen

  
és

.  
Tudjuk, hogy

  
Ha az e^u-hoz jutás nem egyértelmű, kérem olvassa el ezt.
Most, ismét a láncszabályt használva,

  
Az imént kiszámított deriváltakat tehát csak megszorozzuk, hogy megkapjuk a deriváltat x viszonylatában:

  
Mindent egybevetve a 2. lépéshez,

  
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ó:

  
most, ha már emlékszel, hogyan kell szorozni :), akkor végre befejezhetjük!

  
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:

  
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?