Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Generatiiviset Vastakkaisverkot (GANit) | Osio
Generatiivinen Syväoppiminen

bookGeneratiiviset Vastakkaisverkot (GANit)

Pyyhkäise näyttääksesi valikon

Generatiiviset vastakkaiset verkot (GANit) ovat generatiivisten mallien luokka, jonka Ian Goodfellow esitteli vuonna 2014. Ne koostuvat kahdesta neuroverkosta — Generaattorista ja Diskriminaattorista — joita koulutetaan samanaikaisesti peliteoreettisessa viitekehyksessä. Generaattori pyrkii tuottamaan dataa, joka muistuttaa oikeaa dataa, kun taas diskriminaattori pyrkii erottamaan oikean datan generoituun dataan verrattuna.

GANit oppivat tuottamaan datasampleja melusta ratkaisemalla minimax-pelin. Koulutuksen edetessä generaattori kehittyy tuottamaan yhä realistisempaa dataa ja diskriminaattori paranee oikean ja väärennetyn datan erottelussa.

GANin arkkitehtuuri

Perustason GAN-malli koostuu kahdesta ydinkomponentista:

1. Generaattori (G)

  • Ottaa satunnaisen meluvektorin zpz(z)z \sim p_z(z) syötteenä;
  • Muuntaa sen neuroverkon läpi datasampleksi G(z)G(z), jonka on tarkoitus muistuttaa todellisen jakauman dataa.

2. Discriminattori (D)

  • Ottaa vastaan joko aidon datan näytteen xpx(x)x \sim p_x(x) tai generoitu näyte G(z)G(z);
  • Tuottaa skalaariarvon välillä 0 ja 1, arvioiden syötteen aitouden todennäköisyyttä.

Nämä kaksi komponenttia koulutetaan samanaikaisesti. Generaattorin tavoitteena on tuottaa realistisia näytteitä huijatakseen diskriminaattoria, kun taas diskriminaattorin tavoitteena on tunnistaa oikein aidot ja generoidut näytteet.

GANien minimax-peli

GANien ytimessä on minimax-peli, joka on peliteoriasta johdettu käsite. Tässä asetelmassa:

  • Generaattori GG ja diskriminaattori DD toimivat kilpailevina osapuolina;
  • DD pyrkii maksimoimaan kykynsä erottaa aidot ja generoidut datat;
  • GG pyrkii minimoimaan DD:n kyvyn havaita sen tuottama väärennetty data.

Tämä dynamiikka määrittelee nollasummapelin, jossa toisen voitto on toisen tappio. Optimointi määritellään seuraavasti:

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

Generaattori pyrkii huijaamaan diskriminaattoria tuottamalla näytteitä G(z)G(z), jotka ovat mahdollisimman lähellä aitoa dataa.

Häviöfunktiot

Vaikka alkuperäinen GAN-tavoite määrittelee minimax-pelin, käytännössä koulutuksen vakauttamiseksi käytetään vaihtoehtoisia häviöfunktioita.

  • Ei-saturaatioinen generaattorin häviö:
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Tämä auttaa generaattoria saamaan vahvoja gradientteja, vaikka diskriminaattori suoriutuisi hyvin.

  • Diskriminaattorin häviö:
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

Nämä häviöt kannustavat generaattoria tuottamaan näytteitä, jotka lisäävät diskriminaattorin epävarmuutta ja parantavat konvergenssia koulutuksen aikana.

GAN-arkkitehtuurien keskeiset variantit

Useita GAN-tyyppejä on kehitetty ratkaisemaan tiettyjä rajoitteita tai parantamaan suorituskykyä:

Ehdollinen GAN (cGAN)

Ehdolliset GANit laajentavat tavanomaista GAN-kehystä tuomalla lisätietoa (yleensä luokkia) sekä generaattorille että diskriminaattorille. Satunnaisen kohinan lisäksi generaattori saa syötteenä sekä kohinan zz että ehdon yy (esim. luokkamerkki). Myös diskriminaattori saa yy arvioidakseen, onko näyte realistinen kyseisellä ehdolla.

  • Käyttökohteet: luokkakohtainen kuvagenerointi, kuva-kuva-muunnos, teksti-kuva-generointi.

Syväkonvoluutio-GAN (DCGAN)

DCGANit korvaavat alkuperäisten GANien täysin kytketyt kerrokset konvoluutio- ja transponoiduilla konvoluutiokerroksilla, mikä tekee niistä tehokkaampia kuvien generoinnissa. Ne tuovat myös mukanaan arkkitehtuuriohjeita, kuten täysin kytkettyjen kerrosten poistamisen, batch-normalisoinnin käytön ja ReLU/LeakyReLU-aktivointojen hyödyntämisen.

  • Käyttökohteet: valokuvamaisen kuvan generointi, visuaalisten representaatioiden oppiminen, valvomaton piirreoppiminen.

CycleGAN CycleGANit ratkaisevat parittoman kuva-kuva-muunnoksen ongelman. Toisin kuin muut mallit, jotka vaativat parillisia aineistoja (esim. sama valokuva kahdessa eri tyylissä), CycleGANit voivat oppia muunnoksia kahden domaanin välillä ilman paritettuja esimerkkejä. Ne esittelevät kaksi generaattoria ja kaksi diskriminaattoria, joista kukin vastaa muunnoksesta yhteen suuntaan (esim. valokuvista maalauksiin ja päinvastoin), ja käyttävät syklisen yhdenmukaisuuden tappiota varmistaakseen, että muunnos domaanista toiseen ja takaisin palauttaa alkuperäisen kuvan. Tämä tappio on keskeinen sisällön ja rakenteen säilyttämisessä.

Syklisen yhdenmukaisuuden tappio varmistaa:

GBA(GAB(x))x ja GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{ja}\ G_{AB}(G_{BA}(y))\approx y

missä:

  • GABG_{AB} muuntaa kuvat domaanista A domaaniin B;
  • GBAG_{BA} muuntaa domaanista B domaaniin A.
  • xA,yBx \in A, y \in B.

Käyttökohteet: valokuvan muuntaminen taiteeksi, hevosen muuntaminen seepraksi, äänen muuntaminen puhujien välillä.

StyleGAN

StyleGAN, jonka on kehittänyt NVIDIA, tuo generaattoriin tyyliin perustuvan ohjauksen. Sen sijaan, että kohinavektori syötettäisiin suoraan generaattorille, se kulkee kartoitusverkon läpi muodostaen "tyylivektoreita", jotka vaikuttavat generaattorin jokaiseen kerrokseen. Tämä mahdollistaa yksityiskohtaisen hallinnan visuaalisista ominaisuuksista, kuten hiusten väristä, kasvonilmeistä tai valaistuksesta.

Merkittäviä innovaatioita:

  • Tyylien sekoitus, mahdollistaa useiden latenttikoodien yhdistämisen;
  • Adaptive Instance Normalization (AdaIN), ohjaa generaattorin piirrekaarttoja;
  • Progressiivinen kasvu, koulutus alkaa matalalla resoluutiolla ja kasvaa ajan myötä.

Käyttökohteet: erittäin korkean resoluution kuvien generointi (esim. kasvot), visuaalisten attribuuttien hallinta, taiteen generointi.

Vertailu: GAN:t vs VAE:t

GAN:t ovat tehokas generatiivisten mallien luokka, joka pystyy tuottamaan erittäin realistista dataa vastakkaisella koulutusprosessilla. Niiden ytimessä on minimax-peli kahden verkon välillä, jossa käytetään adversaarisia tappioita molempien osien parantamiseksi iteratiivisesti. Vankka ymmärrys niiden arkkitehtuurista, tappiofunktioista—mukaan lukien variantit kuten cGAN, DCGAN, CycleGAN ja StyleGAN—sekä niiden eroista muihin malleihin, kuten VAE:hin, antaa tarvittavan perustan sovelluksille esimerkiksi kuvageneroinnissa, videosynteesissä, datan augmentoinnissa ja muilla alueilla.

1. Mikä seuraavista kuvaa parhaiten perus-GAN-arkkitehtuurin osia?

2. Mikä on minimax-pelin tavoite GAN-malleissa?

3. Mikä seuraavista väittämistä pitää paikkansa GAN- ja VAE-mallien eroista?

question mark

Mikä seuraavista kuvaa parhaiten perus-GAN-arkkitehtuurin osia?

Select the correct answer

question mark

Mikä on minimax-pelin tavoite GAN-malleissa?

Select the correct answer

question mark

Mikä seuraavista väittämistä pitää paikkansa GAN- ja VAE-mallien eroista?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 8

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 8
some-alt