A támadás elindítása csak a fél siker. Az igazi munka annak megértésében rejlik, hogy a támadás mennyire volt hatékony, és a modell mennyire sebezhető. A számok nélküli red teaming csak tapogatózás a sötétben. Ez a fejezet arról szól, hogyan kapcsoljuk fel a villanyt.
Miután sikeresen implementáltál egy támadást az ART segítségével (ahogy az előző fejezetekben láttuk), a következő logikus kérdés merül fel: „És most mi van?”.
Honnan tudod, hogy a generált adverzariális példa valóban hatásos? Mennyire kellett módosítani az eredeti bemenetet? Mennyire áll ellen a modellünk egy adott támadástípusnak? Ezekre a kérdésekre a metrikák adják meg a választ. Az értékelés nem egy opcionális lépés, hanem az ai red teaming ciklus magja.
A mérés két oldala: Támadás és Védelem
Az ART-ban és általában az adverzariális gépi tanulásban a metrikákat két fő kategóriába sorolhatjuk. Az egyik a támadások sikerességét méri, a másik pedig a modell általános robusztusságát. Bár a kettő összefügg, nem ugyanazt jelentik!
- Támadási metrikák: Egy adott támadási kísérlet hatékonyságát számszerűsítik. (Pl. „Ez az FGSM támadás 85%-os sikerrel járt ezen az adathalmazon.”)
- Robusztussági metrikák: A modell általános ellenálló képességét mérik, gyakran több támadás vagy egy teljes teszthalmaz kontextusában. (Pl. „A modellünk robusztussága 0.4, ha maximum 0.1 L-infinity perturbációt engedélyezünk.”)
Támadásspecifikus metrikák: A siker anatómiája
Amikor egy konkrét támadást futtatsz, több dimenzió mentén is értékelned kell az eredményt. Nem elég, ha a modell rossz döntést hoz; az sem mindegy, milyen áron.
Félreosztályozási arány (Misclassification Rate)
Ez a legalapvetőbb metrika. Egyszerűen azt méri, hogy a generált ellenséges példák hány százalékát osztályozta félre a modell. Egy célzott támadásnál azt is nézheted, hogy a példák hány százaléka kapta meg a kívánt célcímkét.
Perturbáció mértéke
Talán a legfontosabb metrika a félreosztályozási arány mellett. Azt mutatja meg, hogy mennyire kellett megváltoztatni az eredeti bemenetet a siker érdekében. Egy jó adverzariális támadás minimális, emberi szemmel észrevehetetlen változtatással éri el a célját.
A perturbációt leggyakrabban Lp normákkal mérjük:
- L0 norma: A megváltoztatott pixelek/jellemzők száma. Akkor hasznos, ha a változtatások számát akarod korlátozni.
- L2 norma: A változtatások euklideszi távolsága. A perturbáció teljes „energiáját” méri. Kisebb, de sok helyen elszórt zajt eredményez.
- L∞ (L-infinity) norma: A legnagyobb egyedi változtatás mértéke egy pixelen/jellemzőn. Ez biztosítja, hogy egyetlen ponton se legyen kiugróan nagy a módosítás.
Az ART számos funkciót biztosít ezek mérésére, de a lényeg: minél kisebb a perturbáció mértéke egy sikeres támadásnál, annál erősebb a támadás.
Számítási költség és lekérdezések száma
Főleg black-box támadásoknál kritikus metrika. Azt méri, hogy a támadónak hányszor kellett interakcióba lépnie a modellel (lekérdezést küldenie) a sikeres adverzariális példa létrehozásához.
Egy hatékony támadás kevés lekérdezésből is működik, ami a valós világban nehezebben detektálhatóvá teszi.
A modell robusztusságának mérése
Egyetlen támadás sikere még nem jelenti azt, hogy a modell teljesen védtelen. A teljes képhez a modell általános ellenálló képességét kell felmérnünk. Itt jönnek képbe a robusztussági metrikák.
Empirikus robusztusság (Empirical Robustness)
Ez a leggyakoribb megközelítés. Lényegében arról van szó, hogy a modellt leteszteljük egy előre definiált adathalmazon, egy vagy több ismert támadási módszerrel, rögzített paraméterek (pl. perturbációs büdzsé) mellett. Az eredmény a modell pontossága ezeken az adverzariális példákon. Ez egy gyakorlatias, de nem teljes körű bizonyíték a modell biztonságáról, hiszen csak az alkalmazott támadások ellen nyújt képet.
| Modell | Eredeti pontosság (CIFAR-10) | Pontosság FGSM támadás után | Pontosság PGD támadás után |
|---|---|---|---|
| Standard ResNet18 | 94.5% | 15.2% | 0.1% |
| Adverzariálisan tréningezett ResNet18 | 87.1% | 55.8% | 48.3% |
Attack-Specific Evasion Rate (ASER)
Az ASER azt méri, hogy egy adott támadás milyen sikerességi rátával képes félrevezetni a modellt egy teszthalmazon. Ez lényegében a félreosztályozási arány egy specifikus támadásra és adathalmazra vetítve. Az ART art.metrics.evasion attack success rate függvénye pontosan ezt számolja ki.
Metrikák implementációja az ART-ban
Az elmélet után nézzük a gyakorlatot. Az ART `art.metrics` modulja számos beépített eszközt kínál a fenti metrikák egyszerű kiszámításához. Ezek használata általában rendkívül egyszerű: bemenetként megkapják a modell predikcióit és a valós címkéket, majd visszaadják a kívánt értéket.
# Importáljuk a szükséges metrika függvényeket
from art.metrics import classification_accuracy, clever_u, clever_t
# Tegyük fel, vannak eredeti és adverzariális predikcióink
# y_true: a valós címkék
# predictions_clean: a modell predikciói a tiszta adaton
# predictions_adv: a modell predikciói az adverzariális adaton
# Pontosság kiszámítása
accuracy_clean = classification_accuracy(y_true, predictions_clean)
accuracy_adv = classification_accuracy(y_true, predictions_adv)
print(f"Eredeti pontosság: {accuracy_clean * 100:.2f}%")
print(f"Pontosság támadás után: {accuracy_adv * 100:.2f}%")
# A modell robusztussága (a támadás sikertelensége)
robustness = accuracy_adv / accuracy_clean if accuracy_clean > 0 else 0.0
print(f"Relatív robusztusság: {robustness:.2f}")
A fenti példa a legegyszerűbb esetet mutatja be. Az ART ennél komplexebb metrikákat is kínál, mint például a CLEVER score, ami egy támadás-agnosztikus robusztussági metrika. A lényeg, hogy nem kell nulláról implementálnod ezeket a számításokat; a keretrendszer hatékony és validált eszközöket ad a kezedbe.
A metrikák és az értékelés nem csupán a riportok szépítésére szolgálnak. Ezek a te iránytűid a red teaming folyamat során. Segítenek megérteni a támadások erősségeit és gyengeségeit, azonosítani a modell legsebezhetőbb pontjait, és objektíven mérni a bevezetett védelmi mechanizmusok hatékonyságát. A következő fejezetben ezeket az elveket konkrét, futtatható kódpéldákon keresztül fogjuk a gyakorlatba átültetni.