Mi okozza a túltanulást
A túltanulás akkor lép fel, amikor a modell túl szorosan tapad a tanító adathoz. Több tényező vezethet ide. Ha a modell túl bonyolult a feladathoz képest, elég szabadsága van ahhoz, hogy a zajt is megtanulja. Ha kevés a tanító adat, a modell könnyen bemagolja a néhány példát ahelyett, hogy valódi mintázatot tanulna. És ha túl sok epochon át tanítjuk, egy idő után már csak a tanító adat egyedi kilengéseit finomítja. A közös nevező a túlzott modellkomplexitás, ezért a védekezés lényege ennek a komplexitásnak a mérséklése.
A regularizáció
A regularizáció (regularization) olyan technika, amely a tanítás során bünteti a modell bonyolultságát, és ezzel egyszerűbb, jobban általánosító modell felé tereli. A leggyakoribb forma a nagy súlyok büntetése. A modellnek nem csak a veszteséget kell csökkentenie, hanem a súlyai méretét is kordában tartania, így nem alakulhatnak ki szélsőségesen nagy súlyok, amelyek a zajra hangolnák a modellt. Két fő változata van. Az L2 regularizáció a súlyok négyzetét bünteti, ettől a súlyok kicsik maradnak, de általában nem lesznek pontosan nulla értékűek. Az L1 regularizáció a súlyok abszolút értékét bünteti, és hajlamos a kevésbé fontos súlyokat egészen nullára húzni, ezzel ritkítva a jellemzőket.
A lambda regularizációs ráta
A büntetés erősségét egy hiperparaméter szabályozza, ez a lambda, más néven regularizációs ráta. Ha a lambda túl kicsi, a regularizáció alig hat, a modell könnyen túltanul. Ha túl nagy, a modell túlságosan egyszerű lesz, és alultanul. A jó lambda az a köztes érték, amelynél a súlyok kellően visszafogottak ahhoz, hogy a modell jól általánosítson, de nem annyira, hogy elveszítse a valódi mintázatot. Az alábbi ábra azt mutatja, hogyan zsugorodnak a súlyok, ahogy erősítjük a regularizációt.
L2 regularizáció
- A súlyok négyzetét bünteti
- A súlyokat kicsivé, de nem nullává teszi
- Minden jellemző megmarad, csak visszafogottan
- Stabil, sima megoldást ad
L1 regularizáció
- A súlyok abszolút értékét bünteti
- A fölösleges súlyokat nullára húzza
- Ritkítja a jellemzőket, kiválasztja a fontosakat
- Egyszerűbb, könnyebben értelmezhető modellt ad
Jellemzőmérnökség
A modell csak annyira lehet jó, amennyire a bemeneti jellemzők engedik. A jellemzőmérnökség (feature engineering) az a munka, amikor a nyers adatból a modell számára jól használható jellemzőket készítünk. Ide tartozik a kategorikus adatok átalakítása, például az egyszerűsített kódolás (one-hot encoding), amely egy kategóriát külön oszlopokra bont, ahol mindig pontosan egy érték egy, a többi nulla. Ide tartoznak a jellemzőkeresztek (feature crosses) is, amelyek két vagy több jellemzőt kombinálnak, hogy a modell megfoghasson olyan összefüggéseket, amelyeket külön-külön nem látna. A számértékek megfelelő skálázása szintén ide tartozik. A jó jellemzők gyakran többet érnek, mint egy bonyolultabb modell.
Két irányból fékezzük a túltanulást. A regularizáció a modell felől szorít, bünteti a nagy súlyokat és a fölös bonyolultságot. A jellemzőmérnökség az adat felől segít, jobb jellemzőkkel kevesebb bonyolultság is elég a jó tanuláshoz.
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 →