AI-For-Beginners/translations/fi/lessons/4-ComputerVision/10-GANs
leestott 07e1ffa96b 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
..
GANPyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
GANTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
StyleTransfer.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
StyleTransfer_Keras.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00

README.md

Generatiiviset vastakkaisasettelumallit

EdellisessÀ osiossa opimme generatiivisista malleista: malleista, jotka voivat luoda uusia kuvia, jotka muistuttavat harjoitusaineistossa olevia kuvia. VAE oli hyvÀ esimerkki generatiivisesta mallista.

Pre-lecture quiz

Jos kuitenkin yritÀmme luoda jotain todella merkityksellistÀ, kuten maalauksen kohtuullisella resoluutiolla, VAE:lla huomaamme, ettÀ koulutus ei konvergoi hyvin. TÀtÀ kÀyttötapausta varten meidÀn tulisi oppia toinen arkkitehtuuri, joka on erityisesti suunnattu generatiivisille malleille - Generatiiviset vastakkaisasettelumallit, eli GANit.

GANin pÀÀidea on kÀyttÀÀ kahta neuroverkkoa, jotka koulutetaan toisiaan vastaan:

Kuva: Dmitry Soshnikov

✅ Pieni sanasto:

  • Generaattori on verkko, joka ottaa satunnaisen vektorin ja tuottaa kuvan tuloksena.
  • Diskriminaattori on verkko, joka ottaa kuvan ja yrittÀÀ mÀÀrittÀÀ, onko se oikea kuva (harjoitusaineistosta) vai generaattorin luoma. Se on kĂ€ytĂ€nnössĂ€ kuvaluokitin.

Diskriminaattori

Diskriminaattorin arkkitehtuuri ei eroa tavallisesta kuvaluokitusverkosta. Yksinkertaisimmillaan se voi olla tÀysin yhdistetty luokitin, mutta todennÀköisesti se on konvoluutioneuroverkko.

✅ GAN, joka perustuu konvoluutioneuroverkkoihin, tunnetaan nimellĂ€ DCGAN

CNN-diskriminaattori koostuu seuraavista kerroksista: useita konvoluutioita ja poolauksia (joilla pienennetÀÀn spatiaalista kokoa) sekÀ yksi tai useampi tÀysin yhdistetty kerros, joilla saadaan "piirrevektori", ja lopuksi binÀÀriluokitin.

✅ 'Poolaus' tĂ€ssĂ€ yhteydessĂ€ on tekniikka, joka pienentÀÀ kuvan kokoa. "Poolauskerrokset pienentĂ€vĂ€t datan ulottuvuuksia yhdistĂ€mĂ€llĂ€ yhden kerroksen neuroniryhmien tulokset yhdeksi neuroniksi seuraavassa kerroksessa." - lĂ€hde

Generaattori

Generaattori on hieman monimutkaisempi. Voit ajatella sen olevan kÀÀnteinen diskriminaattori. Se alkaa latenttivektorista (piirrevektorin sijaan), sisÀltÀÀ tÀysin yhdistetyn kerroksen, joka muuntaa sen vaadittuun kokoon/muotoon, ja sitÀ seuraavat dekonstruktiot ja skaalaus ylöspÀin. TÀmÀ on samanlainen kuin autokooderin dekooderi-osa.

✅ Koska konvoluutiokerros toteutetaan lineaarisena suodattimena, joka kulkee kuvan lĂ€pi, dekonstruktio on pohjimmiltaan samanlainen kuin konvoluutio ja voidaan toteuttaa samalla kerroslogiikalla.

Kuva: Dmitry Soshnikov

GANin kouluttaminen

GANit ovat vastakkaisasettelullisia, koska generaattorin ja diskriminaattorin vÀlillÀ on jatkuva kilpailu. TÀmÀn kilpailun aikana sekÀ generaattori ettÀ diskriminaattori parantavat suoritustaan, jolloin verkko oppii tuottamaan yhÀ parempia kuvia.

Koulutus tapahtuu kahdessa vaiheessa:

  • Diskriminaattorin kouluttaminen. TĂ€mĂ€ tehtĂ€vĂ€ on melko suoraviivainen: luomme generaattorin avulla erĂ€n kuvia, jotka merkitÀÀn 0:ksi (vÀÀrennetty kuva), ja otamme erĂ€n kuvia syötedatasta (merkittynĂ€ 1:ksi, oikea kuva). Saamme jonkin diskriminaattorihĂ€viön ja suoritamme takapropagaation.
  • Generaattorin kouluttaminen. TĂ€mĂ€ on hieman monimutkaisempaa, koska emme tiedĂ€ generaattorin odotettua tulosta suoraan. Otamme koko GAN-verkon, joka koostuu generaattorista ja diskriminaattorista, syötĂ€mme siihen satunnaisia vektoreita ja odotamme tuloksen olevan 1 (vastaa oikeita kuvia). JÀÀdytĂ€mme sitten diskriminaattorin parametrit (emme halua sen kouluttuvan tĂ€ssĂ€ vaiheessa) ja suoritamme takapropagaation.

TÀmÀn prosessin aikana sekÀ generaattorin ettÀ diskriminaattorin hÀviöt eivÀt laske merkittÀvÀsti. Ihannetilanteessa niiden tulisi vaihdella, mikÀ vastaa molempien verkkojen suorituskyvyn paranemista.

✍ Harjoitukset: GANit

GANin koulutuksen ongelmat

GANit ovat tunnetusti erityisen vaikeita kouluttaa. TÀssÀ muutamia ongelmia:

  • Mode Collapse. TĂ€mĂ€ tarkoittaa, ettĂ€ generaattori oppii tuottamaan yhden onnistuneen kuvan, joka huijaa diskriminaattoria, mutta ei monenlaisia erilaisia kuvia.
  • HerkkĂ€ hyperparametreille. Usein GAN ei konvergoi lainkaan, mutta oppimisnopeuden Ă€killinen lasku voi johtaa konvergenssiin.
  • Tasapainon yllĂ€pitĂ€minen generaattorin ja diskriminaattorin vĂ€lillĂ€. Monissa tapauksissa diskriminaattorin hĂ€viö voi pudota nollaan suhteellisen nopeasti, mikĂ€ estÀÀ generaattoria kouluttautumasta edelleen. TĂ€mĂ€n voittamiseksi voimme yrittÀÀ asettaa eri oppimisnopeudet generaattorille ja diskriminaattorille tai ohittaa diskriminaattorin koulutuksen, jos hĂ€viö on jo liian alhainen.
  • Korkean resoluution kouluttaminen. TĂ€mĂ€ ongelma liittyy samaan kuin autokoodereissa: liian monen konvoluutiokerroksen rekonstruointi johtaa artefakteihin. TĂ€mĂ€ ongelma ratkaistaan tyypillisesti niin sanotulla progressiivisella kasvulla, jossa ensin muutama kerros koulutetaan matalaresoluutioisilla kuvilla, ja sitten kerroksia "avataan" tai lisĂ€tÀÀn. Toinen ratkaisu on lisĂ€tĂ€ ylimÀÀrĂ€isiĂ€ yhteyksiĂ€ kerrosten vĂ€lille ja kouluttaa useita resoluutioita samanaikaisesti - katso lisĂ€tietoja tĂ€stĂ€ Multi-Scale Gradient GANs -paperista.

Tyylinsiirto

GANit ovat loistava tapa luoda taiteellisia kuvia. Toinen mielenkiintoinen tekniikka on niin sanottu tyylinsiirto, jossa otetaan yksi sisÀltökuva ja piirretÀÀn se uudelleen eri tyylillÀ, soveltaen tyylikuvan suodattimia.

NĂ€in se toimii:

  • Aloitamme satunnaisesta kohinakuvaasta (tai sisĂ€ltökuvasta, mutta ymmĂ€rtĂ€misen kannalta on helpompi aloittaa satunnaisesta kohinasta).
  • Tavoitteenamme on luoda sellainen kuva, joka olisi lĂ€hellĂ€ sekĂ€ sisĂ€ltökuvaa ettĂ€ tyylikuvaa. TĂ€mĂ€ mÀÀritetÀÀn kahdella hĂ€viöfunktiolla:
    • SisĂ€ltöhĂ€viö lasketaan CNN:n tietyissĂ€ kerroksissa nykyisestĂ€ kuvasta ja sisĂ€ltökuvasta saatujen piirteiden perusteella.
    • TyylihĂ€vikkö lasketaan nykyisen kuvan ja tyylikuvan vĂ€lillĂ€ Ă€lykkÀÀllĂ€ tavalla kĂ€yttĂ€mĂ€llĂ€ Gram-matriiseja (lisĂ€tietoja esimerkkimuistikirjassa).
  • Kuvan tasoittamiseksi ja kohinan poistamiseksi otamme kĂ€yttöön myös Variation loss -hĂ€viön, joka laskee keskimÀÀrĂ€isen etĂ€isyyden vierekkĂ€isten pikselien vĂ€lillĂ€.
  • PÀÀoptimointisilmukka sÀÀtÀÀ nykyistĂ€ kuvaa gradienttilaskennan (tai jonkin muun optimointialgoritmin) avulla minimoidakseen kokonaismenetyksen, joka on kaikkien kolmen hĂ€viön painotettu summa.

✍ Esimerkki: Tyylinsiirto

Post-lecture quiz

Yhteenveto

TÀssÀ oppitunnissa opit GANeista ja niiden kouluttamisesta. Opit myös erityisistÀ haasteista, joita tÀmÀ neuroverkkojen tyyppi voi kohdata, sekÀ strategioista niiden voittamiseksi.

🚀 Haaste

KÀy lÀpi tyylinsiirto-muistikirja kÀyttÀen omia kuviasi.

Kertaus ja itseopiskelu

LisÀtietoja GANeista löydÀt nÀistÀ lÀhteistÀ:

TehtÀvÀ

Palaa johonkin tÀmÀn oppitunnin kahdesta muistikirjasta ja kouluta GAN omilla kuvillasi. MitÀ voit luoda?


Vastuuvapauslauseke:
TÀmÀ asiakirja on kÀÀnnetty kÀyttÀmÀllÀ tekoÀlypohjaista kÀÀnnöspalvelua Co-op Translator. Pyrimme tarkkuuteen, mutta huomioithan, ettÀ automaattiset kÀÀnnökset voivat sisÀltÀÀ virheitÀ tai epÀtarkkuuksia. AlkuperÀistÀ asiakirjaa sen alkuperÀisellÀ kielellÀ tulee pitÀÀ ensisijaisena lÀhteenÀ. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskÀÀntÀmistÀ. Emme ole vastuussa tÀmÀn kÀÀnnöksen kÀytöstÀ aiheutuvista vÀÀrinkÀsityksistÀ tai virhetulkinnoista.