17.1.4 Perturbációs költségvetések

2025.10.06.
AI Biztonság Blog

Az előző fejezetben láttuk, hogyan mérhetjük egy támadás sikerességét. De egy sikeres támadás önmagában nem mond el mindent. Nem mindegy, hogy a sikert egy alig észrevehető, finom módosítással értük el, vagy az eredeti bemenet felismerhetetlenségig való torzításával. Itt jön képbe a perturbációs költségvetés: a keretrendszer, ami korlátozza a támadó erejét, és értelmes, összehasonlítható kontextusba helyezi a robusztusság mérését.

Kapcsolati űrlap

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

A központi gondolat: A perturbációs költségvetés (gyakran epsilon, ε) egy numerikus korlát, amely meghatározza, hogy egy támadó legfeljebb mekkora mértékben módosíthatja az eredeti bemeneti adatot. Ez a korlát biztosítja, hogy a generált adverzárius példa releváns maradjon – azaz emberi szemmel (vagy más érzékszervvel) megkülönböztethetetlen vagy csak minimálisan eltérő az eredetitől.

Miért elengedhetetlen a költségvetés?

Költségvetés nélkül a robusztusság mérése értelmét veszti. 

Bármelyik képosztályozót rá lehet venni, hogy egy macskát ábrázoló képet „autónak” klasszifikáljon, ha elegendő pixelt módosíthatunk – végső soron akár lecserélhetjük a teljes képet egy autót ábrázolóra. Ez azonban nem a modell gyengeségét mutatja, hanem a teszt irrelevanciáját!

A költségvetés bevezetése több célt szolgál:

  • Realizmus: Valós fenyegetéseket modellez, ahol a támadónak rejtve kell maradnia. Egy észrevehetetlenül módosított kép vagy egy hangzásában azonos audiofájl sokkal veszélyesebb.
  • Összehasonlíthatóság: Lehetővé teszi különböző modellek és védelmi mechanizmusok objektív összevetését. Az a modell a robusztusabb, amelyik egy adott ε költségvetés mellett jobban ellenáll a támadásoknak.
  • Formalizálás: Matematikai keretet ad a robusztusság definíciójához. Egy modell (x, ε)-robusztus, ha az x bemenet ε sugarú környezetében minden pontra ugyanazt a kimenetet adja.

A költségvetés mérése: L-p normák

A „távolságot” az eredeti és a módosított bemenet között matematikailag az úgynevezett L-p normákkal definiáljuk. Ezek különböző módokon mérik a perturbációs vektor nagyságát. A Red Teaming gyakorlatában három norma dominál.

L (Infinity vagy Végtelen-norma)

Ez a leggyakrabban használt norma képek esetén. A perturbációs vektor legnagyobb abszolút értékű elemét méri. Lényegében azt korlátozza, hogy egyetlen pixel értéke mennyivel változhat meg maximálisan.

Analógia: Képzeld el, hogy egy képszerkesztőben minden pixel csúszkáját csak egy picit mozdíthatod el jobbra vagy balra. Az L költségvetés ennek a „pici elmozdulásnak” a maximális mértékét szabja meg.

Képlete: ||x – x’|| = maxi |xi – x’i| ≤ ε

Az L norma ideális az apró, elosztott zajok létrehozására, amelyek emberi szemmel szinte láthatatlanok, mivel egyetlen pixel sem „lóg ki” drasztikusan.

L2 (Euklideszi norma)

Az L2 norma a perturbációs vektor „hosszát” méri, mintha az egy euklideszi térben lévő vektor lenne. Ez a teljes perturbáció energiáját korlátozza. Lehetővé tesz nagyobb változásokat egyes pixeleken, amíg a többi pixel változása kicsi, így a teljes „energia” a költségvetésen belül marad.

Analógia: Ha a perturbáció egy festékszóró, az L2 költségvetés a flakonban lévő festék teljes mennyiségét korlátozza. Lehet egy helyre többet fújni, de akkor máshova kevesebb jut.

Képlete: ||x – x’||2 = √(∑i(xi – x’i)2) ≤ ε

Az L2 támadások gyakran kevésbé észrevehetetlenek, mint az L alapúak, de bizonyos esetekben hatékonyabbak lehetnek.

L0 (Nulla-norma)

Az L0 norma a perturbációs vektor nem-nulla elemeinek számát méri. Vagyis azt korlátozza, hogy hány pixelt (vagy szót, funkciót) módosíthatunk összesen. A módosítás mértéke ezen a néhány elemen belül tetszőleges lehet.

Analógia: Csak 3 pixelt változtathatsz meg a képen, de azokat bármilyen színűre átírhatod.

Képlete: ||x – x’||0 = ∑i 1(xi ≠ x’i) ≤ ε

Ez a norma az úgynevezett „sparse” (ritka) támadások alapja, ahol a cél néhány, stratégiailag fontos bemeneti jellemző megváltoztatása.

A normák vizuális értelmezése

A különböző normák által definiált költségvetések egy-egy „teret” jelölnek ki az eredeti bemenet körül, amelyen belül a támadónak maradnia kell. Egy 2D-s példán (két pixel) ez a tér egy négyzet (L), egy kör (L2) vagy egy rombusz (L1).

Δp₁ Δp₂ L∞ L₂ L₁ Eredeti

A diagramon látható, hogy az L norma egyenlő mértékben korlátoz minden irányban (minden pixelváltozást), míg az L2 a teljes távolságot, az L1 pedig a „tengelymenti” távolságok összegét. A támadásnak a megfelelő alakzaton belül kell maradnia.

Gyakorlati alkalmazás: Költségvetés a kódban

A támadó algoritmusok, mint például a PGD (Projected Gradient Descent), explicit módon használják a költségvetést. Minden iterációs lépés után „visszavetítik” (project) a perturbációt az ε-sugarú L-p „gömbbe”, biztosítva, hogy a korlátot soha ne lépjék át.


# Pszeudokód egy PGD lépésre L-infinity normával

def pgd_step(kep, perturbacio, epsilon, lepeskoz):
 # 1. Gradiens kiszámítása a veszteségfüggvény alapján
 grad = szamolj_gradienst(kep + perturbacio)

 # 2. A perturbáció frissítése a gradiens irányában
 # (maximalizáljuk a veszteséget)
 perturbacio = perturbacio + lepeskoz * grad.sign()

 # 3. Visszavetítés (clipping) az L-infinity gömbbe
 # Biztosítjuk, hogy egyetlen pixelváltozás sem nagyobb, mint epsilon
 perturbacio = torch.clamp(perturbacio, -epsilon, epsilon)

 # 4. Biztosítjuk, hogy a végső kép érvényes pixelértékekkel rendelkezzen
 # (pl. [0, 1] vagy [0, 255] tartományban maradjon)
 modositott_kep = torch.clamp(kep + perturbacio, 0, 1)

 # Visszaadjuk az új, korlátolt perturbációt
 return modositott_kep - kep
 

A fenti kódban a torch.clamp(perturbacio, -epsilon, epsilon) sor a kulcs: ez garantálja, hogy a perturbáció minden eleme az [-ε, ε] intervallumban marad, ami pontosan az L norma definíciója.

A megfelelő költségvetés kiválasztása

Nincs egyetlen, univerzálisan „jó” ε érték. A választás több tényezőtől függ:

Tényező Megfontolás Példa
Adattípus és normalizálás A bemeneti adatok skálája alapvetően meghatározza az ε értékét. CIFAR-10 képeknél, ahol a pixelek [0, 1] közé vannak normalizálva, egy tipikus L ε érték 8/255 ≈ 0.03. Ha a pixelek [0, 255] skálán vannak, ugyanez a költségvetés ε = 8.
Észlelhetőség A cél az, hogy a perturbáció ember számára láthatatlan maradjon. Ez a norma típusától is függ. Nagyobb L2 költségvetés is lehet észrevehetetlen, ha a zaj finoman oszlik el, míg egy kis L0 támadás (pár pixel megváltoztatása) nagyon is látható lehet.
Domén Különböző modalitások (kép, hang, szöveg) eltérő érzékenységgel bírnak a változásokra. Szöveg esetén egyetlen szó megváltoztatása (L0 támadás) drasztikusan megváltoztathatja a jelentést, míg egy kép esetében egyetlen pixel megváltoztatása általában hatástalan.
Benchmark standardok A kutatói közösség gyakran elfogadott standard értékeket használ az összehasonlíthatóság érdekében. Az ImageNet esetében gyakori az L ε=4/255 vagy ε=8/255 használata.

A perturbációs költségvetés tehát nem csupán egy technikai paraméter, hanem az AI Red Teaming értékelések egyik legfontosabb konceptuális eszköze. Meghatározza a játékszabályokat, és lehetővé teszi, hogy a „siker” szót egy mérhető, releváns és összehasonlítható metrikává alakítsuk.