škrbina Kaj je Generative Adversarial Network (GAN)? - Združi se.AI
Povežite se z nami

AI 101

Kaj je Generative Adversarial Network (GAN)?

mm
Posodobljeno on

Generative Adversarial Networks (GAN) so vrste arhitektur nevronskih mrež sposobni generirati nove podatke ki ustreza naučenim vzorcem. GAN se lahko uporabljajo za ustvarjanje slik človeških obrazov ali drugih predmetov, za prevajanje besedila v sliko, za pretvorbo ene vrste slike v drugo in za izboljšanje ločljivosti slik (super ločljivost) med drugimi aplikacijami. Ker lahko GAN ustvarijo povsem nove podatke, so na čelu številnih vrhunskih sistemov, aplikacij in raziskav AI. Toda kako natančno delujejo GAN-ji? Raziščimo, kako delujejo GAN-ji, in si oglejmo nekaj njihovih primarnih uporab.

Definiranje generativnih modelov in GAN-jev

GAN je primer generativnega modela. Večino modelov AI lahko razdelimo v eno od dveh kategorij: nadzorovani in nenadzorovani modeli. Modeli nadzorovanega učenja se običajno uporabljajo za razlikovanje med različnimi kategorijami vložkov, za razvrščanje. Nasprotno pa se nenadzorovani modeli običajno uporabljajo za povzemanje distribucije podatkov, pogosto učenja Gaussovo porazdelitev podatkov. Ker se naučijo porazdelitve nabora podatkov, lahko vzamejo vzorce iz te naučene porazdelitve in ustvarijo nove podatke.

Različni generativni modeli imajo različne metode generiranja podatkov in izračuna verjetnostnih porazdelitev. Na primer, Naivni Bayesov model deluje tako, da izračuna porazdelitev verjetnosti za različne vhodne značilnosti in generativni razred. Ko naivni Bayesov model upodobi napoved, izračuna najverjetnejši razred tako, da vzame verjetnost različnih spremenljivk in jih združi skupaj. Drugi generativni modeli, ki niso povezani z globokim učenjem, vključujejo modele Gaussove mešanice in latentno Dirichletovo dodelitev (LDA). Generativni modeli na podlagi globokega nagiba vključujejo Omejeni Boltzmannovi stroji (RBM), Variacijski samodejni kodirniki (VAE), in seveda GAN-ji.

Generativne kontradiktorne mreže so bile prvi predlagal Ian Goodfellow leta 2014, leta 2015 pa so jih izboljšali Alec Redford in drugi raziskovalci, kar je vodilo do standardizirane arhitekture za GAN. GAN sta pravzaprav dve različni omrežji, združeni skupaj. GAN-ji so sestavljen iz dveh polovic: generacijski model in diskriminacijski model, imenovan tudi generator in diskriminator.

Arhitektura GAN

Generativna kontradiktorna omrežja so zgrajena iz modela generatorja in modela diskriminatorja skupaj. Naloga modela generatorja je ustvariti nove primere podatkov na podlagi vzorcev, ki se jih je model naučil iz podatkov za usposabljanje. Naloga diskriminatorskega modela je analizirati slike (ob predpostavki, da je usposobljen za slike) in ugotoviti, ali so slike ustvarjene/lažne ali pristne.

Dva modela sta postavljena drug proti drugemu, trenirana na teoretični način iger. Cilj generatorskega modela je ustvariti slike, ki zavedejo njegovega nasprotnika – diskriminatorski model. Medtem je naloga diskriminatorskega modela, da premaga svojega nasprotnika, generatorski model, in ujame lažne slike, ki jih proizvaja generator. Dejstvo, da se modeli soočajo drug z drugim, povzroči oboroževalno tekmo, kjer se oba modela izboljšata. Diskriminator dobi povratne informacije o tem, katere slike so bile pristne in katere slike je proizvedel generator, medtem ko generator dobi informacije o tem, katere njegove slike je diskriminator označil kot lažne. Oba modela se med usposabljanjem izboljšujeta s ciljem usposobiti generacijski model, ki lahko proizvede lažne podatke, ki jih v osnovi ni mogoče razlikovati od resničnih, pristnih podatkov.

Ko je med usposabljanjem ustvarjena Gaussova porazdelitev podatkov, je mogoče uporabiti generativni model. Generatorski model se na začetku napaja z naključnim vektorjem, ki ga transformira na podlagi Gaussove porazdelitve. Z drugimi besedami, vektor zažene generacijo. Ko se model usposobi, bo vektorski prostor stisnjena različica ali predstavitev Gaussove porazdelitve podatkov. Stisnjena različica distribucije podatkov se imenuje latentni prostor ali latentne spremenljivke. Kasneje lahko model GAN ​​nato vzame predstavitev latentnega prostora in iz nje črpa točke, ki jih je mogoče dati generacijskemu modelu in uporabiti za ustvarjanje novih podatkov, ki so zelo podobni podatkom za usposabljanje.

Model diskriminatorja se napaja s primeri iz celotne domene usposabljanja, ki je sestavljena iz primerov resničnih in ustvarjenih podatkov. Pravi primeri so vsebovani v naboru podatkov za usposabljanje, medtem ko lažne podatke proizvaja generativni model. Postopek usposabljanja diskriminatorskega modela je popolnoma enak osnovnemu usposabljanju modela binarne klasifikacije.

Proces usposabljanja GAN

Poglejmo celotno trening Postopek za nalogo ustvarjanja hipotetične slike.

Za začetek se GAN usposablja z uporabo pristnih, resničnih slik kot dela nabora podatkov za usposabljanje. To nastavi model diskriminatorja za razlikovanje med ustvarjenimi slikami in resničnimi slikami. Izdela tudi distribucijo podatkov, ki jo bo generator uporabil za izdelavo novih podatkov.

Generator sprejme vektor naključnih numeričnih podatkov in jih transformira na podlagi Gaussove porazdelitve ter vrne sliko. Te ustvarjene slike, skupaj z nekaterimi pristnimi slikami iz nabora podatkov o usposabljanju, se vnesejo v model diskriminatorja. Diskriminator bo prikazal verjetnostno napoved o naravi slik, ki jih prejme, in izdal vrednost med 0 in 1, kjer je 1 običajno verodostojna slika, 0 pa lažna slika.

V igri je dvojna povratna zanka, saj zemeljski diskriminator dobi zemeljsko resnico slik, medtem ko generator dobi povratno informacijo o svojem delovanju od diskriminatorja.

Generativni in diskriminacijski model igrata igro z ničelno vsoto. Igra z ničelno vsoto je tista, pri kateri dobiček ene strani pride na račun druge strani (vsota obeh dejanj je enaka nič). Ko je model diskriminatorja sposoben uspešno razlikovati med resničnimi in ponarejenimi primerki, se parametri diskriminatorja ne spremenijo. Vendar pa se parametri modela obsežno posodobijo, ko ta ne razlikuje med pravimi in lažnimi slikami. Obratno velja za generativni model, ta je kaznovan (in njegovi parametri posodobljeni), ko mu ne uspe preslepiti diskriminatornega modela, sicer pa so njegovi parametri nespremenjeni (ali pa je nagrajen).

V idealnem primeru lahko generator izboljša svojo zmogljivost do točke, ko diskriminator ne more razlikovati med lažnimi in pravimi slikami. To pomeni, da bo diskriminator vedno upodabljal 50-odstotne verjetnosti za resnične in lažne slike, kar pomeni, da se ustvarjene slike ne bi smele razlikovati od pristnih slik. V praksi GAN običajno ne dosežejo te točke. Vendar pa generativnemu modelu ni treba ustvariti popolnoma podobnih slik, da bi bil še vedno uporaben za številne naloge, za katere se uporabljajo GAN-ji.

Aplikacije GAN

GAN-ji imajo številne različne aplikacije, večina se vrti okoli ustvarjanja slik in komponent slik. GAN se običajno uporabljajo pri nalogah, kjer zahtevani slikovni podatki manjkajo ali so v določeni meri omejeni, kot metoda za generiranje zahtevanih podatkov. Oglejmo si nekaj običajnih primerov uporabe za GAN.

Ustvarjanje novih primerov za nize podatkov

GAN-je je mogoče uporabiti za ustvarjanje novih primerov za preproste nize slikovnih podatkov. Če imate le nekaj primerov usposabljanja in jih potrebujete več, lahko GAN-je uporabite za ustvarjanje novih podatkov za usposabljanje za klasifikator slik, ki generirajo nove primere usposabljanja v različnih usmeritvah in kotih.

Ustvarjanje edinstvenih človeških obrazov

Ženska na tej fotografiji ne obstaja. Sliko je ustvaril StyleGAN. Fotografija: Owlsmcgee prek Wikimedia Commons, javna domena (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Ko so dovolj usposobljeni, se GAN-ji lahko uporabljajo za ustvarjanje izjemno realističnih podob človeških obrazov. Te ustvarjene slike lahko uporabite za pomoč pri usposabljanju sistemov za prepoznavanje obrazov.

Prevod iz slike v sliko

GAN odličen pri prevajanju slik. GAN-je je mogoče uporabiti za barvanje črno-belih slik, prevajanje skic ali risb v fotografske slike ali pretvorbo slik iz dneva v noč.

Prevod besedila v sliko

Prevod besedila v sliko je mogoče z uporabo GAN-jev. Ko je GAN opremljen z besedilom, ki opisuje sliko in to spremno sliko, lahko se usposobiti za ustvarjanje nove podobe ko je na voljo opis želene slike.

Urejanje in popravljanje slik

GAN-je je mogoče uporabiti za urejanje obstoječih fotografij. GAN-ji odstranite elemente, kot sta dež ali sneg iz slike, lahko pa jih tudi uporabimo popraviti stare, poškodovane slike ali pokvarjene slike. 

Super ločljivost

Super ločljivost je postopek zajemanja slike nizke ločljivosti in vstavljanja več slikovnih pik v sliko, s čimer se izboljša ločljivost te slike. GAN se lahko usposobijo za fotografiranje ustvarite različico te slike v višji ločljivosti. 

Bloger in programer s posebnostmi v strojno učenje in Globoko učenje teme. Daniel upa, da bo drugim pomagal uporabiti moč umetne inteligence za družbeno dobro.