Mit jelent a tanítás
Egy frissen létrehozott hálóban a súlyok véletlenszerű értékek, ezért a jóslatai eleinte használhatatlanok. A tanítás célja, hogy megtaláljuk azokat a súlyokat, amelyekkel a háló a lehető legkevesebbet hibázik a rendelkezésre álló adaton. Ehhez először számszerűsíteni kell, mennyire téved. Ezt a számot a veszteségfüggvény adja meg. A teljes adathalmazra vett átlagos veszteséget empirikus veszteségnek (empirical loss) nevezzük, és a tanítás során ezt akarjuk minimalizálni.
A veszteségfüggvény
A veszteségfüggvény (loss function) megmondja, mekkora a különbség a háló jóslata és a valódi, elvárt érték között. A feladat típusától függ, melyiket használjuk. Osztályozási feladatnál, ahol kategóriákat kell eltalálni, a keresztentrópia (cross entropy) a szokásos választás, mert azt bünteti, ha a modell magabiztosan téved. Folytonos érték becslésénél, például egy ár előrejelzésekor, a négyzetes hiba (mean squared error) a jellemző, amely a jóslat és a valóság eltérésének négyzetét méri. A jó veszteségfüggvény akkor kicsi, ha a jóslatok pontosak, és akkor nagy, ha a háló messze jár.
Gradiensereszkedés
A veszteséget úgy érdemes elképzelni, mint egy dombos tájat, ahol minden pont egy lehetséges súlybeállítást jelöl, a magasság pedig a hozzá tartozó veszteség. A cél a legmélyebb pont megtalálása. A gradiensereszkedés (gradient descent) így jár el. Egy adott pontban kiszámítja a gradienst, ami a legmeredekebb emelkedés iránya, majd az ellenkező irányba, tehát lefelé lép egy kicsit. Ezt sokszor megismételve fokozatosan lejjebb kerül, egyre kisebb veszteséggel. Ez az eljárás a mélytanulás egész tanításának a motorja.
- ElőreterjesztésA háló a jelenlegi súlyokkal jóslatot ad a bemenetre.
- VeszteségA veszteségfüggvény megméri, mennyire tér el a jóslat a valós értéktől.
- VisszaterjesztésKiszámítjuk, melyik súly mennyivel járult hozzá a hibához, vagyis a gradienst.
- SúlyfrissítésMinden súlyt a gradienssel ellentétes irányba mozdítunk egy kicsit, csökkentve a veszteséget.
A tanulási ráta
Az, hogy egy lépésben mekkorát mozdulunk, a tanulási rátán (learning rate) múlik. Ez a paraméter dönti el a lépés hosszát. Ha túl kicsi, a tanítás nagyon lassú, mert apró léptekkel araszolunk a minimum felé. Ha túl nagy, átugorhatunk a mélyponton, a veszteség ide-oda pattog, és a tanítás akár szét is eshet. A jól megválasztott tanulási ráta elég nagy ahhoz, hogy gyorsan haladjunk, de elég óvatos ahhoz, hogy a minimumban meg tudjunk állapodni. A gyakorlatban gyakran alkalmazkodó, tanítás közben változó tanulási rátát használunk.
Rosszul megválasztott ráta
- Túl kicsi, a tanítás kínosan lassú
- Túl nagy, átugrik a minimumon
- A veszteség ingadozik vagy szétesik
- Nehéz stabilan megállapodni
Jól megválasztott ráta
- Elég gyorsan halad lefelé
- Nem ugorja át a mélypontot
- A veszteség stabilan csökken
- A minimum közelében finoman lép
Visszaterjesztés
Marad a kérdés, honnan tudjuk, melyik súlyt merre és mennyivel kell mozdítani. Erre válaszol a visszaterjesztés (backpropagation). A lényege, hogy a kimeneten mért hibát visszafelé, rétegről rétegre vezetjük vissza egészen a súlyokig, és közben a láncszabály segítségével kiszámítjuk, hogy az egyes súlyok mennyivel járultak hozzá a hibához. Ez a hozzájárulás maga a gradiens. A visszaterjesztés teszi egyáltalán lehetővé, hogy egy sok rétegű, sok súlyt tartalmazó hálót hatékonyan lehessen tanítani, mert egyetlen visszafelé futással minden súlyra megkapjuk a szükséges irányt.
Mini-batch és sztochasztikus gradiensereszkedés
A teljes adathalmazra egyszerre kiszámítani a gradienst nagy adatnál lassú és költséges. Ezért a gyakorlatban nem az egész adaton, hanem kis, véletlenszerűen kiválasztott adagokon, úgynevezett mini-batch csomagokon számoljuk a gradienst, és minden ilyen csomag után frissítjük a súlyokat. Ezt sztochasztikus gradiensereszkedésnek (stochastic gradient descent) nevezzük. Kicsit zajosabb becslést ad, mint a teljes adathalmaz, cserébe sokkal gyorsabb, és ez a zaj gyakran segít is kimozdulni a rossz helyi minimumokból.
Négy lépés ismétlődik. Előreterjesztés, veszteségszámítás, visszaterjesztés, súlyfrissítés. Ez a négy lépés fut le újra és újra, adatcsomagról adatcsomagra, amíg a veszteség kellően le nem csökken. Ennyi a neurális hálók tanításának a lényege.
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 →