25.2.2. Optimalizációs algoritmusok

2025.10.06.
AI Biztonság Blog

A gépi tanulási modellek „tanulása” matematikailag egy optimalizációs probléma. A cél egy hibafüggvény (loss function), J(θ), minimalizálása a modell paramétereinek, θ, finomhangolásával. Az algoritmusok, amelyek ezt a minimalizálási folyamatot végrehajtják, az optimalizálók. Ezek határozzák meg, hogyan módosulnak a modell súlyai a számított gradiensek alapján. A választott optimalizáló drasztikusan befolyásolhatja a konvergencia sebességét és a modell végső teljesítményét.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Gradiens Ereszkedés (Gradient Descent, GD)

A legalapvetőbb optimalizációs algoritmus. A koncepciója intuitív: a hibafüggvény felületén mindig a legmeredekebb lejtő irányába teszünk egy lépést. Ezt az irányt a hibafüggvény negatív gradiense adja meg. A teljes adathalmazon számítja ki a gradienst, mielőtt egyetlen lépést tenne.

θt+1 = θt – η ⋅ ∇θJ(θ)
  • θt+1: A paraméterek frissített értéke.
  • θt: A paraméterek jelenlegi értéke.
  • η (éta): A tanulási ráta (learning rate), ami a lépés méretét szabályozza.
  • θJ(θ): A J hibafüggvény gradiense a θ paraméterek szerint.

Kritikai elemzés: Bár a konvergenciája garantált (konvex hibafüggvény esetén) és az útja sima, a gyakorlatban ritkán használatos a modern mélytanulásban. A brutális számítási igénye – mivel minden egyes frissítéshez a teljes adathalmazt fel kell dolgozni – hatalmas adathalmazok esetén kivitelezhetetlenné teszi.

Sztochasztikus Gradiens Ereszkedés (Stochastic Gradient Descent, SGD)

Az SGD a GD számítási problémájára ad választ. Ahelyett, hogy a teljes adathalmazon számolná a gradienst, minden lépésnél csak egyetlen, véletlenszerűen kiválasztott adatponton (vagy egy kis adagnyi, ún. mini-batch-en) teszi ezt meg. Ez drámaian felgyorsítja a folyamatot.

θt+1 = θt – η ⋅ ∇θJ(θ; x(i); y(i))
  • x(i), y(i): Az i-edik tanítópélda és a hozzá tartozó címke.

Kritikai elemzés: Az SGD sokkal gyorsabb iterációkat tesz lehetővé. A frissítések „zajosak” a minta véletlenszerűsége miatt, ami egyrészt hátrány, mert a konvergencia ingadozó, másrészt előny, mert ez a zaj segíthet kikerülni a sekély lokális minimumokat. A tanulási ráta helyes megválasztása itt kritikusan fontos.

# SGD pszeudokódja
eljárás SGD(tanító_adatok, tanulási_ráta):
 inicializálj paramétereket (θ) véletlenszerűen
 
 ciklus (amíg a konvergencia el nem érhető):
 keverd_meg(tanító_adatok)
 
 minden (x_i, y_i) párra a tanító_adatokban:
 # Gradiens számítása egyetlen mintán
 gradiens = számítsd_gradienst(J, θ, x_i, y_i)
 
 # Paraméterek frissítése
 θ = θ - tanulási_ráta * gradiens
 
 return θ

Fejlettebb optimalizálók: Momentum és Adam

Az SGD ingadozásainak csillapítására és a konvergencia gyorsítására számos fejlettebb algoritmus született. Ezek általában a múltbeli gradiensek információit is felhasználják a jelenlegi lépés meghatározásához.

Momentum

A Momentum módszer egy „lendület” vagy „tehetetlenség” komponenst ad az SGD-hez. Képzeld el, mint egy labdát, ami legurul egy domboldalon: nem áll meg azonnal, ha egy kis gödörbe ér, hanem a lendülete átviszi rajta. Ez segít az algoritmusnak átlendülni a lokális minimumokon és gyorsabban haladni a völgyek alján.

vt+1 = γvt + η∇θJ(θ)
θt+1 = θt – vt+1
  • vt: A lendület (velocity) vektor a t időpillanatban.
  • γ (gamma): A lendületet megőrző faktor, tipikusan 0.9 körüli érték.

Kritikai elemzés: Jelentősen csökkenti az oszcillációt és gyorsítja a konvergenciát az SGD-hez képest, különösen olyan hibafelületeken, amelyek egyik irányban sokkal meredekebbek, mint a másikban (ravine-ok).

Adam (Adaptive Moment Estimation)

Az Adam algoritmus a mélytanulás egyik de facto standard optimalizálójává vált. Két kulcsötletet kombinál: a momentumot (az elsőrendű momentum becslése) és a paraméterenkénti adaptív tanulási rátát (a másodrendű momentum becslése, hasonlóan az RMSprop-hoz).

Lényegében minden egyes paraméterhez saját tanulási rátát tart karban, és ezt a ráta nagyságát a múltbeli gradiensek átlagos nagysága alapján módosítja.

mt = β1mt-1 + (1 – β1)gt
vt = β2vt-1 + (1 – β2)gt2
θt+1 = θtη(√vt + ε)mt
  • mt, vt: Az első (átlag) és második (nem centrált variancia) momentumok mozgóátlagai.
  • β1, β2: Ezen mozgóátlagok lecsengési rátái.
  • gt: A gradiens a t időpillanatban.
  • mt, vt: Korrekciós lépések utáni momentumok.
  • ε (epszilon): Egy apró szám a nullával való osztás elkerülésére.

Kritikai elemzés: Az Adam rendkívül hatékony a gyakorlatban, és gyakran a legjobb „alapértelmezett” választás. Jól működik a legtöbb problémán, kevés hiperparaméter-hangolással. Ugyanakkor nem csodaszer; vannak olyan esetek, ahol nem konvergál a legjobb megoldáshoz, és egy egyszerűbb, jól hangolt SGD momentummal jobb eredményt érhet el.

Vizuális összehasonlítás

Az alábbi diagram egy hibafüggvény kontúrjain szemlélteti, hogyan navigálnak a különböző optimalizálók a minimum felé. Jól látható az SGD zajos útja, a GD sima, de lassú ereszkedése, és a fejlettebb módszerek hatékonyabb pályája.

Min GD SGD Momentum Adam

Összefoglaló táblázat

Algoritmus Adathalmaz-használat (frissítésenként) Frissítés stabilitása Kritikus jellemző
GD Teljes adathalmaz Magas (sima) Számításigényes, nagy memóriát igényel.
SGD Egyetlen minta Alacsony (zajos) Gyors iterációk, segít kikerülni a lokális minimumokat.
Mini-batch GD Kis adag (batch) Közepes Jó kompromisszum a GD stabilitása és az SGD sebessége között.
Momentum Egyetlen minta / Mini-batch Közepes-magas Lendületet használ a konvergencia gyorsítására.
Adam Egyetlen minta / Mini-batch Magas Adaptív tanulási ráta minden paraméterhez.

A Red Teaming szempontjából az optimalizálók mélyebb ismerete lehetőséget ad a modell viselkedésének finomabb megértésére. Egy rosszul megválasztott vagy hangolt optimalizáló olyan sebezhetőségeket hagyhat a modellben (pl. alul- vagy túltanulás bizonyos alpopulációkon), amelyeket egy támadó kihasználhat.