tynkä Mikä on GAN (Generative Adversarial Network)? - Unite.AI
Liity verkostomme!

AI 101

Mikä on GAN (Generative Adversarial Network)?

mm
Päivitetty on

Generatiiviset kontradiktoriset verkot (GAN) ovat hermoverkkoarkkitehtuurityyppejä pystyy tuottamaan uutta dataa joka noudattaa opittuja malleja. GAN:ia voidaan käyttää ihmisten kasvojen tai muiden esineiden kuvien luomiseen, tekstin muuntamiseen kuvaksi, yhden tyyppisten kuvien muuntamiseen toiseksi ja kuvien resoluution (superresoluutio) parantamiseen muiden sovellusten joukossa. Koska GANit voivat tuottaa täysin uutta tietoa, ne ovat monien huippuluokan tekoälyjärjestelmien, sovellusten ja tutkimuksen kärjessä. Mutta miten GAN:t tarkalleen ottaen toimivat? Tutustutaanpa GAN-verkkojen toimintaan ja niiden pääkäyttöihin.

Generatiivisten mallien ja GAN:ien määrittely

GAN on esimerkki generatiivisesta mallista. Useimmat tekoälymallit voidaan jakaa kahteen kategoriaan: valvottuihin ja valvomattomiin malleihin. Ohjattuja oppimismalleja käytetään tyypillisesti erilaisten panosten luokkien erotteluun, luokitteluun. Sitä vastoin valvomattomia malleja käytetään tyypillisesti tietojen jakautumisen yhteenvetoon, usein oppimiseen datan Gaussin jakauma. Koska he oppivat tietojoukon jakautumisen, he voivat ottaa näytteitä tästä opitusta jakaumasta ja luoda uutta dataa.

Eri generatiivisilla malleilla on erilaiset menetelmät tietojen tuottamiseen ja todennäköisyysjakaumien laskemiseen. Esimerkiksi, Naiivi Bayes malli toimii laskemalla todennäköisyysjakauman eri tuloominaisuuksille ja generatiiviselle luokalle. Kun Naive Bayes -malli tekee ennusteen, se laskee todennäköisimmän luokan ottamalla eri muuttujien todennäköisyydet ja yhdistämällä ne yhteen. Muita ei-syväoppimisen generatiivisia malleja ovat Gaussian Mixture Models ja Latent Dirichlet Allocation (LDA). Deep leaning -pohjaiset generatiiviset mallit sisältää Rajoitettu Boltzmann-kone (RBM), Variaatioautokooderit (VAE)ja tietysti GANit.

Generatiiviset vastavuoroiset verkostot olivat Ian Goodfellow ehdotti ensimmäisen kerran vuonna 2014, ja Alec Redford ja muut tutkijat paransivat niitä vuonna 2015, mikä johti standardoituun GAN-arkkitehtuuriin. GAN-verkot ovat itse asiassa kaksi eri verkkoa, jotka on liitetty yhteen. GANit ovat koostuu kahdesta puolikkaasta: sukupolvimalli ja syrjintämalli, joita kutsutaan myös generaattoriksi ja erottajaksi.

GAN-arkkitehtuuri

Generatiiviset vastakkaiset verkostot ovat rakennettu generaattorimallista ja erottimen mallista yhdistettynä. Generaattorimallin tehtävänä on luoda uusia esimerkkejä tiedoista niiden mallien perusteella, jotka malli on oppinut harjoitustiedoista. Diskriminaattorimallin tehtävänä on analysoida kuvia (olettaen, että se on opetettu kuviin) ja määrittää, ovatko kuvat luotuja / väärennettyjä vai aitoja.

Nämä kaksi mallia ovat vastakkain, ja ne on koulutettu peliteoreettisella tavalla. Generaattorimallin tavoitteena on tuottaa kuvia, jotka pettävät sen vastustajaa – erottelijamallia. Sillä välin erottelumallin tehtävänä on voittaa vastustaja, generaattorimalli, ja saada kiinni generaattorin tuottamat väärennetyt kuvat. Se, että mallit ovat vastakkain, johtaa kilpavarusteluun, jossa molemmat mallit paranevat. Diskriminaattori saa palautetta siitä, mitkä kuvat olivat aitoja ja mitkä kuvat generaattori on tuottanut, kun taas generaattorille syötetään tietoa siitä, mitkä sen kuvista erottelija on merkinnyt vääriksi. Molemmat mallit kehittyvät harjoittelun aikana, ja tavoitteena on kouluttaa sukupolvimalli, joka pystyy tuottamaan väärennettyjä tietoja, joita ei periaatteessa voi erottaa todellisesta, aidosta tiedosta.

Kun koulutuksen aikana on luotu datan Gaussin jakauma, voidaan käyttää generatiivista mallia. Generaattorimalliin syötetään aluksi satunnaisvektori, jonka se muuntaa Gaussin jakauman perusteella. Toisin sanoen vektori siementää sukupolven. Kun mallia opetetaan, vektoriavaruus on pakattu versio tai esitys datan Gaussin jakaumasta. Tietojakelun pakattua versiota kutsutaan piileväksi tilaksi tai piileviksi muuttujiksi. Myöhemmin GAN-malli voi sitten ottaa piilevän avaruuden esityksen ja vetää siitä pisteitä, jotka voidaan antaa sukupolvimallille ja käyttää generoimaan uutta dataa, joka on hyvin samankaltainen kuin opetusdata.

Diskriminaattorimalliin syötetään esimerkkejä koko koulutusalueelta, joka koostuu sekä todellisista että generoiduista dataesimerkeistä. Todelliset esimerkit ovat opetustietojoukossa, kun taas väärennetyt tiedot tuotetaan generatiivisella mallilla. Diskriminaattorimallin koulutusprosessi on täsmälleen sama kuin perus, binääriluokittelumallin koulutus.

GAN-koulutusprosessi

Katsotaanpa kokonaisuutta koulutus prosessi hypoteettista kuvan luontitehtävää varten.

Aluksi GAN koulutetaan käyttämällä aitoja, todellisia kuvia osana koulutustietoaineistoa. Tämä määrittää erottelumallin erottamaan luodut kuvat todellisista kuvista. Se tuottaa myös datajakauman, jota generaattori käyttää uuden tiedon tuottamiseen.

Generaattori ottaa vastaan ​​satunnaisen numeerisen datan vektorin ja muuntaa ne Gaussin jakauman perusteella palauttaen kuvan. Nämä luodut kuvat, joidenkin aitojen kuvien ohella harjoitustietojoukosta, syötetään erottelumalliin. Erotin tekee todennäköisyysennusteen vastaanottamiensa kuvien luonteesta ja antaa arvon välillä 0-1, jossa 1 on tyypillisesti autenttisia kuvia ja 0 on väärennöskuva.

Pelissä on kaksinkertainen takaisinkytkentäsilmukka, koska maan erottimelle syötetään kuvien pohjatotuus, kun taas generaattori antaa palautetta sen toiminnasta.

Generatiivinen ja syrjivä malli pelaavat nollasummapeliä keskenään. Nollasummapeli on sellainen, jossa toisen puolen voitot tulevat toisen osapuolen kustannuksella (summa on nolla ex). Kun erottelijamalli pystyy onnistuneesti erottamaan todelliset ja väärennetyt esimerkit, erottimen parametreihin ei tehdä muutoksia. Mallin parametreihin tehdään kuitenkin suuria päivityksiä, kun se ei pysty erottamaan oikeita ja vääriä kuvia. Käänteinen pätee generatiiviselle mallille, sitä rangaistaan ​​(ja sen parametreja päivitetään), kun se ei onnistu huijaamaan erottelevaa mallia, mutta muuten sen parametrit ovat ennallaan (tai se palkitaan).

Ihannetapauksessa generaattori pystyy parantamaan suorituskykyään pisteeseen, jossa erottaja ei pysty erottamaan vääriä ja todellisia kuvia. Tämä tarkoittaa, että erottelija renderöi aina %50:n todennäköisyydet oikeille ja väärennetyille kuville, mikä tarkoittaa, että luotuja kuvia ei voi erottaa aidoista kuvista. Käytännössä GAN-verkot eivät yleensä saavuta tätä kohtaa. Generatiivisen mallin ei kuitenkaan tarvitse luoda täysin samankaltaisia ​​kuvia, jotta se olisi edelleen hyödyllinen moniin GAN:ien käyttämiin tehtäviin.

GAN-sovellukset

GAN:illa on useita erilaisia ​​sovelluksia, joista useimmat pyörivät kuvien ja kuvien komponenttien luomisen ympärillä. GAN:ia käytetään yleisesti tehtävissä, joissa vaadittu kuvadata puuttuu tai jossain kapasiteetissa on rajoitettua, menetelmänä vaaditun tiedon generoimiseksi. Tarkastellaan joitain GAN-verkkojen yleisiä käyttötapauksia.

Uusien esimerkkien luominen tietojoukoille

GAN:ien avulla voidaan luoda uusia esimerkkejä yksinkertaisista kuvatietosarjoista. Jos sinulla on vain kourallinen koulutusesimerkkejä ja tarvitset niitä lisää, GAN:ien avulla voidaan luoda uutta koulutusdataa kuvaluokittajaa varten, jolloin saadaan uusia harjoitusesimerkkejä eri suunnista ja kulmista.

Luo ainutlaatuisia ihmiskasvoja

Tässä kuvassa olevaa naista ei ole olemassa. Kuvan on luonut StyleGAN. Kuva: Owlsmcgee Wikimedia Commonsin kautta, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Riittävästi koulutettuja GANeja voidaan käyttää luoda erittäin realistisia kuvia ihmisten kasvoista. Näitä luotuja kuvia voidaan käyttää kasvojentunnistusjärjestelmien kouluttamiseen.

Kuvasta kuvaksi käännös

GAN erinomainen kuvien kääntämisessä. GAN:ia voidaan käyttää mustavalkoisten kuvien värittämiseen, luonnosten tai piirustusten kääntämiseen valokuvakuviksi tai kuvien muuntamiseen päivästä yöksi.

Tekstistä kuvaksi käännös

Tekstistä kuvaksi käännös on mahdollista GAN:ien avulla. Kun GAN on varustettu tekstillä, joka kuvaa kuvaa ja sitä seuraavaa kuvaa, se voi koulutetaan luomaan uusi kuva kun mukana on kuvaus halutusta kuvasta.

Kuvien muokkaaminen ja korjaaminen

GAN:ia voidaan käyttää olemassa olevien valokuvien muokkaamiseen. GANit poista elementit, kuten sade tai lumi kuvasta, mutta niitä voidaan myös käyttää korjata vanhoja, vaurioituneita kuvia tai vioittuneita kuvia. 

Superresoluutio

Superresoluutio on prosessi, jossa otetaan matalaresoluutioinen kuva ja lisätään kuvaan enemmän pikseleitä, mikä parantaa kuvan resoluutiota. GAN:ia voidaan kouluttaa ottamaan kuvia luoda korkeamman resoluution versio kyseisestä kuvasta. 

Bloggaaja ja ohjelmoija erikoisaloilla Koneen oppiminen ja Deep Learning aiheita. Daniel toivoo voivansa auttaa muita käyttämään tekoälyn voimaa yhteiskunnalliseen hyvään.