Matematikai alapok az AI-hoz · Lecke 05

Deriválás és a gradiens

Idáig az adatot és a modell műveleteit írtuk le. Most jön a tanulás motorja. A derivált megmondja, mennyire meredek egy függvény egy adott pontban, a gradiens pedig ezt kiterjeszti sok változóra, és megmutatja a legmeredekebb irányt. Ebből épül fel a gradiens ereszkedés, az az eljárás, amivel gyakorlatilag minden modern modell tanul.

Vissza a tananyaghoz


A derivált mint meredekség

A derivált (derivative) egy egyszerű kérdésre válaszol. Ha a bemenetet egy picit megváltoztatom, mennyit és merre mozdul a kimenet. Geometriailag a derivált a függvény görbéjéhez egy adott pontban húzott érintő meredeksége. Ha a görbe emelkedik, a derivált pozitív, ha ereszkedik, negatív, ha éppen sík, a derivált nulla. A nulla derivált különösen fontos, mert ott van a görbe teteje vagy alja, tehát a szélsőérték. A tanulásnál pont az alját, a legkisebb hibát keressük.


bemenet (x) kimenet f(x) érintő meredekség > 0 itt a derivált = 0, ez a minimum
A derivált a görbe érintőjének meredeksége. Ahol a görbe alja van, ott a derivált nulla. A tanulás ezt a legalacsonyabb pontot, a legkisebb hibát keresi.

A gradiens, sok változóra

Egy valódi modellnek nem egy, hanem sok millió belső száma van, és a hiba mindegyiktől függ. Ilyenkor a derivált helyett a gradiens (gradient) a megfelelő eszköz. A CS229 jegyzet szerint egy valós értékű f függvény gradiense egy vektor, amelynek i-edik eleme az f parciális deriváltja az i-edik változó szerint. A parciális derivált (partial derivative) annyit jelent, hogy egyszerre csak egy változót mozgatunk, a többit rögzítjük, és megnézzük, arra mennyire meredek a függvény. Fontos, hogy a gradiens csak akkor értelmezett, ha a függvény egyetlen számot ad vissza, tehát skalár értékű, mint a hiba.

∇f = ( ∂f/∂x₁, ∂f/∂x₂, … , ∂f/∂xₙ )  →  egy vektor, minden változóra egy meredekség

A gradiens tehát egy vektor, aminek annyi komponense van, ahány változótól függ a hiba. Egy döntő geometriai tulajdonsága van. A gradiens abba az irányba mutat, amerre a függvény a leggyorsabban nő. Ez a legmeredekebb emelkedés iránya. Ha viszont csökkenteni akarjuk a hibát, akkor pont az ellenkező irányba kell lépni, a negatív gradiens irányába.


a modell egy belső száma hiba (loss) start minimum, a legkisebb hiba a negatív gradiens irányába lépünk
A gradiens ereszkedés úgy tanul, hogy a hibagörbén mindig lefelé, a negatív gradiens irányába lép, míg el nem éri a völgy alját, a legkisebb hibát.

A gradiens ereszkedés

Most áll össze a tanulás. Képzeljük el a hibát egy tájként, ahol a magasság a hiba nagysága, a víz szintje pedig a modell belső számai. Egy magas pontból indulunk, ahol a modell még rossz. A gradiens megmondja, merre emelkedik legjobban a terep, mi pedig ennek az ellenkezőjébe, lefelé lépünk. Aztán az új helyen újra megnézzük a gradienst, és megint lefelé lépünk. Ezt ismételjük sokszor, míg egy völgy aljára nem érünk, ahol a hiba kicsi. Ezt hívják gradiens ereszkedésnek (gradient descent). A lépés nagyságát a tanulási ráta (learning rate) szabja meg, amit görög béta helyett szokás alfával jelölni.

új súly = régi súly − α · gradiens  ( α a tanulási ráta )

  1. Számold ki a hibátA modell ad egy előrejelzést, és a veszteségfüggvény megméri, mennyire tért el a helyestől.
  2. Számold ki a gradienstMegnézzük, a hiba melyik belső szám szerint mennyire meredek, tehát meghatározzuk a gradienst.
  3. Lépj a negatív iránybaMinden súlyt egy kicsit elmozdítunk a gradienssel ellentétes irányba, a tanulási rátával arányosan.
  4. IsmételdAz új súlyokkal újraszámoljuk a hibát és a gradienst. Sok millió ilyen körből áll össze a tanulás.

A tanulási ráta ereje

A tanulási ráta látszólag apró részlet, valójában döntő. Ha túl kicsi, a modell aprókat lép, és nagyon lassan tanul. Ha túl nagy, átugorja a völgy alját, ide-oda pattog, és nem talál le a minimumhoz. A jól megválasztott ráta elég nagy ahhoz, hogy haladjon, de elég kicsi ahhoz, hogy le is érjen. A lenti ábra ezt a három esetet mutatja egymás mellett, ugyanazon a hibagörbén.


Túl kicsi apró lépések, lassú gyorsan leér Túl nagy átugrik, pattog
A tanulási ráta dönti el, mekkorát lépünk. Túl kicsi lassú, túl nagy átugorja a minimumot, a jó érték elég gyorsan és biztosan leér a völgy aljára.

A gradiens a tanulás iránytűje. A gradiens abba az irányba mutat, amerre a hiba a leggyorsabban nő. A tanulás pont az ellenkező irányba, lefelé lép. Ezt sokszor ismételve a modell fokozatosan lecsúszik a legkisebb hibához.


← 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 →