A sikeresen végrehajtott FGSM támadás önmagában még nem a történet vége. Az igazi munka most kezdődik: meg kell értenünk, mi történt, mennyire volt hatékony a támadás, és milyen tanulságokat vonhatunk le a modell sebezhetőségéről. Az értékelés nem csupán egy „sikerült/nem sikerült” pecsét, hanem egy mélyreható analízis, ami a red teaming folyamat lényegét adja.
A támadás hatásának felmérése: Több mint siker vagy kudarc
Az értékelést több szinten érdemes elvégezni, a legegyszerűbb minőségi ellenőrzéstől a komplex kvantitatív metrikákig. Lássuk a legfontosabb lépéseket!
1. A besorolás megváltozása: A legalapvetőbb ellenőrzés
A támadás elsődleges célja a misclassification, vagyis a téves besorolás elérése volt. Az első és legfontosabb lépés tehát annak ellenőrzése, hogy a modell a zavaró példára (adversarial example) más címkét jósolt-e, mint az eredeti, tiszta képre.
Eredeti kép predikciója
Címke: „Panda”
Konfidencia: 97%
Zavaró példa predikciója
Címke: „Gibbon”
Konfidencia: 89%
Programmatikusan ez egy egyszerű összehasonlítást jelent a két predikció között:
# Feltételezzük, hogy 'original_pred' és 'adversarial_pred' a modell kimenetei
# A kimenetek logitok, ezért az argmax adja a jósolt osztály indexét
original_label = torch.argmax(original_pred)
adversarial_label = torch.argmax(adversarial_pred)
if original_label != adversarial_label:
print(f"Sikeres támadás! Eredeti: {original_label.item()}, Új: {adversarial_label.item()}")
else:
print("A támadás sikertelen, a besorolás nem változott.")
2. Konfidencia-eltolódás: Mennyire lett bizonytalan a modell?
Egy támadás akkor is informatív lehet, ha nem eredményez teljes téves besorolást. Előfordulhat, hogy a helyes címke konfidenciája drasztikusan lecsökken, ami a modell megingását jelzi. Érdemes megvizsgálni a predikciós valószínűségek (softmax kimenetek) eloszlását a támadás előtt és után.
| Osztály | Eredeti konfidencia | Módosított konfidencia | Változás |
|---|---|---|---|
| Panda | 97.3% | 5.1% | -92.2% |
| Gibbon | 0.2% | 89.8% | +89.6% |
| Siamang | 0.1% | 2.5% | +2.4% |
Ez a táblázat sokkal részletesebb képet ad, mint egy egyszerű címke-összehasonlítás. Látható, hogy a modell „figyelme” teljesen átterelődött egy másik, vizuálisan hasonló osztályra.
3. Vizuális analízis: Az észlelhetetlenség igazolása
Az adversarial támadások egyik kulcseleme, hogy a perturbáció emberi szem számára láthatatlan vagy legalábbis jelentéktelen legyen. Ezt vizuálisan kell ellenőriznünk. Két dolgot érdemes megjeleníteni:
- Az eredeti és a zavaró kép összehasonlítása: Egymás mellett megjelenítve őket, meggyőződhetünk arról, hogy a változás valóban minimális.
- Maga a perturbáció (zaj): A zavaró és az eredeti kép különbségét megjelenítve láthatóvá válik a hozzáadott zajminta. Ez segít megérteni, hogy a modell „hol” sebezhető.
import matplotlib.pyplot as plt
# A perturbáció kiszámítása
perturbation = adversarial_image - original_image
# Képek megjelenítése
plt.figure(figsize=(12, 4))
plt.subplot(1, 3, 1)
plt.imshow(original_image.squeeze().detach().numpy(), cmap='gray')
plt.title("Eredeti Kép")
plt.axis('off')
plt.subplot(1, 3, 2)
# A zajt felskálázzuk a jobb láthatóságért
plt.imshow(perturbation.squeeze().detach().numpy(), cmap='gray')
plt.title(f"Perturbáció (epsilon={epsilon})")
plt.axis('off')
plt.subplot(1, 3, 3)
plt.imshow(adversarial_image.squeeze().detach().numpy(), cmap='gray')
plt.title("Zavaró Példa")
plt.axis('off')
plt.show()
4. Kvantitatív metrikák: A szubjektivitáson túl
Egyetlen példa vizsgálata hasznos, de a modell robusztusságának teljes megértéséhez nagyobb adathalmazon végzett, számszerűsíthető mérésekre van szükség.
- Attack Success Rate (ASR): A támadási sikerességi arány. Megmutatja, hogy a teszt adathalmaz hány százalékánál sikerült a modell predikcióját megváltoztatni. Ez a leggyakoribb metrika a támadások hatékonyságának mérésére.
- Perturbation Magnitude (Perturbáció mértéke): A hozzáadott zaj „nagyságát” méri. Az FGSM esetében ezt az
epsilonparaméter korlátozza (L-infinity norma). Kisebb perturbációval elért siker hatékonyabb támadást jelez. Más normákat (pl. L2) is használhatunk a zaj átlagos energiájának mérésére. - Model Accuracy under Attack: A modell pontossága a zavaró példákból álló teszthalmazon. Ez közvetlenül mutatja a támadás okozta teljesítménycsökkenést. Ha egy modell pontossága 95%-ról 10%-ra esik egy adott
epsilonérték mellett, az komoly sebezhetőségre utal.
Az eredmények értékelése nem csupán a támadás lezárása. Ez egy kritikus visszacsatolási hurok, amely információt szolgáltat a modell gyengeségeiről. A megfigyelt konfidencia-eltolódások, a sikeres támadásokhoz szükséges perturbáció mértéke és a vizuális anomáliák mind-mind olyan adatpontok, amelyek egy későbbi, védelmi mechanizmusokat (pl. adversarial training) kidolgozó folyamat alapját képezhetik.