Az eddig tárgyalt védelmi mechanizmusok – mint az ellenséges képzés vagy a bemeneti transzformációk – egy közös vonással rendelkeznek: hatékonyságuk empirikus. Tesztekkel igazoljuk, hogy egy adott támadással szemben ellenállóbbá teszik a modellt. De mi van, ha a védelem nem csak „jónak tűnik”, hanem matematikailag is bizonyíthatóan az? Ez a gondolat vezet el minket a tanúsított védelmek világába, ahol a reményt felváltja a garancia.
A garancia igénye: Túl az empirikus védelmen
Az ellenséges gépi tanulás területét gyakran egyfajta fegyverkezési versenyhez hasonlítják. Egy új védelmi mechanizmus megjelenését szinte azonnal követi egy új támadási technika, amely képes azt megkerülni. Az ellenséges képzés például robusztusabbá teszi a modelleket az ismert támadási mintákkal szemben, de egy kellően innovatív, a képzés során nem látott támadás még mindig sikeres lehet.
A tanúsított védelmek (Certified Defenses) célja, hogy kitörjenek ebből a ciklusból. Ahelyett, hogy egy specifikus támadási algoritmus ellen védekeznének, formális garanciát nyújtanak. Ez a garancia kimondja, hogy egy adott bemenet (pl. egy kép) egy meghatározott mértékű (ε) perturbációs környezetén belül semmilyen támadás nem tudja megváltoztatni a modell döntését. Ezt nevezzük tanúsított robusztusságnak.
Gondolj erre úgy, mint egy biztonsági széfre. Az empirikus védelem olyan, mintha vennél egy széfet, és megpróbálnád feltörni különböző eszközökkel. Ha nem sikerül, bízol benne, hogy biztonságos. A tanúsított védelem ezzel szemben a széf tervrajzainak és anyagának elemzése, ami alapján a gyártó kiállít egy tanúsítványt, hogy az egy bizonyos erősségű fúrónak vagy robbanásnak garantáltan ellenáll. Nem kell tesztelned, a garancia a matematikán és a fizikán alapul.
A tanúsítás mechanizmusai
A tanúsítvány kiállítása nem triviális feladat. Többféle megközelítés létezik, amelyek komplexitásban és a nyújtott garancia szorosságában is eltérnek. Két meghatározó irányzatot érdemes kiemelni.
Véletlenszerű simítás (Randomized Smoothing)
Ez az egyik legnépszerűbb és leginkább skálázható tanúsítási módszer. Az alapötlete meglepően intuitív. Ahelyett, hogy a modellt közvetlenül a bemeneten értékelnénk ki, egy „elsimított” verzióját hozzuk létre. Ez a gyakorlatban a következőket jelenti:
- Vegyük az eredeti bemenetet (pl. egy képet).
- Adunk hozzá egy kis, véletlenszerű (jellemzően Gauss-eloszlású) zajt.
- Ezt a zajosított képet adjuk a modellnek, és feljegyezzük a predikcióját.
- Ezt a folyamatot megismételjük nagyon sokszor (több ezerszer), minden alkalommal új véletlen zajjal.
- A végső, „elsimított” predikció az lesz, amelyet a modell a legtöbbször adott a zajosított bemenetekre.
Ennek a folyamatnak a szépsége, hogy matematikailag levezethető egy ún. tanúsított sugár (certified radius). Ez a sugár megadja azt az ε értéket, amelyen belül garantált, hogy a leggyakoribb osztály predikciója nem változik meg, függetlenül a perturbáció jellegétől. Minél magabiztosabb a modell a leggyakoribb osztályban (pl. a futtatások 99%-ában ugyanazt jósolja), annál nagyobb lesz a tanúsított sugár.
# Pszeudokód a Véletlenszerű Simítás alapú predikcióhoz és tanúsításhoz
függvény SimitottPredikcioEsTanúsítvány(modell, bemenet, zaj_szigma, n_minta, alfa):
"""
Kiszámítja a legvalószínűbb osztályt és egy tanúsított sugarat.
:param modell: Az alap klasszifikációs modell.
:param bemenet: Az eredeti bemeneti adatpont.
:param zaj_szigma: A Gauss-zaj szórása.
:param n_minta: A mintavételezések száma.
:param alfa: A szignifikanciaszint (pl. 0.001).
"""
# 1. Mintavételezés és predikciók gyűjtése
szamlalok = {} # {osztaly: darabszam}
for i in range(n_minta):
zaj = NormalEloszlas(0, zaj_szigma)
zajos_bemenet = bemenet + zaj
predikcio = modell.josol(zajos_bemenet)
szamlalok[predikcio] = szamlalok.get(predikcio, 0) + 1
# 2. Leggyakoribb osztály és alsó korlátjának meghatározása
leggyakoribb_osztaly = max(szamlalok, key=szamlalok.get)
leggyakoribb_db = szamlalok[leggyakoribb_osztaly]
# Statisztikai módszerrel (pl. Clopper-Pearson intervallum) alsó korlátot becslünk
# a leggyakoribb osztály valószínűségére.
p_also_korlat = BinomialisAlsoKorlat(leggyakoribb_db, n_minta, 1 - alfa)
# 3. Tanúsított sugár kiszámítása
if p_also_korlat > 0.5:
sugar = zaj_szigma * InverzKumulativEloszlas(p_also_korlat)
return (leggyakoribb_osztaly, sugar) # Visszaadjuk az osztályt és a garanciát
else:
return ("NEM_TANUSITHATO", 0.0) # Nem tudunk garanciát adni
Intervallumhatár-terjesztés (Interval Bound Propagation – IBP)
Az IBP egy teljesen más megközelítést alkalmaz. Ahelyett, hogy a bemeneti térben mintavételezne, a hálózat aktivációin keresztül „terjeszti” a bizonytalanságot. Az alapgondolat a következő:
Ahelyett, hogy egyetlen bemeneti pontot (pl. egy képpont értékét) adnánk a hálózatnak, egy egész intervallumot adunk meg. Ez az intervallum reprezentálja az összes lehetséges értéket, amit a képpont felvehet az ε perturbáción belül. Például, ha egy képpont értéke 128 és ε=2, az intervallum [126, 130] lesz.
Ezt az intervallumot vezetjük végig a neurális hálózaton. Minden réteg nem egyetlen értéket, hanem egy intervallumot kap bemenetként, és egy új, jellemzően szélesebb intervallumot számol ki kimenetként. A folyamat végén a kimeneti réteg minden neuronjához (minden osztályhoz) egy-egy intervallum fog tartozni. Ha a helyes osztályhoz tartozó kimeneti intervallum alsó határa nagyobb, mint az összes többi osztály intervallumának felső határa, akkor a modell tanúsítottan robusztus az adott bemenetre és ε-ra nézve. Ez azt jelenti, hogy a perturbációs halmazon belül semmilyen bemenet nem tudja elérni, hogy egy másik osztály valószínűsége magasabb legyen.
Az Intervallum alapú korlátterjesztés (IBP) vizualizációja
Az érem másik oldala: Kompromisszumok és korlátok
A matematikai garancia vonzó, de nincs ingyen. A tanúsított védelmeknek jelentős kompromisszumai vannak, amelyeket egy Red Teaming szakértőnek ismernie kell.
| Szempont | Empirikus Védelmek (pl. Ellenséges Képzés) | Tanúsított Védelmek (pl. Randomized Smoothing) |
|---|---|---|
| Garancia | Nincs formális garancia. A robusztusság a tesztelt támadásoktól függ. | Matematikailag bizonyítható garancia egy adott perturbációs normán és sugáron belül. |
| „Tiszta” pontosság | Általában magasabb, közel az eredeti modell pontosságához. | Gyakran szignifikánsan alacsonyabb. A garancia „ára” a csökkent teljesítmény a nem-ellenséges adatokon. |
| Számítási költség | A képzési fázis drága, de az inferencia gyors. | A képzés lehet gyorsabb (IBP), de az inferencia/tanúsítás (főleg Randomized Smoothing esetén) nagyon lassú lehet a sok mintavételezés miatt. |
| A garancia „szorossága” | – | A garantált robusztussági sugár gyakran sokkal kisebb, mint az empirikusan megfigyelhető robusztusság. A modell lehet ellenállóbb, mint amit bizonyítani tudunk. |
| Alkalmazhatóság | Széles körben alkalmazható, viszonylag könnyen implementálható. | Komplexebb, gyakran speciális modellarchitektúrát vagy képzési eljárást igényel. |
Fontos megérteni, hogy egy tanúsítvány csak annyira erős, amennyire a mögötte lévő feltételezések. Egy L₂-norma alapú tanúsítvány semmit sem mond a modell viselkedéséről egy L∞ támadás, vagy egy szemantikailag jelentéssel bíró, de nagy képpont-változással járó perturbáció esetén. A tanúsított védelem tehát nem egy univerzális pajzs, hanem egy specifikus, de nagyon erős garancia egy jól definiált fenyegetési modellen belül.
Az AI Red Teaming kontextusában a tanúsított védelmekkel ellátott modellek tesztelése új kihívásokat jelent. A cél már nem feltétlenül az, hogy a tanúsított sugáron belül találjunk támadást – hiszen ez elméletileg lehetetlen –, hanem hogy megvizsgáljuk a tanúsítvány korlátait: Mi történik a sugáron túl? Milyen más típusú támadásokkal szemben sebezhető a modell? Hogyan viselkedik a rendszer, ha a tanúsítási folyamat maga válik a támadás célpontjává?
Ezek a kérdések vezetnek tovább a következő védelmi filozófiához: mi van, ha nem a támadás kivédésére, hanem annak puszta észlelésére koncentrálunk?