Míg az időbeli ellenséges példák a videófolyam „szintaktikáját” támadják – finom, szinte láthatatlan zajokkal operálva –, a cselekvésfelismerés manipulálása egy szinttel feljebb lép. Itt a cél a modell szemantikai értelmezésének megtévesztése. Nem elég, hogy a modell rosszul osztályozzon, a cél az, hogy egy teljesen más, kontextuálisan hihető, de hamis cselekvést lásson bele a jelenetbe. Egy agresszív mozdulatot baráti integetésnek, egy lopást pedig egy tárgy normális felemelésének álcázunk.
A szemantikai támadások anatómiája
A cselekvésfelismerő modellek (pl. 3D CNN-ek, Transformer-alapú architektúrák) a mozgás mintázatait, a testtartást és az objektumokkal való interakciót elemzik az időben. A támadások pontosan ezeket a magas szintű jellemzőket célozzák. Nézzünk meg néhány tipikus problémát és a Red Teaming során alkalmazott megoldási stratégiát.
Probléma 1: A modell túlságosan a kulcsképkockákra (key frames) támaszkodik
Sok modell nem minden képkockát elemez egyformán, hanem a cselekvés szempontjából leginkább informatívnak ítélt „kulcsképkockákra” fókuszál. Egy támadó kihasználhatja ezt azzal, hogy csak ezeket a kritikus pontokat módosítja, vagy a kontextusukat változtatja meg.
Megoldás: Kontextusmérgezés (Context Poisoning)
Ahelyett, hogy magát a cselekvést változtatnánk meg, a közvetlen előtte vagy utána lévő képkockákat manipuláljuk. Ezzel „megmérgezzük” a kontextust, amiben a modell a cselekvést értelmezi. Például egy semleges tárgyfelvétel előtt beillesztünk egy képkockát, ahol egy másik személy fenyegetően néz. A modell ezt összekapcsolhatja, és a semleges cselekvést agresszívnek címkézheti.
Probléma 2: A modell nem ismeri fel a szándékot, csak a mozgást
Az AI nem „érti” a szándékot. Egy cselekvés, ami fizikailag nagyon hasonlít egy másikra, könnyen összetéveszthető. Egy táska gyors felkapása a földről mozgásdinamikailag hasonlíthat egy ütés előkészítésére. A Red Teamer feladata, hogy megtalálja ezeket a kétértelmű, a döntési határon lévő mozdulatsorokat.
Megoldás: Ellenséges pózok és mozdulatsorok (Adversarial Poses/Choreography)
Ez egyfajta fizikai, valós világbeli ellenséges támadás. A cél olyan mozdulatsorok kidolgozása, amelyek egy ártalmatlan cselekvésnek tűnnek, de a modell egy rosszindulatú cselekvésként értelmezi őket (vagy fordítva). Ez gyakran iteratív folyamat:
- Válaszd ki a célcímkét (pl. „vészhelyzet”) és az álcázó cselekvést (pl. „nyújtózkodás”).
- Hajts végre egy mozdulatot, és figyeld a modell valós idejű kimenetét.
- Finomíts a mozgáson, a sebességen, a testtartáson, hogy maximalizáld a célcímke valószínűségét, miközben a mozdulat emberi szemmel ártalmatlannak tűnik.
Ez a technika különösen hatékony a pózbecslésen (pose estimation) alapuló rendszerek ellen, ahol a támadás a csontváz-reprezentáció „határterületeit” célozza.
# Pszeudokód az ellenséges mozdulat keresésére
import numpy as np
def get_model_prediction(pose_sequence):
# Itt hívnánk meg a cselekvésfelismerő modellt
# Visszaadja a valószínűségeket a különböző cselekvésekre
return model.predict(pose_sequence)
# Kezdő mozdulat: egy egyszerű nyújtózkodás
original_sequence = load_pose_sequence("stretching.mp4")
target_action = "fighting" # Ezt akarjuk, hogy a modell lássa
# Iteratív finomítás
for i in range(100):
# Kis módosítás a pózokon (pl. egy kar szögének változtatása)
modified_sequence = original_sequence + np.random.normal(0, 0.05, original_sequence.shape)
predictions = get_model_prediction(modified_sequence)
loss = -np.log(predictions[target_action]) # A cél akció valószínűségét maximalizáljuk
# Gradiens alapú vagy genetikus algoritmussal frissítjük a mozdulatsort
# a loss csökkentése érdekében (a negatív log miatt ez a valószínűséget növeli)
original_sequence = update_sequence_based_on_loss(original_sequence, loss)
print("Optimalizált mozdulatsor megtalálva.")
Probléma 3: A modell figyelmen kívül hagyja a részleges kitakarást
A valós világban gyakoriak a kitakart jelenetek. A modelleket általában úgy tanítják, hogy robusztusak legyenek erre, és a látható részekből következtessenek a teljes cselekvésre. Ez a „jóindulatú” képesség fegyverré válhat: egy támadó szándékosan takarhat ki kulcsfontosságú elemeket, hogy a modellt félrevezesse.
Megoldás: Stratégiai kitakarás
A támadó nem véletlenszerűen takar ki részeket, hanem pontosan azokat, amelyek a leginkább megkülönböztetnék a rosszindulatú cselekvést egy ártalmatlantól. Például egy tiltott tárgy átadása során a két ember közötti teret egy ártatlannak tűnő tárggyal (pl. egy laptoppal, újsággal) takarják ki pont az átadás pillanatában. A modell csak két, egymáshoz közel álló embert lát, és ártalmatlan interakcióként értelmezi a jelenetet.
| Támadási Vektor | Leírás | Red Teaming Példa |
|---|---|---|
| Naiv kitakarás | Véletlenszerű vagy nem szándékos takarás, amit a modellnek kezelnie kell. | Egy oszlop részlegesen kitakar egy személyt. A modellnek ettől még fel kell ismernie, hogy az illető sétál. |
| Stratégiai kitakarás | A cselekvés leginformatívabb részének szándékos elrejtése egy másik cselekvés imitálása céljából. | Egy zsebtolvajlás során a támadó a saját kabátjával takarja ki a kezét, miközben az áldozat táskájába nyúl. A modell csak két, szorosan egymás mellett álló embert lát. |
AI Red Teamer Zsebkönyv: Cselekvésfelismerés Támadása
- Gondolkodj szemantikában, ne pixelekben: A cél a jelentés manipulálása. Melyik ártalmatlan cselekvés hasonlít a legjobban a támadó cselekvésre?
- Törd meg a kontextust: Illessz be vagy vegyél el képkockákat a cselekvés előtt/után, hogy megváltoztasd a modell értelmezését. Egy mosoly egy ütés előtt teljesen összezavarhatja a rendszert.
- Használd a fizikai teret: Tervezz „ellenséges mozdulatsorokat”, amelyek a modell vakfoltjait használják ki. Gyakorold be ezeket a mozdulatokat.
- A kitakarás a barátod: Ne csak elrejts dolgokat, hanem rejtsd el a döntő információt hordozó részeket. Takard ki a kezeket, az eszközöket, az interakció pontját!