Matematikai alapok az AI-hoz · Lecke 06

A láncszabály és a visszaterjesztés matematikája

Egy neurális háló nem más, mint sok függvény egymásba ágyazva. Ahhoz, hogy tanuljon, minden belső súlyhoz gradiensre van szükség. A kérdés az, hogyan lehet ezt kiszámolni egy ilyen mély láncban. A válasz a láncszabály, és az erre épülő visszaterjesztés. Ez az az algoritmus, ami az egész mélytanulást gyakorlatilag lehetővé teszi.

Vissza a tananyaghoz


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.

y = f(g(x))  →  dy/dx = f'(g(x)) · g'(x)  (a lépések deriváltjai összeszorzódnak)

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.


ELŐRE, a kimenet felé x g rétegbelső f rétegkülső hiba (loss) VISSZA, a deriváltak szorzódnak f' g' a teljes derivált = f' · g', a helyi deriváltak szorzata
Előre haladva a bemenetből lesz a hiba. Visszafelé a láncszabály szerint a helyi deriváltak összeszorzódnak, és megkapjuk, a hiba hogyan függ a lánc bármely pontjától.

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.


  1. 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.
  2. 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.
  3. Vissza menetA hiba felől indulva, rétegről rétegre visszafelé a láncszabállyal szorozzuk össze a helyi deriváltakat.
  4. 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.


← Előző lecke Következő lecke →

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 →