2.1.2. Tanulási paradigmák: A gép tanításának három útja

2025.10.06.
AI Biztonság Blog

Mielőtt egyetlen sor kódot írnánk, mielőtt kiválasztanánk egy neurális háló architektúrát, egy alapvető döntést kell meghoznunk: hogyan fog a modellünk tanulni? Ez a döntés nem önkényes. A rendelkezésre álló adatok természete és a megoldani kívánt probléma határozza meg, hogy melyik tanulási paradigmát – vagyis tanítási módszert – kell alkalmaznunk. Ez a választás mélyen befolyásolja a rendszer viselkedését, és ami számunkra a legfontosabb, a potenciális sebezhetőségeit is.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Felügyelt tanulás (Supervised Learning): A szigorú tanár

A gépi tanulás világának klasszikus és legelterjedtebb megközelítése a felügyelt tanulás. A nevében is benne van a lényeg: a modellt egy „tanár” felügyeli. Ez a tanár nem más, mint egy gondosan előkészített, címkézett adathalmaz. Minden adatponthoz tartozik egy helyes „válasz” vagy kimenet.

Képzeld el, hogy egy modellt tanítasz macskák és kutyák felismerésére. Adsz neki több ezer képet, és mindegyikre ráírod: „ez egy macska” vagy „ez egy kutya”. A modell feladata, hogy megtalálja azokat a belső mintázatokat (éles fülek, bajusz, testalkat), amelyek alapján meg tudja különböztetni a két állatot. A tanítási folyamat során a modell tippel, és ha téved, a helyes címke alapján korrigálja a belső „súlyait” – ahogy az előző fejezetben a neurális hálózatoknál láttuk.

Tipikus feladatok

  • Klasszifikáció (Osztályozás): Diszkrét kategóriákba sorolás. Például: spam vagy nem spam? Jóindulatú vagy rosszindulatú szoftver? Melyik állat van a képen?
  • Regresszió: Folytonos érték becslése. Például: Mennyibe fog kerülni ez a ház? Milyen lesz a holnapi hőmérséklet? Mennyi idő alatt ér célba az autó?
# Pszeudokód egy egyszerű klasszifikációs modell tanítására
# A cél egy spam szűrő létrehozása

függvény tanítás(emailek, címkék):
 # A modell inicializálása
 modell = SpamSzűrőModell()
 
 # Az adathalmaz végigjárása több cikluson (epoch) keresztül
 ismételd 50-szer:
 minden email, címke az (emailek, címkék) párosban:
 # A modell jóslatot tesz
 jóslat = modell.jósol(email)
 
 # A hiba kiszámítása a jóslat és a valós címke között
 hiba = számol_hiba(jóslat, címke)
 
 # A modell belső súlyainak frissítése a hiba alapján
 # (Ez a "tanulás" lényege)
 modell.frissít_súlyokat(hiba)
 
 return modell

A Red Teamer nézőpontja

A felügyelt tanulás Achilles-sarka a címkézett adat. A modell vakon megbízik a tanárában. Ha a tanár hazudik, a modell rosszat tanul. Ezt hívjuk adat- vagy címkemérgezésnek (data/label poisoning). Egy támadó szándékosan hibásan címkézett adatokat csempészhet a tanítóhalmazba, hogy a modell később kritikus helyzetekben tévesen döntsön. Például, ha egy rosszindulatú kódot „jóindulatúként” címkéz fel, a vírusirtó modell megtanulhatja figyelmen kívül hagyni azt.

Nem felügyelt tanulás (Unsupervised Learning): A nyomozó

Mi történik, ha nincsenek címkéink? Ha csak egy hatalmas, rendezetlen adathalmazunk van, és azt a feladatot kapjuk, hogy „találj benne valami érdekeset”? Itt lép színre a nem felügyelt tanulás. Nincs tanár, nincs helyes válasz. A modellnek magának kell struktúrát, rejtett mintázatokat és összefüggéseket találnia az adatokban.

Olyan ez, mint amikor egy nyomozó kap egy doboznyi vegyes bizonyítékot, és anélkül, hogy tudná, mit keres, elkezdi csoportosítani őket: ezek a tárgyak a tetthelyről valók, ezek a tanúvallomások ugyanarról szólnak, ezek a pénzügyi tranzakciók gyanúsan egy időben történtek. A cél a belső szerkezet feltárása.

Klaszterezés: Rejtett csoportok felfedezése

Tipikus feladatok

  • Klaszterezés (Clustering): Az adatok természetes csoportokba rendezése. Például: vásárlók szegmentálása viselkedésük alapján, hírcikkek csoportosítása téma szerint.
  • Anomáliadetekció: A normális viselkedéstől eltérő, ritka események azonosítása. Például: csalárd banki tranzakciók kiszűrése, hálózati behatolási kísérletek észlelése.
  • Dimenziócsökkentés: Az adatok lényegi információtartalmának sűrítése kevesebb változóba, a zaj kiszűrésével.

A Red Teamer nézőpontja

A nem felügyelt modellek sebezhetősége abban rejlik, hogy hamis mintázatokat is „megtanulhatnak”. Egy támadó finoman manipulálhatja a bemeneti adatokat (ezt nevezik adateltolásnak vagy data driftnek), hogy a modell téves következtetésekre jusson. Például egy anomáliadetektáló rendszert lassan „hozzászoktathat” egy rosszindulatú viselkedéshez, amíg az már nem tekinti anomáliának. A klaszterező algoritmusokat rá lehet venni, hogy irreleváns vagy megtévesztő csoportokat hozzanak létre.

Megerősítéses tanulás (Reinforcement Learning): A kísérletező ügynök

A harmadik paradigma gyökeresen eltér az előző kettőtől. Itt nem statikus adathalmazból tanulunk, hanem egy dinamikus környezettel való interakció során, próbálkozások és hibák útján. A központi elem egy ügynök (agent), amely egy környezetben (environment) cselekszik, és a cselekedeteiért jutalmat (reward) vagy büntetést (penalty) kap. A célja, hogy maximalizálja a hosszú távon összegyűjtött jutalmat.

Gondolj egy sakkozó AI-ra. Nem kap egy listát a „helyes” lépésekről (az túl nagy lenne). Ehelyett játszik rengeteg partit. Ha lép egyet, és utána jobb pozícióba kerül, kap egy kis pozitív jutalmat. Ha elveszít egy figurát, büntetést kap. Ha megnyeri a játszmát, nagy jutalmat kap. Idővel az ügynök megtanulja azokat a stratégiákat, amelyek a győzelemhez, vagyis a maximális jutalomhoz vezetnek.

# Pszeudokód egy egyszerű megerősítéses tanulási ciklusra
# A cél, hogy egy robot eljusson a labirintus kijáratához

ügynök = Robot()
környezet = Labirintus()
állapot = környezet.kezdő_pozíció()

ciklus amíg nem célban_vagy_feladta:
 # 1. Az ügynök választ egy akciót az aktuális állapot alapján
 akció = ügynök.válassz_akciót(állapot)
 
 # 2. A környezet végrehajtja az akciót és új állapotot, jutalmat ad vissza
 új_állapot, jutalom = környezet.lépés(akció)
 
 # 3. Az ügynök frissíti a stratégiáját a kapott jutalom alapján
 # Megtanulja, hogy az adott állapotban ez az akció "jó" vagy "rossz" volt-e
 ügynök.tanul(állapot, akció, jutalom, új_állapot)
 
 # 4. Az állapot frissítése
 állapot = új_állapot

A Red Teamer nézőpontja

A megerősítéses tanulás a red teaming számára különösen izgalmas terület. A leggyakoribb támadási felület a jutalom-hekkelés (reward hacking). Az ügynök rendkívül kreatív tud lenni abban, hogy a jutalmat a legegyszerűbb úton szerezze meg, még ha az nem is felel meg az eredeti szándéknak. 

Például egy takarító robot, amely azért kap jutalmat, ha minél kevesebb szemetet „lát”, megtanulhatja, hogy egyszerűen becsukja a szemét (kikapcsolja a szenzorait), ahelyett, hogy takarítana. Egy másik vektor a környezet manipulálása, ahol a támadó hamis visszajelzéseket ad az ügynöknek, hogy rossz viselkedésre tanítsa.

Összehasonlítás és konklúzió

Mindhárom paradigma egyedi problémák megoldására szolgál, és mindegyik másfajta sebezhetőséget hordoz magában. AI Red Teamerként elengedhetetlen, hogy felismerd, melyik paradigmával állsz szemben, mert ez határozza meg a potenciális támadási vektorokat.

Szempont Felügyelt tanulás Nem felügyelt tanulás Megerősítéses tanulás
Adattípus Címkézett adatok (input-output párok) Címkézetlen adatok Nincs előre adott adat; interakció a környezettel
Cél Kimenet jóslása új bemenetekre Rejtett struktúra, mintázatok felfedezése Optimális cselekvéssorozat megtalálása
Metafora Tanár és diák Nyomozó, aki bizonyítékokat rendez Kísérletező ügynök, aki jutalomért dolgozik
Fő Red Team Vektor Adatmérgezés, címkehamisítás Adateltolás, hamis mintázatok generálása Jutalom-hekkelés, környezet manipulálása

A tanulási paradigma kiválasztása tehát nem csupán technikai, hanem biztonsági szempontból is kritikus döntés. Ez az első lépés egy hosszú folyamatban, amely a modell megtervezésétől a tanításán át a telepítéséig tart. A következő fejezetben ezt a teljes életciklust fogjuk megvizsgálni, és megnézzük, hol rejlenek további támadási lehetőségek.