4.1.3. Robusztusság mérése és metrikák

2025.10.06.
AI Biztonság Blog

Kulisszatitok: A sikeres támadás generálása csak a munka fele. Az igazi kérdés, ami a védőt és a támadót is érdekli: mekkora erőfeszítésbe került áttörni a védelmet? Egy modell, amit egy alig észrevehető zajjal meg lehet téveszteni, sokkal sebezhetőbb, mint egy másik, aminek a megtöréséhez már vizuálisan is torz képet kell létrehozni. A robusztusság mérése nem luxus, hanem a sebezhetőség precíz felmérésének eszköze.

Kapcsolati űrlap

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

A kérdés nem az, hogy „robosztus-e?”, hanem hogy „mennyire?”

A gradiens alapú támadásoknál láttuk, hogyan lehet szisztematikusan olyan bemenetet találni, ami megtéveszti a modellt. De ez egy bináris eredmény: sikerült vagy nem. A red teaming ennél sokkal árnyaltabb. Nem elégedhetünk meg annyival, hogy találtunk egy ellenséges példát. Kvantifikálnunk kell a modell sérülékenységét. Ehhez pedig metrikákra van szükségünk, amelyek a támadáshoz szükséges „erőfeszítést” mérik.

Ez az „erőfeszítés” matematikailag a perturbáció, azaz az eredeti és a módosított bemenet közötti különbség nagyságát jelenti. Ennek mérésére az Lp-normákat használjuk, amelyek különböző módokon ragadják meg a „távolság” fogalmát a bemeneti térben.

A perturbáció mértéke: Az Lp normák, mint a Red Teamer svájci bicskája

Képzeld el, hogy egy képen kell változtatnod, hogy a macskát felismerő modell kutyának lássa. Többféleképpen is megteheted. Változtathatsz sok pixelen egy picit, vagy néhány pixelen nagyon. Az Lp-normák segítenek megfogni ezeket a stratégiákat.

Legyen x az eredeti bemenet és x' az ellenséges példa. A perturbáció a δ = x' - x vektor. Ennek a vektornak a normáját mérjük.

L (Infinity norm) – A „lopakodó” metrika

Az L-norma a perturbációs vektor legnagyobb abszolút értékű elemét méri. Képek esetében ez a legnagyobb változás, amit egyetlen pixelértéken végrehajtottunk.

||δ|| = maxi(|δi|)

Ez a metrika tökéletes az olyan támadások mérésére, ahol a cél a vizuális észrevehetetlenség. Az FGSM és PGD támadásokat gyakran egy L-korlát (ε) alatt tartják, biztosítva, hogy egyetlen pixel se változzon „túl sokat”. Red teamerként ez az egyik leggyakoribb mérőszámod lesz.

L2 (Euklideszi norm) – Az „energia” metrika

Az L2-norma a perturbációs vektor elemeinek négyzetösszegéből vont négyzetgyök, ami megfelel a megszokott euklideszi távolságnak. Úgy is felfoghatod, mint a perturbáció teljes „energiáját”.

||δ||2 = sqrt(Σii2))

Ez a metrika akkor hasznos, ha a változtatások sok pixelen oszlanak el, mint egy finom, alacsony energiájú zaj. Az L2-normában kicsi perturbációk gyakran alig észrevehetők, de együttesen már képesek megtéveszteni a modellt.

L0 (Nulladik norm) – A „sebészeti” metrika

Bár matematikailag nem szigorúan norma, az L0-norma a perturbációs vektor nem nulla elemeinek számát adja meg. Képeknél ez azt jelenti, hogy hány pixelt módosítottunk összesen, függetlenül a változtatás mértékétől.

||δ||0 = Σi(1 if δi ≠ 0 else 0)

Ez a metrika a ritka (sparse) támadások, például a „one-pixel attack” hatékonyságának mérésére szolgál. A kérdés itt az: minimálisan hány pixel megváltoztatásával érhető el a miszklasszifikáció?

δ₁ δ₂ x (eredeti) x’ (ellenséges) L₂ távolság max(|δ₁|,|δ₂|) L∞ „doboz” L₀: 2 (mivel δ₁ és δ₂ is ≠ 0)

Egy 2D perturbációs vektor (δ) esetén az L2 az egyenes távolság, míg az L a legnagyobb koordináta menti elmozdulás, ami egy négyzetet/kockát definiál a pont körül.

Gyakorlati robusztussági metrikák

A normák önmagukban csak a távolságot mérik. A red teaming során ezekre építve definiálunk konkrét, értelmezhető metrikákat.

1. Minimális Ellenséges Perturbáció (Minimal Adversarial Perturbation)

Ez a legtisztább robusztussági mérőszám: adott bemenethez mekkora a legkisebb perturbáció (egy választott norma szerint), ami már miszklasszifikációt okoz? Minél nagyobb ez az érték, annál robusztusabb a modell az adott pont környezetében. Ennek a pontos kiszámítása gyakran nehéz optimalizációs feladat, de a támadó algoritmusok (mint a PGD) jó közelítést adnak rá.

2. Ellenséges Pontosság (Adversarial Accuracy / Robust Accuracy)

Ez a leggyakrabban használt benchmark metrika. Ahelyett, hogy a minimális perturbációt keresnénk, rögzítünk egy perturbációs „költségvetést” (ε) és egy normát (pl. L). Ezután a teszthalmaz minden elemére megpróbálunk egy ellenséges példát generálni ezen a korláton belül. Az ellenséges pontosság azoknak a mintáknak az aránya, amelyeket a modell még a támadás után is helyesen osztályoz.

Modell Eredeti pontosság (Clean Accuracy) Ellenséges pontosság (L, ε=8/255)
Standard ResNet-50 94.5% 2.1%
Robusztusra trénelt ResNet-50 89.2% 58.7%

A táblázat jól mutatja, hogy egy standard modell pontossága drasztikusan lezuhanhat már egy kis L perturbáció hatására is, míg egy célzottan edzett (adversarially trained) modell sokkal jobban tartja magát.

# Pszeudokód az Ellenséges Pontosság számítására
function szamolj_ellenseges_pontossagot(modell, adathalmaz, tamadas, epsilon):
 helyes_joslatok = 0
 osszes_minta = 0

 for (bemenet, cimke) in adathalmaz:
 # 1. Generálj egy ellenséges perturbációt az adott korláton belül
 ellenseges_bemenet = tamadas.generalj(modell, bemenet, cimke, epsilon)

 # 2. Kérj jóslatot a modeltől a megtámadott bemenetre
 joslat = modell.josol(ellenseges_bemenet)

 # 3. Ellenőrizd, hogy a jóslat helyes-e
 if joslat == cimke:
 helyes_joslatok += 1
 
 osszes_minta += 1

 return (helyes_joslatok / osszes_minta) * 100

3. Támadási Sikerességi Ráta (Attack Success Rate – ASR)

Ez lényegében az ellenséges pontosság inverze: 100% - Adversarial Accuracy. Azt mutatja meg, hogy a támadási kísérletek hány százaléka volt sikeres. Különösen célzott (targeted) támadásoknál informatív, ahol az ASR azt méri, hogy a támadónak hányszor sikerült a modellt rávennie a kívánt (hibás) osztály prediktálására.

A metrikák korlátai: Amit a számok nem mondanak el

Bár ezek a metrikák elengedhetetlenek, egy tapasztalt red teamer tudja, hogy a kontextus minden.

  • A benchmarkok csapdája: Egy modell, ami egy adott támadás (pl. PGD L) ellen magas ellenséges pontosságot ér el, lehet, hogy egy másik típusú (pl. L2 vagy L0) támadással szemben teljesen védtelen. A robusztusságot mindig egy támadási modell kontextusában kell értékelni.
  • Adaptív támadások: A védelmi mechanizmusok gyakran „obfuszkálják” a gradienseket, ami megnehezíti a standard gradiens-alapú támadásokat. Egy naiv mérés ilyenkor magas robusztusságot mutathat. Egy jó red teamer adaptív támadásokkal próbálkozik, amelyek kifejezetten az adott védelem megkerülésére lettek tervezve. A valódi robusztusság csak ilyen, a védelem ismeretében végzett tesztekkel mérhető fel.
  • Perceptuális távolság vs. matematikai normák: Az Lp normák nem mindig felelnek meg az emberi észlelésnek. Egy L2-ben kicsi, de strukturált zaj lehet sokkal zavaróbb vizuálisan, mint egy L-ben nagyobb, de véletlenszerű perturbáció. A metrikák mellett a minőségi, emberi értékelés is fontos lehet.

A robusztusság mérése tehát egy iteratív folyamat. Nem egyetlen számot keresünk, hanem a modell gyenge pontjainak feltérképezését végezzük különböző mérőeszközökkel. A következő fejezetekben látni fogjuk, hogyan lehet ezeket a metrikákat felhasználni a védekezési stratégiák értékelésére és finomítására.