Míg az ellenséges képzés a modell „immunrendszerét” próbálja megerősíteni azzal, hogy direktben mutat neki támadási mintákat, a védekező desztilláció egy teljesen más úton indul el. Nem a támadásokkal szembeni specifikus ellenállást növeli, hanem a modell döntési felületét próbálja meg „kisimítani”, hogy az kevésbé legyen érzékeny az apró, rosszindulatú perturbációkra. Az alapötlet egy elegáns analógiából, a tanár-diák modellből származik, de egy védekező csavarral.
Az alapötlet: Tudás átadása „lágy” címkékkel
A neurális hálók desztillációjának eredeti célja a modellkompresszió volt. A koncepció szerint egy nagy, komplex, de nagy tudású „tanár” modellt arra használunk, hogy egy kisebb, gyorsabb „diák” modellt tanítson. A trükk a tanítás módjában rejlik. Ahelyett, hogy a diák modell a nyers adatokon szereplő „kemény” címkéket (pl. [0, 1, 0] egy „macska” kép esetén) tanulná meg, a tanár modell által adott „lágy” címkéket kapja meg.
Ezek a lágy címkék valójában a tanár modell kimeneti valószínűségi eloszlásai. Például a „macska” képre a tanár nemcsak azt mondja, hogy 99% eséllyel macska, hanem azt is, hogy 0.8% eséllyel kutya és 0.2% eséllyel tigris. Ez az extra információ – az osztályok közötti finom kapcsolatok – az, amit „sötét tudásnak” (dark knowledge) nevezünk. A diák modell ezt a gazdagabb információt felhasználva hatékonyabban tanul.
A lágyságot egy ún. hőmérsékleti (temperature, T) paraméterrel szabályozzák a softmax függvényben. Magasabb T érték esetén az eloszlás „lágyabb”, egyenletesebb lesz, míg T=1 az alapértelmezett, „keményebb” eloszlást adja.
# A softmax függvény hőmérséklettel
def softmax_with_temp(logits, temperature=1):
# A logitokat elosztjuk a hőmérséklettel, mielőtt a softmaxot alkalmaznánk
# Magas T -> az értékek közelebb kerülnek egymáshoz -> lágyabb eloszlás
scaled_logits = logits / temperature
exp_logits = np.exp(scaled_logits)
return exp_logits / np.sum(exp_logits)
Hogyan válik a desztilláció védelemmé?
A védekező desztilláció (Nicolas Papernot és munkatársai ötlete) ezt a koncepciót fordítja át a biztonság nyelvére. A folyamat két fő lépésből áll, és a kulcs az, hogy a tanár és a diák modell architektúrája megegyezik.
- Tanár modell tanítása: Először betanítunk egy modellt (a tanárt) az eredeti adathalmazon, de a softmax rétegben egy magas, T > 1 hőmérsékleti paramétert használunk. Ez a modell megtanulja az általános mintázatokat, de a kimeneti eloszlásai lágyabbak lesznek.
- Diák modell tanítása: Ezután a betanított tanár modellel legeneráljuk az egész tanító adathalmazra a lágy címkéket (a valószínűségi eloszlásokat). Majd betanítunk egy új, azonos architektúrájú diák modellt, amely ezeket a lágy címkéket próbálja megtanulni, szintén T > 1 hőmérséklet mellett.
A végső, védelemre szánt modell a diák modell, amelyet az inferencia során már T=1 hőmérséklettel használunk. A folyamat lényege, hogy a diák modellt arra kényszerítjük, hogy ne csak a helyes osztályt tanulja meg, hanem a tanár által feltárt finomabb osztályközi kapcsolatokat is.
Miért működött (egy ideig)? A gradiens-maszkolás jelensége
A védekező desztilláció kezdeti sikere annak volt köszönhető, hogy a modell döntési felülete rendkívül „sima” lett. A gradiens-alapú támadások (mint az FGSM) a bemenethez viszonyított veszteségfüggvény gradiensét használják a perturbáció irányának meghatározására. A desztillált modell esetében ez a gradiens szinte nullává válik.
Ha a gradiens elenyészően kicsi, a támadó algoritmus nem talál „meredek” irányt, amerre elindulhatna, hogy maximalizálja a hibát. Úgy tűnik, a modell immunissá vált a kis lépésekben haladó támadásokra. Ezt a jelenséget gradiens-maszkolásnak vagy gradiens-eltüntetésnek (gradient masking/obfuscation) nevezzük. A védelem nem teszi a modellt valójában robusztussá, csak megnehezíti a támadók számára a sebezhetőségek megtalálását a leggyakoribb eszközökkel.
A bukás: Hogyan törték fel a védekező desztillációt?
A gradiens-maszkolás egyben a módszer Achilles-sarka is. Nem sokkal a publikálása után Nicholas Carlini és David Wagner bemutatták, hogy a védelem könnyen megkerülhető. Rájöttek, hogy a gradiens nem tűnik el teljesen, csak nagyon kicsi lesz. A támadásaik több ponton is kijátszották a védelmet:
- Logitokra való támadás: Ahelyett, hogy a végső, softmax utáni valószínűségeket támadták volna, a softmax réteg „előtti” logitokat célozták meg. Ezen a ponton a gradiensek még informatívak voltak.
- Módosított veszteségfüggvény: Olyan veszteségfüggvényt (C&W loss) definiáltak, amely jobban működik az ilyen kis gradiensekkel rendelkező modelleken, és hatékonyabban talál ellenséges példákat.
- Iteratív módszerek: Ahelyett, hogy egyetlen nagy lépést tettek volna (mint az FGSM), sok apró, iteratív lépéssel sokkal nagyobb eséllyel találtak olyan perturbációt, ami átbillenti a modell döntését.
Ezek a fejlettebb támadások gyakorlatilag 100%-os sikerrel törték fel a védekező desztillációval védett modelleket, bebizonyítva, hogy a gradiens-maszkoláson alapuló védelmek hamis biztonságérzetet keltenek.
Összegzés és tanulságok
Bár ma már nem számít hatékony védelemnek, a védekező desztilláció mégis fontos mérföldkő az ellenséges gépi tanulás történetében. Megtanította a közösségnek, hogy a védelem érvényességének legfőbb próbája az, ha ellenáll a legerősebb, adaptív támadásoknak is. Egy védelem, ami csak a gyenge, naiv támadások ellen működik, valójában nem védelem.
| Jellemző | Védekező Desztilláció | Ellenséges Képzés (4.3.1) |
|---|---|---|
| Alapelv | A modell döntési felületének kisimítása a „tanár-diák” tanítási folyamattal. | A modell explicit tanítása ellenséges példákkal, hogy megtanulja azokat helyesen osztályozni. |
| Fő előny | Nem igényli ellenséges példák generálását a tanítás során. A modell általánosítása nem romlik jelentősen. | Valódi robusztusságot ad a tanítás során használt támadásokkal szemben. |
| Fő hátrány | Gradiens-maszkolásra épül, ami fejlettebb támadásokkal megkerülhető. Hamis biztonságérzetet ad. | Számításigényes (támadások generálása minden lépésben). Csökkentheti az általánosítási képességet a tiszta adatokon. |
| Robusztusság ma | Elavult. Nem tekinthető hatékony védelemnek. | Hatékony, de csak a tanítás során látott támadástípusok ellen. Az egyik legszélesebb körben használt módszer. |
A legfontosabb tanulság
A védekező desztilláció bukása rávilágított egy kritikus alapelvre az AI Red Teamingben:
ne bízz azokban a védelmekben, amelyek a támadó dolgát csak megnehezítik, ahelyett, hogy a támadást matematikailag lehetetlenné tennék!
A gradiens-maszkolás egy akadály, nem egy fal. Egy elszánt támadó mindig talál módot az akadály megkerülésére!