AI:n perusteet

Mikä on Generative Adversarial Network (GAN)?

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Generative Adversarial Networks (GANs) ovat tietynlaisia neuroverkkoarkkitehtuureja jotka pystyvät luomaan uutta dataa joka noudattaa opittuja malleja. GANs voidaan käyttää luomaan kuvia ihmis kasvoista tai muista objekteista, suorittamaan teksti-kuvaksi käännöstä, muuttaa yhtä kuvatyyppiä toiseksi ja parantamaan kuvien resoluutiota (super resoluutio) muun muassa. Koska GANs voivat luoda täysin uutta dataa, ne ovat monien edistyksellisten AI-järjestelmien, sovellusten ja tutkimuksen edelläkävijöinä. Mutta miten GANs toimivat oikeasti? Tutustumme siihen, miten GANs toimivat ja tarkastelemme joitain niiden tärkeimmistä sovelluksista.

Generatiivisten mallien ja GANs määrittely

GAN on esimerkki generatiivisesta mallista. Useimmat AI-mallit voidaan jakaa kahteen kategoriaan: valvottuihin ja valvomattomiin malleihin. Valvotut oppimismallit käytetään yleensä erottamaan eri syötteiden luokat, luokittelemaan. Sen sijaan valvomattomat mallit käytetään yleensä tiivistämään datan jakautumaa, usein oppimalla Gaussin jakautuman datalle. Koska ne oppivat datan jakautuman, ne voivat poimia näytteitä tästä oppitusta jakautumasta ja luoda uutta dataa.

Erilaiset generatiiviset mallit käyttävät eri menetelmiä datan luomiseen ja todennäköisyysjakaumien laskemiseen. Esimerkiksi Naive Bayes -malli toimii laskemalla todennäköisyysjakauman eri syöteominaisuuksille ja generatiiviselle luokalle. Kun Naive Bayes -malli tekee ennusteen, se laskee todennäköisimmän luokan ottamalla todennäköisyydet eri muuttujille ja yhdistämällä ne yhteen. Muita ei-syväoppimiseen perustuvia generatiivisia malleja ovat Gaussian Mixture Mallit ja Latent Dirichlet Allocation (LDA). Syväoppimiseen perustuvia generatiivisia malleja ovat Restricted Boltzmann Machines (RBMs), Variational Autoencoders (VAEs) ja tietysti GANs.

Generatiiviset Adversarial Networks esiteltiin Ian Goodfellowin toimesta vuonna 2014, ja ne paranneltiin Alec Redfordin ja muiden tutkijoiden toimesta vuonna 2015, mikä johti GANs:ien standardoiduun arkkitehtuuriin. GANs koostuvat kahdesta eri verkosta, jotka on yhdistetty. GANs koostuvat kahdesta osasta: generoivasta mallista ja diskriminomallista, joita kutsutaan myös generoijaksi ja diskriminoijaksi.

GAN Arkkitehtuuri

Generatiiviset Adversarial Networks rakennetaan generoivan mallin ja diskriminomallin yhdistelmästä. Generoivan mallin tehtävä on luoda uusia data-esimerkkejä opittujen mallien perusteella. Diskriminomallin tehtävä on analyysia kuvia (olettaen, että se on koulutettu kuvilla) ja määrittää, ovatko kuvat luotuja/väärä/epäaidosti luotuja vai aitoja.

Nämä kaksi mallia ovat toisiaan vastaan pelissä, jota koulutetaan peliteoreettisesti. Generoivan mallin tavoitteena on tuottaa kuvia, jotka pettävät vastustajansa – diskriminomallin. Vastaavasti diskriminomallin tehtävänä on voittaa vastustajansa, generoija, ja havaita väärennettyjä kuvia, joita generoija tuottaa. Se, että mallit ovat toisiaan vastaan, johtaa asevarustelukilpaan, jossa molemmat mallit paranevat. Diskriminomalli saa palautteen siitä, mitkä kuvat olivat aitoja ja mitkä kuvat tuotettiin generoijalla, kun taas generoija saa tietoa siitä, mitkä kuvat diskriminomalli merkitsi virheellisiksi. Molemmat mallit paranevat koulutuksen aikana, ja tavoitteena on kouluttaa generoija, joka pystyy tuottamaan väärennettyjä kuvia, jotka ovat käytännössä erottamattomia aitoista kuvista.

Kun Gaussian jakautuma on luotu koulutuksen aikana, generoivaa mallia voidaan käyttää. Generoija saa aluksi satunnaisen vektorin, jonka se muuttaa Gaussian jakautuman perusteella. Toisin sanoen vektori antaa siemenen generoimiselle. Kun malli on koulutettu, vektoriavaruus on tiivis versio, tai edustus, datan Gaussian jakautumasta. Tämä tiivis versio datan jakautumasta kutsutaan latenttiavaruudeksi tai latentti muuttujiksi. Myöhemmin GAN-malli voi ottaa latentin edustuksen ja piirtää pisteitä siitä, jotka voidaan antaa generoijalle ja käyttää uuden datan luomiseen, joka on hyvin samankaltainen kuin koulutusdata.

Diskriminomalli saa esimerkkejä koko koulutusalueesta, joka koostuu sekä aitoista että luodusta datasta. Aito data on sisällytetty koulutusaineistoon, kun taas väärennetty data tuotetaan generoijalla. Diskriminomallin koulutusprosessi on täsmälleen sama kuin perusbinäärisen luokittelumallin koulutus.

GAN Koulutusprosessi

Tarkastelemme koko koulutusprosessia hypoteettiselle kuvien luomistehtävälle.

Aluksi GAN koulutetaan aidoilla, oikeilla kuvilla, jotka ovat osa koulutusaineistoa. Tämä asettaa diskriminomallin erottamaan luotuja kuvia aitoista kuvista. Se myös tuottaa datan jakautuman, jota generoija käyttää uuden datan luomiseen.

Generoija ottaa vektorin satunnaisista numeerisista arvoista ja muuttaa niitä Gaussian jakautuman perusteella, palauttaen kuvan. Tämä luotu kuva, yhdessä joitain aitoja kuvia koulutusaineistosta, annetaan diskriminomallille. Diskriminomalli antaa todennäköisyyden kuville, jotka se saa, ja palauttaa arvon välillä 0 ja 1, jossa 1 on yleensä aito kuva ja 0 on väärennetty kuva.

On olemassa kaksinkertainen palautusilmapiiri, jossa diskriminomalli saa palautteen aitojen kuvien totuuden, kun taas generoija saa palautteen diskriminomallilta. Generatiivinen ja diskriminomalli pelaavat nollasummapeliä toisiaan vastaan. Nollasummapeli on peli, jossa toisen puolen voitot tulevat toisen puolen tappioina (summa on nolla). Kun diskriminomalli pystyy erottamaan aitoja ja väärennettyjä esimerkkejä, ei muutoksia tehdä diskriminomallin parametreihin. Sen sijaan suuria päivityksiä tehdään mallin parametreihin, kun se epäonnistuu erottamasta aitoja ja väärennettyjä kuvia. Vastaavaa on generoijalla, jota rangaistaan (ja sen parametreja päivitetään), kun se epäonnistuu petkuttamasta diskriminomallia, mutta muutoin sen parametrit ovat muuttumattomia (tai se palkitaan).

Idealisesti generoija pystyy parantamaan suorituskykyään siihen pisteeseen, jossa diskriminomalli ei pysty erottamaan väärennettyjä ja aitoja kuvia. Tämä tarkoittaa, että diskriminomalli antaa aina 50%:n todennäköisyyden aitojen ja väärennettyjen kuvien osalta, mikä tarkoittaa, että luodut kuvat ovat käytännössä erottamattomia aitoista kuvista. Käytännössä GANs eivät yleensä saavuta tätä tasoa. Generoijan ei kuitenkaan tarvitse luoda täysin samanlaisia kuvia, jotta se olisi hyödyllinen monissa tehtävissä, joissa GANs käytetään.

GAN Sovellukset

GANs:illa on useita eri sovelluksia, joista suurin osa liittyy kuvien ja kuvien osien luomiseen. GANs:ia käytetään yleensä tehtävissä, joissa vaadittavaa kuvadataa on puutteellista tai rajoitettua jollain tavoin, ja se on menetelmä vaadittavan datan luomiseen. Tarkastelemme joitain yleisimpiä GANs:in sovelluksia.

Uusien Esimerkkien Luominen Datasahtiin

GANs:ia voidaan käyttää luomaan uusia esimerkkejä yksinkertaisille kuvadatasatiin. Jos sinulla on vain muutamia koulutusesimerkkejä ja tarvitset enemmän, GANs:ia voidaan käyttää luomaan uutta koulutusdataa kuvien luokittelijalle, luomalla uusia koulutusesimerkkejä eri kulmista ja suunnista.

Unikeiden Ihmiskasvojen Luominen

Nainen tässä valokuvassa ei ole olemassa. Kuva on luotu StyleGAN:illa. Kuva: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Kun GANs on riittävästi koulutettu, niitä voidaan käyttää luomaan erittäin realistisia kuvia ihmisistä. Nämä luodut kuvat voidaan käyttää kasvojentunnistusjärjestelmien kouluttamiseen.

Kuvien Käännös

GANs:ia käytetään kuvien käännöksiin. GANs:ia voidaan käyttää mustavalkoisten kuvien värjäämiseen, piirrosten tai luonnosten kääntämiseen valokuviksi tai kuvien muuntamiseen päivästä yöhön.

Tekstin Kuvaksi Käännös

Tekstin kuvaksi käännös on mahdollista GANs:in avulla. Kun GAN:lle annetaan teksti, joka kuvailee kuvaa, ja seuraava kuva, GAN voidaan kouluttaa luomaan uusi kuva, kun sille annetaan kuvaus halutusta kuvasta.

Kuvien Muokkaus Ja Korjaus

GANs:ia voidaan käyttää olemassa olevien valokuvien muokkaamiseen. GANs:ia voidaan käyttää sateen tai lumen poistamiseen kuvasta, mutta niitä voidaan myös käyttää vanhojen, vahingoittuneiden kuvien tai vioittuneiden kuvien korjaamiseen.

Super Resoluutio

Super resoluutio on prosessi, jossa matalaresoluutioinen kuvaan lisätään enemmän pikseleitä, parantaen kuvan resoluutiota. GANs:ia voidaan kouluttaa luomaan korkeampiresoluutioinen versio kuvasta.

GANs voidaan myös käyttää vanhojen, vahingoittuneiden kuvien tai vioittuneiden kuvien korjaamiseen. Super Resoluutio on prosessi, jossa matalaresoluutioinen kuvaan lisätään enemmän pikseleitä, parantaen kuvan resoluutiota. GANs voidaan kouluttaa ottamaan kuva ja generoimaan siitä korkeampiresoluutioinen versio.

Blogger ja ohjelmoija, jolla on erityisalat Machine Learning ja Deep Learning -aiheissa. Daniel toivoo pystyvänsä auttamaan muita käyttämään tekoälyn voimaa sosiaaliseen hyvään.