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:

  1. Keresd meg a szigmoidfüggvény deriváltját m, a köztes értékünk tekintetében
  2. Keresd meg m deriváltját x tekintetében
  3. 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 🙂