A háló egy nagy összetett függvény
Az összetett függvény (composite function) azt jelenti, hogy egy függvény kimenete egy másik függvény bemenete lesz. Egy neurális háló pontosan ilyen. A bemenet átmegy az első rétegen, annak a kimenete a második réteg bemenete, és így tovább, egészen a végső előrejelzésig és a hibáig. Ha ezt egyetlen képként nézzük, a háló egy hosszú lánc, ahol minden szem egy egyszerű művelet. A tanuláshoz azt kell tudni, hogy a legvégén mért hiba hogyan függ a lánc elején és közepén lévő súlyoktól. Ez elsőre reménytelenül bonyolultnak tűnik, de van rá egy elegáns szabály.
A láncszabály
A láncszabály (chain rule) megmondja, hogyan deriválunk egy összetett függvényt. Ha egy y kimenet egy g függvényen keresztül függ x-től, és y-t egy f függvény adja, tehát y egyenlő f(g(x)), akkor y deriváltja x szerint a két lépés deriváltjának szorzata. Szavakban, megnézzük, mennyire érzékeny a külső lépés a belső lépés kimenetére, ezt megszorozzuk azzal, mennyire érzékeny a belső lépés a bemenetre. A deriváltak összeszorzódnak a lánc mentén.
Ez a szorzás a kulcs. Bármilyen hosszú a lánc, a teljes derivált mindig az egyes szemek helyi deriváltjainak szorzata. Egy száz réteg mély hálóban is csak annyi a dolog, hogy száz helyi deriváltat szorzunk össze a megfelelő úton. Semmi mást nem kell tenni, csak követni a láncot.
A visszaterjesztés
A visszaterjesztés (backpropagation) nem más, mint a láncszabály okos, szervezett alkalmazása egy egész hálóra. Két menetből áll. Az előre menetben (forward pass) a bemenet végigmegy a hálón, és megszületik az előrejelzés, majd a hiba. Eközben a háló megjegyzi a köztes eredményeket. A vissza menetben (backward pass) a hiba felől indulunk, és rétegről rétegre visszafelé haladva a láncszabállyal kiszámoljuk, minden súly mennyivel járult hozzá a hibához. Ez a hozzájárulás éppen az adott súlyhoz tartozó gradiens komponens. A vissza menet végére minden súlyhoz megvan a gradiens, és jöhet a gradiens ereszkedés frissítése, amit az előző leckében láttunk.
- Előre menetA bemenet végighalad a hálón, réteg réteg után, míg megszületik az előrejelzés és belőle a hiba.
- Köztes értékek megőrzéseA háló elteszi a rétegek köztes kimeneteit, mert a vissza menetnél szükség lesz rájuk.
- Vissza menetA hiba felől indulva, rétegről rétegre visszafelé a láncszabállyal szorozzuk össze a helyi deriváltakat.
- Gradiens minden súlyhozA vissza menet végén minden súlyhoz megvan a gradiens, tehát tudjuk, merre kell módosítani.
Miért ez tette lehetővé a mélytanulást
A visszaterjesztés zsenialitása a hatékonyságban rejlik. Naiv módon minden súlyhoz külön végig kellene számolni az egész hálót, ami sok millió súly esetén reménytelen lenne. A visszaterjesztés ehelyett egyetlen előre és egyetlen vissza menettel az összes gradienst megkapja, mert a köztes eredményeket újrahasznosítja. Ez teszi kivitelezhetővé, hogy egy modell milliárdnyi súllyal is tanuljon ésszerű időben. A modern keretrendszerek ezt automatikusan végzik, automatikus deriválással, de a mögötte álló matematika pontosan az, amit ebben a leckében láttunk. A láncszabály és a szorzódó helyi deriváltak.
A láncszabály összeszorozza a lépéseket. Egy összetett függvény deriváltja a helyi deriváltak szorzata a lánc mentén. A visszaterjesztés ezt alkalmazza a hiba felől visszafelé, így egyetlen menetben megkapja minden súly gradiensét.
Workshop
AI Transformation Day
Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.
Érdekel a program →