Hogyan tanul a modell
A gradiensmódszer (gradient descent) egy iteratív optimalizáló algoritmus, amely a lineáris modell legjobb súlyait és torzítását keresi meg a veszteség minimalizálásával. A módszer szemléletesen egy völgybe való leereszkedés. A veszteség egy görbe, a vízszintes tengelyen a modell egy paramétere, a függőleges tengelyen a veszteség nagysága. A cél a völgy alja, ahol a veszteség a legkisebb. Az algoritmus a jelenlegi pontban megnézi, merre lejt a görbe, és arra tesz egy kis lépést. Ezt ismételgetve halad lefelé, amíg el nem éri a mélypontot.
A négy ismétlődő lépés
A gradiensmódszer négy lépést ismétel újra és újra. Először kiszámolja a veszteséget a jelenlegi súlyokkal. Utána meghatározza, melyik irányba érdemes módosítani a súlyokat és a torzítást, hogy a veszteség csökkenjen. Ezután tesz egy kis lépést ebbe az irányba. Végül elölről kezdi, egészen a konvergenciáig.
- Veszteség számításaA modell a jelenlegi súlyokkal és torzítással kiszámolja, mekkora a hibája a példákon.
- Irány meghatározásaAz algoritmus megnézi, merre kellene mozdítani a paramétereket, hogy a veszteség csökkenjen.
- Kis lépésA súlyokat és a torzítást egy kicsit elmozdítja ebbe az irányba, a tanulási ráta által megszabott mértékben.
- Ismétlés a konvergenciáigA folyamat addig fut, amíg a további lépések már alig csökkentik a veszteséget.
Konvergencia
A konvergencia (convergence) az az állapot, amikor a további lépések már nem csökkentik érdemben a veszteséget. Ilyenkor a gradiensmódszer megtalálta azokat a súlyokat és torzítást, amelyek közel a lehető legkisebb veszteséget adják. A lineáris modelleknél a veszteséggörbe konvex, egyetlen völgye van, ezért a konvergencia a globális mélypontot, vagyis az adott adaton lehető legjobb modellt jelenti. Bonyolultabb modelleknél a görbe több völgyet is tartalmazhat, ott a helyzet összetettebb, de az alapötlet ugyanez marad.
A tanulási ráta
A tanulási ráta (learning rate) az a szám, amely megszabja, mekkorát lépjen a modell egy-egy iterációban. Ez egy hiperparaméter, vagyis a tanítás előtt mi állítjuk be, nem a modell tanulja. A megfelelő érték kulcsfontosságú. Ha a tanulási ráta túl kicsi, a modell nagyon lassan halad, sok iteráció kell a mélyponthoz. Ha túl nagy, a modell átugorja a mélypontot, pattog a völgy két oldala között, és lehet, hogy soha nem konvergál. A jó tanulási ráta hatékonyan, ésszerű számú lépésben visz le a mélypontig.
Kötegméret és epoch
Két további hiperparaméter befolyásolja a tanítást. A kötegméret (batch size) azt adja meg, hány példát dolgoz fel a modell, mielőtt egyszer frissíti a súlyokat. Ha az egész adathalmazt egyszerre nézi, teljes kötegről beszélünk. Ha minden egyes példa után frissít, az a sztochasztikus gradiensmódszer (stochastic gradient descent, SGD), amely zajosabb, de gyorsabb. A kettő között áll a mini-batch SGD, amely egy kisebb részhalmazonként frissít, és jó egyensúlyt ad hatékonyság és stabilitás között. Az epoch egy teljes átfutás a tanító halmazon. Több epoch általában jobb modellt ad, de tovább tart a tanítás, ezért az optimális számot kísérletezéssel keressük.
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 →