csonk Mi az a Generatív Adversarial Network (GAN)? - Egyesüljetek.AI
Kapcsolatba velünk
AI mesterkurzus:

AI 101

Mi az a Generatív Adversarial Network (GAN)?

mm
korszerűsített on

Generatív ellenséges hálózatok (GAN) a neurális hálózati architektúrák típusai képes új adatokat generálni amely megfelel a tanult mintáknak. A GAN-ok felhasználhatók emberi arcok vagy egyéb tárgyak képeinek előállítására, szöveg-kép fordításra, egyik képtípus másikra konvertálására, valamint a képek felbontásának (szuperfelbontás) növelésére más alkalmazások mellett. Mivel a GAN-ok teljesen új adatokat generálhatnak, számos élenjáró mesterséges intelligencia-rendszer, alkalmazás és kutatás élén állnak. Mégis hogyan működnek pontosan a GAN-ok? Vizsgáljuk meg, hogyan működnek a GAN-ok, és vessünk egy pillantást néhány elsődleges felhasználási területükre.

Generatív modellek és GAN-ok meghatározása

A GAN egy példa a generatív modellre. A legtöbb AI modell két kategóriába sorolható: felügyelt és nem felügyelt modellek. A felügyelt tanulási modelleket jellemzően az inputok különböző kategóriái közötti megkülönböztetésre, osztályozásra használják. Ezzel szemben a nem felügyelt modelleket jellemzően az adatok eloszlásának összegzésére, gyakran tanulásra használják az adatok Gauss-eloszlása. Mivel megtanulják egy adatkészlet eloszlását, mintákat vehetnek ebből a tanult eloszlásból, és új adatokat generálhatnak.

A különböző generatív modellek eltérő módszerekkel rendelkeznek az adatok generálására és a valószínűségi eloszlások kiszámítására. Például a Naiv Bayes modell úgy működik, hogy kiszámítja a különböző bemeneti jellemzők és a generatív osztály valószínűségi eloszlását. Amikor a Naive Bayes-modell előrejelzést ad, a legvalószínűbb osztályt úgy számítja ki, hogy figyelembe veszi a különböző változók valószínűségét, és kombinálja őket. Egyéb nem mély tanulási generatív modellek közé tartozik a Gaussian Mixture Models és a Latent Dirichlet Allocation (LDA). Mély hajláson alapuló generatív modellek tartalmaz Korlátozott Boltzmann gépek (RBM), Változatos automatikus kódolók (VAE), és természetesen a GAN-ok.

A generatív ellenséges hálózatok voltak először Ian Goodfellow javasolta 2014-ben2015-ben Alec Redford és más kutatók továbbfejlesztették őket, ami a GAN-ok szabványosított architektúrájához vezetett. A GAN valójában két különböző hálózat, amelyek összekapcsolódnak. A GAN-ok azok két félből áll: generációs modell és diszkriminációs modell, más néven generátor és diszkriminátor.

A GAN architektúra

A generatív ellenséges hálózatok generátormodellből és diszkriminátormodellből összerakva. A generátormodell feladata, hogy új adatpéldákat hozzon létre azon minták alapján, amelyeket a modell megtanult a betanítási adatokból. A diszkriminátor modell feladata a képek elemzése (feltételezve, hogy a képekre tanítják), és meghatározza, hogy a képek generáltak/hamisak vagy eredetiek-e.

A két modell egymással szembe van állítva, játékelméleti módon kiképezve. A generátormodell célja, hogy olyan képeket állítson elő, amelyek megtévesztik az ellenfelét – a megkülönböztető modellt. Eközben a diszkriminátor modell feladata, hogy legyőzze ellenfelét, a generátor modellt, és elkapja a generátor által előállított hamis képeket. Az a tény, hogy a modellek egymással szemben állnak, fegyverkezési versenyt eredményez, ahol mindkét modell javul. A diszkriminátor visszajelzést kap arról, hogy mely képek voltak eredetiek, és mely képeket készítette a generátor, míg a generátor információt kap arról, hogy melyik képét jelölte meg hamisnak a diszkriminátor. Mindkét modell javul az edzés során, azzal a céllal, hogy egy olyan generációs modellt tanítsunk, amely képes hamis adatokat előállítani, amelyek alapvetően megkülönböztethetetlenek a valódi, valódi adatoktól.

Miután a betanítás során létrejött az adatok Gauss-eloszlása, a generatív modell használható. A generátormodell kezdetben egy véletlen vektort kap, amelyet a Gauss-eloszlás alapján transzformál. Más szóval, a vektor magolja a nemzedéket. Amikor a modellt betanítják, a vektortér az adatok Gauss-eloszlásának tömörített változata vagy reprezentációja lesz. Az adateloszlás tömörített változatát látens térnek vagy látens változóknak nevezzük. A későbbiekben a GAN-modell felveheti a látens térábrázolást és abból pontokat húzhat, amelyeket a generálási modellnek adhatunk, és felhasználhatjuk a betanítási adatokhoz nagymértékben hasonló új adatok generálására.

A diszkriminátor modell a teljes képzési tartományból példákat táplál, amely valós és generált adatpéldákból áll. A valódi példákat a betanítási adatkészlet tartalmazza, míg a hamis adatokat a generatív modell állítja elő. A diszkriminátor modell betanítási folyamata pontosan megegyezik az alap, bináris osztályozási modell képzésével.

GAN képzési folyamat

Nézzük az egészet edzés folyamat hipotetikus képgenerálási feladathoz.

Kezdetben a GAN képzése valódi, valós képek felhasználásával történik a képzési adatkészlet részeként. Ez beállítja a megkülönböztető modellt a generált és a valós képek megkülönböztetésére. Előállítja azt az adateloszlást is, amelyet a generátor új adatok előállításához fog használni.

A generátor beveszi a véletlenszerű numerikus adatok vektorát, és a Gauss-eloszlás alapján átalakítja azokat, visszaadva egy képet. Ez a generált kép, valamint néhány eredeti kép a képzési adatkészletből, bekerül a megkülönböztető modellbe. A diszkriminátor valószínűségi előrejelzést ad a kapott képek természetére vonatkozóan, és 0 és 1 közötti értéket ad ki, ahol az 1 általában hiteles képek, a 0 pedig hamis kép.

Kettős visszacsatolási hurok működik, mivel a talajdiszkriminátor a képek alapigazságával táplálkozik, míg a generátor a diszkriminátortól kap visszajelzést a teljesítményéről.

A generatív és a diszkriminációs modell zéró összegű játékot játszik egymással. A nulla összegű játék az, ahol az egyik oldal nyeresége a másik oldal árán történik (az összeg mindkét akció nulla ex). Ha a diszkriminátormodell sikeresen képes megkülönböztetni a valós és a hamis példákat, akkor a diszkriminátor paraméterei nem változnak. A modell paramétereit azonban nagy mértékben módosítják, ha nem tesz különbséget a valódi és a hamis képek között. Az inverz igaz a generatív modellre, büntetést kap (és paramétereit frissítik), ha nem sikerül becsapni a diszkriminatív modellt, de egyébként a paraméterei változatlanok (vagy jutalmazzák).

Ideális esetben a generátor képes olyan mértékben javítani a teljesítményén, hogy a megkülönböztető nem tud különbséget tenni a hamis és a valós képek között. Ez azt jelenti, hogy a megkülönböztető mindig %50 valószínűséggel jelenít meg valós és hamis képeket, vagyis a generált képeknek megkülönböztethetetlennek kell lenniük a valódi képektől. A gyakorlatban a GAN-ok általában nem érik el ezt a pontot. A generatív modellnek azonban nem kell tökéletesen hasonló képeket létrehoznia ahhoz, hogy továbbra is hasznos legyen a GAN-ok által használt sok feladathoz.

GAN alkalmazások

A GAN-oknak számos különböző alkalmazása van, amelyek többsége a képek és a képek összetevőinek létrehozása körül forog. A GAN-okat általában olyan feladatokban használják, ahol a szükséges képadatok hiányoznak vagy bizonyos kapacitásuk korlátozott, a szükséges adatok előállításának módszereként. Vizsgáljuk meg a GAN-ok néhány gyakori felhasználási esetét.

Új példák generálása adatkészletekhez

A GAN-ok segítségével új példákat hozhatunk létre egyszerű képadatkészletekhez. Ha csak néhány tanítási példája van, és többre van szüksége belőlük, a GAN-ok segítségével új képzési adatokat generálhat egy képosztályozóhoz, és új oktatási példákat hozhat létre különböző tájolású és szögekből.

Egyedi emberi arcok létrehozása

A képen látható nő nem létezik. A képet a StyleGAN készítette. Fotó: Owlsmcgee a Wikimedia Commonson keresztül, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Ha kellően képzett, a GAN-ok használhatók rendkívül valósághű képeket generál az emberi arcokról. Ezek a generált képek felhasználhatók az arcfelismerő rendszerek képzésére.

Képről képre fordítás

Gans kiváló képfordításban. A GAN-ok használhatók fekete-fehér képek színezésére, vázlatok vagy rajzok fényképes képpé fordítására, vagy a képek nappalról éjszakára konvertálására.

Szövegből képbe fordítás

A szövegből képbe fordítás az GAN-ok használatával lehetséges. Ha egy képet és a hozzá tartozó képet leíró szöveggel látják el, a GAN képes meg kell képezni egy új arculat létrehozását ha a kívánt kép leírásával látják el.

Képek szerkesztése és javítása

A GAN-ok a meglévő fényképek szerkesztésére használhatók. GAN-ok távolítsa el az olyan elemeket, mint az eső vagy a hó képből, de arra is használhatók javítsa ki a régi, sérült vagy sérült képeket. 

Szuper felbontás

A szuperfelbontás az a folyamat, amikor egy kis felbontású képet készítünk, és több pixelt illesztünk be a képbe, ezzel javítva a kép felbontását. A GAN-okat kép készítésére lehet képezni a kép nagyobb felbontású változatát generálja. 

Blogger és programozó szakterületekkel Gépi tanulás és a Deep Learning témákat. Daniel abban reménykedik, hogy segíthet másoknak az AI erejét társadalmi javára használni.