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?