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.
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.
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 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.
- 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.
- Számold ki a gradienstMegnézzük, a hiba melyik belső szám szerint mennyire meredek, tehát meghatározzuk a gradienst.
- 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.
- 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.
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.
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 →