GAN: t sukupolven ulkopuolella: 7 vaihtoehtoista käyttötapaa

https://sigmoidal.io/beginners-review-of-gan-architectures/

Hei kaikki!
Kuten monet ihmiset, jotka seuraavat AI: n kehitystä, en voinut ohittaa viimeaikaista edistystä generatiivisessa mallintamisessa, etenkään generatiivisten vastavuoroisten verkkojen (GAN) suurta menestystä kuvien luomisessa. Katso näitä näytteitä: ne ovat tuskin erotettavissa oikeista valokuvista!

Näytteet BigGAN: lta: https://openreview.net/pdf?id=B1xsqj09Fm

Kasvojen luomisen eteneminen vuodesta 2014 vuoteen 2018 on myös merkittävä:

Olen erittäin innoissani näistä tuloksista, mutta sisäinen skeptikoni epäilee aina, ovatko ne todella hyödyllisiä ja yleisesti sovellettavia. Avasin jo tämän kysymyksen Facebook-huomautuksessani:

Periaatteessa "valitin", että emme todellakaan käytä niitä generatiivisten mallien kaikella voimalla käytännöllisempään tarkoitukseen kuin korkearesoluutioisten kasvojen tai hampurilaisten tuottamiseen. Tietenkin on yrityksiä, jotka voivat perustua suoraan kuvan luomiseen tai tyylien siirtoon (kuten hahmojen tai tasojen luominen peliteollisuudessa, tyylien siirtäminen oikeista valokuvista anime-avatariin), mutta etsin lisää alueita, joilla GANit ja muut generatiiviset malleja voidaan soveltaa. Haluaisin myös muistaa, että generatiivisilla malleilla voimme tuottaa paitsi kuvia, myös tekstiä, ääniä, ääniä, musiikkia, jäsenneltyä tietoa, kuten pelitasoja tai lääkemolekyylejä, ja muissa sukupolvien kaltaisissa sovelluksissa on hämmästyttävä blogin postitus, mutta tässä rajoitamme meitä esimerkkeillä, joissa synteesi ei ole päätavoite.

Pelitason sukupolvi RNN: llä

Tässä artikkelissa esitän 7 vaihtoehtoista käyttötapaa. Joidenkin kanssa olen jo työskennellyt henkilökohtaisesti ja voin vahvistaa niiden hyödyllisyyden, toiset ovat tutkimuksessa, mutta se ei tarkoita, että heidän ei kannata kokeilla. Kaikkia näitä esimerkkejä generatiivisten mallien käytöstä ei välttämättä luomiseen voidaan käyttää eri alueilla ja erilaisissa tiedoissa, koska päätavoitteemme ei ole tuottaa jotain realistista, vaan hermoverkkojen sisäisen tietämyksen hyödyntäminen uusissa tehtävissä.

1. Tietojen lisäys

Ehkä ilmeisin sovellus voi olla mallin kouluttaminen tuottamaan uusia näytteitä tiedoistamme tietokannan täydentämiseksi. Kuinka voimme tarkistaa, auttoiko tämä lisäys todella jotain? No, kaksi päästrategiaa on: voimme kouluttaa malliamme vääriä tietoja ja tarkistaa, kuinka hyvin se toimii oikeissa näytteissä. Ja päinvastoin: koulutamme mallimme oikealla datalla suorittamaan jonkinlainen luokitustyö ja vasta kun olemme tarkistaneet, kuinka hyvin se toimii generoidulle tiedolle (GAN-fanit tunnistavat täällä lähtökohdan). Jos se toimii molemmissa tapauksissa - voit vapaasti lisätä näytteitä generatiivisesta mallista oikeisiin tietoihisi ja kouluttaa ne uudelleen - sinun on odotettava suorituskyvyn paranemista. Jotta tämä lähestymistapa olisi entistä tehokkaampi ja joustavampi, tarkista sovellus nro 6.

NVIDIA osoitti uskomattoman esimerkin tästä lähestymistavasta toiminnassa: he käyttivät GAN-arvoja täydentämään eri sairauksia sisältävien lääketieteellisten aivotutkimuksen CT-tiedostojen tietojoukkoja ja osoittivat, että vain klassista datan lisäystä käyttävä luokituksen suorituskyky tuotti 78,6% herkkyyttä ja 88,4% spesifisyyttä. Lisäämällä synteettinen datan lisäys tulokset nousivat herkkyyteen 85,7% ja spesifisyyteen 92,4%.

https://arxiv.org/pdf/1803.01229.pdf

2. Yksityisyyden suojaaminen

Useiden yritysten tiedot voivat olla salaisia ​​(kuten rahaa ansaitsevat taloudelliset tiedot), luottamuksellisia tai arkaluontoisia (lääketieteelliset tiedot, jotka sisältävät potilaan diagnoosit). Mutta joskus meidän on jaettava se kolmansille osapuolille, kuten konsultteille tai tutkijoille. Jos haluamme vain jakaa tietomme yleisen idean, joka sisältää esineiden tärkeimmät kuviot, yksityiskohdat ja muodot, voimme käyttää generatiivisia malleja suoraan kuten edellisessä kappaleessa näytteenottoesimerkkejä tiedoistamme jakaaksemme muiden ihmisten kanssa. Tällä tavoin emme jaa tarkkoja luottamuksellisia tietoja, vain jotain, joka näyttää täsmälleen siltä, ​​kuin se näyttää.

Vaikeampi tapaus on, kun haluamme jakaa tietoja salaa. Tietysti meillä on erilaisia ​​salausohjelmia, kuten homomorfinen salaus, mutta niillä on tunnettuja haittoja, kuten 1 Mt: n tiedon piilottaminen 10 Gt: n koodiin. Vuonna 2016 Google avasi uuden tutkimuspolun GAN-kilpailukykyisen kehyksen käytöstä salausongelmiin, missä kahden verkon piti kilpailla koodin luomisessa ja sen haaroittamisessa:

https://towardsdatascience.com/adversarial-neural-cryptography-can-solve-the-biggest-friction-point-in-modern-ai-cc13b337f969

Paras kohta ei kuitenkaan ole saadun koodin tai ”AI” -hakusanan tehokkuus toisella alueella. Meidän on muistettava, että hermoverkkojen hankkimat esitykset sisältävät usein hyödyllisintä tietoa tulotiedoista (jotkut niistä on jopa koulutettu suoraan saamaan kyseinen tieto, kuten autoenkoodereita), ja tästä pakatusta tiedosta voimme silti tehdä luokittelun / regression / klusteroinnin. tai mitä haluamme. Jos korvaamme sanat "pakatut" sanoilla "salatut", idea on selkeä: tämä on mahtava tapa jakaa tietoja kolmansien osapuolten kanssa näyttämättä mitään tietojoukosta. Se on paljon vahvempi kuin nimettömänä tekeminen tai jopa väärennettyjen näytteiden luominen, ja se voi olla seuraava iso asia (jos käytät blockchainia, kuten Numerai jo tekee)

3. Poikkeamien havaitseminen

Tärkeimmät generatiiviset mallit, kuten variaatioautoenkooderi (VAE) tai GAN, koostuvat kahdesta osasta. VAE: llä on enkooderi ja dekooderi, joista ensimmäinen mallintaa periaatteessa jakelua ja toinen rekonstruoi siitä. GAN koostuu generaattorista ja erottelijasta, joissa ensin mallinnetaan jakelu ja toisella tuomarilla, jos se on lähellä junadattaa. Kuten voimme nähdä, ne ovat jollain tavalla melko samanlaisia ​​- siinä on mallintamis- ja arviointiosa (VAE: ssä voimme pitää rekonstruointia jonkinlaisena tuomiona). Mallinnusosan pitäisi oppia tiedonjakelu. Mitä tapahtuu osan arvioinnille, jos annamme sille jonkin näytteen, ei harjoittelun jakelusta? Hyvin koulutetussa tapauksessa GAN-erotin kertoo meille 0, ja VAE: n jälleenrakennusvirhe on korkeampi kuin harjoitustietojen keskiarvo. Täältä se tulee: valvomaton anomaliadetektorimme, helppo kouluttaa ja arvioida. Ja voimme ruokkia sitä joillakin steroideilla, kuten tilastollisilla etäisyyksillä, jos haluamme (Wasserstein GAN). Tästä artikkelista löydät esimerkkejä poikkeavuuksien havaitsemiseksi käytetystä GAN: stä ja täältä autoenkooderista. Lisään myös oman karkean luonnoksen Autencoder-pohjaiseen anomaliadetektoriin Kerasin kirjoittamiin aikasarjoihin:

4. Syrjivä mallintaminen

Kaikki mitä syvällisessä oppimisessa todella tapahtuu, on syöttötietojen kartoittaminen johonkin avaruuteen, missä se on helpommin erotettavissa tai selitettävissä yksinkertaisilla matemaattisilla malleilla, kuten SVM tai logistinen regressio. Generatiiviset mallit tekevät myös oman kartoituksensa, aloitetaan VAE-malleilla. Autoenkooderit kuvaavat sisäänsäytteen merkitykselliseen piilevään tilaan ja periaatteessa voimme kouluttaa jonkin mallin suoraan sen yli. Onko sillä mitään järkeä? Onko se erilainen kuin vain kooderikerrosten käyttäminen ja mallin kouluttaminen suorittamaan luokittelu suoraan? Se on todellakin. Autoenkooderin piilevä tila on monimutkainen epälineaarinen mittavähennys ja variaatiotautokooderin tapauksessa myös monimuuttujajakauma, mikä voi olla paljon parempi aloittaa aloitus syrjivän mallin kouluttamiseksi kuin jokin satunnainen alustus.

GAN-pisteitä on vähän vaikeampi käyttää muihin tehtäviin. Ne on suunniteltu tuottamaan näytteitä satunnaisista siemenistä, eivätkä ne odota odottavan mitään syöttöä. Mutta voimme silti käyttää niitä luokittelijoina ainakin kahdella tavalla. Ensimmäinen, jo tutkittu, hyödyntää erottelijaa luokittelemaan luotu näyte eri luokkiin sen lisäksi, että kerrotaan vain, onko se oikea tai epätosi. Voimme odottaa saadulta luokittelijalta parempaa säännöllisyyttä (koska siinä on havaittu eri tyyppisiä ääniä ja häiriöitä tulotiedoissa) ja että meillä on ylimääräinen luokka poikkeavuuksille / poikkeavuuksille:

https://towardsdatascience.com/semi-supervised-learning-with-gans-9f3cb128c5e

Toinen on epäoikeudenmukaisesti unohdettu lähestymistapa luokitteluun Bayesin lauseella, jossa mallinnamme p (c_k | x) perustuen p (x | c_k) (tarkalleen mitä ehdollisen GAN tekee!) Ja priorit p (x), p (c_k). Tärkein kysymys on, todellako GAN oppii tiedon jakelun? Ja siitä keskustellaan joissain tuoreissa tutkimuksissa.

5. Verkkotunnuksen mukauttaminen

Tämä on yksi tehokkaimmista, kuten minäkin. Käytännössä meillä ei milloinkaan ole samaa tietolähdettä mallien kouluttamiseen ja käyttämiseen todellisessa ympäristössä. Tietokonenäkymässä erilaiset valaistusolosuhteet, kamera-asetukset tai sää voivat tehdä jopa erittäin tarkasta mallista hyödytöntä. NLP / puheanalyysissä slängi tai aksentti voivat pilata mallisi suorituskyvyn, joka on koulutettu kielellä "kieliopillisesti oikea". Signaalinkäsittelyssä luultavasti sinulla on täysin erilaisia ​​laitteita tietojen sieppaamiseksi mallien ja tuotannon kouluttamiseksi. Mutta voimme myös huomata, että molemmat datatyypit ovat hyvin samanlaisia ​​toisiinsa. Ja tiedämme koneoppimismalleja, jotka suorittavat kartoituksen olosuhteista toisiin säilyttäen pääsisällön, mutta muuttamalla yksityiskohtia. Kyllä, aion nyt siirtää tyyliä, mutta vähemmän luoviin tarkoituksiin.

https://ml4a.github.io/ml4a/style_transfer/

Esimerkiksi, jos kyseessä on sovellus, jonka pitäisi toimia jonkin tyyppisissä CCTV-kameroissa, mutta olet kouluttanut mallisi korkean resoluution kuviin, voit yrittää käyttää GAN-laitteita esikäsittelemään kuvia hajottamalla ja parantamalla niitä. Radikaalisempi esimerkki, jonka voin tarjota signaalinkäsittelyalueelta: matkapuhelimien kiihtyvyysmittaritietoihin liittyy paljon tietojoukkoja, jotka kuvaavat eri ihmisten toimintaa. Mutta entä jos haluat käyttää puhelimesi tietoja varten koulutettuja malleja rannekkeella? GAN: t voivat yrittää auttaa sinua kääntämään erityyppisiä liikkeitä. Yleisesti ottaen generatiiviset mallit, jotka suorittavat tuottoa ei kohinasta, mutta jotkut ennalta määritetyt aiemmat, voivat auttaa sinua alueen sopeutumisessa, kovarianssivaihteissa ja muissa tiedon eroihin liittyvissä ongelmissa.

6. Tietojen manipulointi

Puhuimme tyylin siirrosta edellisessä kappaleessa. Mitä en todellakaan pidä siitä, on se, että se on kartoitustoiminto, joka toimii koko sisääntulossa ja muuttaa sitä kaikkia. Entä jos haluan vain vaihtaa jonkun kuvan nenä? Tai vaihda auton väriä? Tai korvata jotkut sanat puheessa muuttamatta sitä kokonaan? Jos haluamme tehdä tämän, oletamme jo, että esineemme voidaan kuvata joillakin rajallisilla tekijöillä, esimerkiksi kasvot ovat silmien, nenän, hiusten, huulten jne. Yhdistelmä ja näillä tekijöillä on omat ominaisuutensa (väri , koko jne.). Entä jos voisimme kuvata pikselimme valokuvalle joihinkin…, joissa voimme vain säätää näitä tekijöitä ja tehdä nenästä suuremman tai pienemmän? Jotkut matemaattiset käsitteet sallivat sen: monipuolinen hypoteesi ja irrotettu esitys. Hyvä uutinen meille on, että autoenkooderit ja luultavasti GAN-yhdistimet antavat meille mahdollisuuden mallintaa jakelua siten, että se on sekoitus näihin tekijöihin.

https://houxianxu.github.io/assets/project/dfcvae

7. Kiertoajelu

Saatat olla eri mieltä siitä, että lisäisin kappaleen koneoppimismalleihin kohdistuvista hyökkäyksistä, mutta sillä on kaikki tekemistä generatiivisten mallien kanssa (kontraversiohyökkäysalgoritmit ovat todellakin hyvin yksinkertaisia) ja kontraversioalgoritmien (koska meillä on malli, joka kilpailee toista vastaan) kanssa. Ehkä olet perehtynyt kilpailevien esimerkkien käsitteeseen: pienet häiriöt mallin syötteessä (voi olla jopa yksi pikseli kuvassa), jotka aiheuttavat täysin väärän suorituksen. Niitä vastaan ​​voidaan taistella eri tavoin, ja yhtä perustaidoista kutsutaan kilpailevaksi koulutukseksi: pohjimmiltaan kyse on kilpailuttavien esimerkkien hyödyntämisestä entistä tarkempien mallien luomiseksi.

https://blog.openai.com/adversarial-example-research/

Sukeltamatta yksityiskohtiin paljon, se tarkoittaa, että meillä on silti kahden pelaajan peli: kilpailun malli (joka yksinkertaisesti syöttää häiriöitä jonkin epsilonin kanssa), jonka on maksimoitava sen vaikutus ja on luokittelumalli, joka on minimoitava sen menetykset. Näyttää paljon GAN: lta, mutta eri tarkoituksiin: tee mallista vakaampi kilpailevien hyökkäysten suhteen ja parantaa sen suorituskykyä tietyntyyppisten älykkäiden tietojen lisäämisen ja virittämisen ansiosta.

takeaways

Tässä artikkelissa olemme nähneet useita esimerkkejä siitä, kuinka GAN: iä ja joitain muita generatiivisia malleja voidaan käyttää muuhun tarkoitukseen kuin mukavien kuvien, melodioiden tai lyhyiden tekstien luomiseen. Tietysti heidän tärkein pitkän aikavälin tavoite on oikean tilanteen edellyttämien reaalimaailman esineiden luominen, mutta tänään voimme hyödyntää heidän kykyään mallinntaa jakaumia ja oppia hyödyllisiä esityksiä nykyisten AI-putkistojemme parantamiseksi, tietomme suojaamiseksi, poikkeamien löytämiseksi tai sopeutumiseksi muihin todellisen maailman tapauksissa. Toivon, että löydät niistä hyödyllisiä ja niitä sovelletaan projekteihisi. Pysy kanavalla!

Loppusanat
Seuraa minua myös Facebookissa AI-artikkeleista, jotka ovat liian lyhyitä Mediumille, Instagram henkilökohtaisille tavaroille ja Linkedin!