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?