GAN

GAN (Generative Adversarial Network) je generatívna technika, kde sa dva neurónové modely „naťahujú“ v hre: jeden vytvára falošné dáta a druhý sa ich snaží odhaliť. Výsledok je generátor, ktorý vie produkovať realisticky pôsobiace výstupy (najčastejšie obrázky), aj keď začínal od čistého šumu.

prompt-clanok


1. Čo to je (definícia + analógia)

  • Definícia: GAN je dvojica sietí — generátor (G) vyrába vzorky a diskriminátor (D) hodnotí, či vyzerajú ako „pravé“.
  • Analógia: predstav si falšovateľa bankoviek a kontrolóra. Falšovateľ sa snaží robiť lepšie falzifikáty, kontrolór sa učí rozpoznávať nové triky. Keď sa obaja zlepšujú, falzifikáty začnú vyzerať presvedčivo.
  • Pointa: nejde o to, že by GAN „chápal“ svet. Učí sa štatistický tvar dát (napr. ako vyzerajú tváre, textúry, tiene), aby vedel generovať podobné vzorky.

2. Ako to funguje (krok za krokom)

  • Vstup pre generátor: typicky náhodný vektor šumu (latentný kód). To je ako „semeno“, z ktorého generátor vyrobí obrázok.
  • Diskriminátor ako kritik: dostáva pravé dáta (z datasetu) aj vygenerované dáta a vracia skóre: „vyzerá to reálne / nerealne“.
  • Adversariálny tréning: prebieha v cykle:
    • 1) Trénuješ diskriminátor: ukážeš mu mix pravých a falošných vzoriek, aby sa zlepšil v rozlišovaní.
    • 2) Trénuješ generátor: upravíš generátor tak, aby diskriminátor oklamal (t. j. aby generované vzorky dostali vyššie „real“ skóre).
  • Hra s rovnováhou: ideálne sa to približuje k stavu, kde diskriminátor už nevie spoľahlivo povedať, čo je pravé — nie preto, že je slabý, ale preto, že generátor je dobrý.
  • Prečo je to náročné: tréning je citlivý. Ak je kritik príliš silný alebo príliš slabý, generátor sa učí zle. A keď generátor nájde „ľahký trik“, môže produkovať stále to isté (tzv. mode collapse).

3. Prečo je to dôležité a kde sa to používa

  • Fotorealistická syntéza: GANy historicky ukázali, že neurónová sieť vie generovať veľmi realistické obrázky s ostrými detailmi.
  • Image-to-image transformácie: veľká sila GANov je v úlohách typu „zmeň štýl, ale zachovaj obsah“:
    • premaľovanie (napr. leto → zima),
    • preklad domén (fotka → „komiksový“ štýl),
    • obnova/retuš (dopĺňanie chýbajúcich častí, inpainting).
  • Super-resolution: zväčšenie rozlíšenia s dôrazom na „presvedčivé detaily“ (aj keď tie detaily môžu byť do určitej miery domyslené).
  • Syntetické dáta: tvorba doplnkových tréningových dát, keď je reálnych dát málo alebo sú citlivé.
  • Poznámka k dnešku: v generovaní obrázkov sa často preferujú iné prístupy (napr. difúzne modely) kvôli stabilite a kontrole, ale GANy stále dávajú zmysel tam, kde chceš rýchly generátor alebo presnú transformáciu medzi doménami.

4. Výhody a obmedzenia (úprimne)

  • Výhody
    • Ostré výstupy: GANy majú reputáciu, že vedia robiť detailné a „chrumkavé“ textúry.
    • Rýchla inference: po natrénovaní je generovanie často veľmi rýchle (jedno prebehnutie sieťou).
    • Silné pre transformácie: pri image-to-image úlohách sú GANy prirodzené, lebo sa učia mapovanie „A → B“.
  • Obmedzenia
    • Nestabilný tréning: GAN vie byť „rozladený“ — chvíľu vyzerá dobre, potom sa to zhorší bez jasného dôvodu.
    • Mode collapse: generátor môže produkovať malú variáciu (napr. stále podobné tváre), lebo našiel spôsob, ako kritika opakovane oklamať.
    • Ťažké hodnotenie kvality: nie je jednoduché povedať jedným číslom, či je model lepší. V praxi sa používajú metriky typu FID, ale aj tie majú limity.
    • Artefakty a „triky“: GAN môže generovať detaily, ktoré pôsobia reálne na prvý pohľad, ale pri bližšom skúmaní sú divné (najmä na hranách, textúrach, opakujúcich sa vzoroch).
  • Bezpečnostný presah (prakticky)
    • Deepfake riziká: realistické generovanie tvárí a hlasov je ľahko zneužiteľné.
    • Dátové riziká: ak trénuješ na citlivých dátach, rieš, či model a dataset nemôžu nepriamo odhaliť neželané informácie (a či máš práva dáta vôbec použiť).

5. Praktické použitie: čo si z toho zoberieš aj bez tréningu modelu

  • Kedy sa s tým stretneš
    • Aplikácie na úpravu fotiek: niektoré funkcie „smart retuš“, „zmeň štýl“, „doplň pozadie“ môžu byť postavené na GAN-like prístupoch.
    • Video/obrazové efekty: rýchle transformácie a stylizácie, kde je dôležitá latencia.
    • Dáta do tréningu: syntetické doplnenie datasetu (opatrne, aby si si nevytvoril skreslenie).
  • Kedy GAN dáva zmysel
    • Chceš rýchle generovanie (nízka latencia) a nepotrebuješ ťažké iteratívne generovanie.
    • Robíš transformáciu medzi doménami (A → B), kde vieš dobre definovať, čo znamená „zachovať obsah“.
  • Kedy radšej zvoliť iný prístup
    • Potrebuješ stabilnejší tréning alebo vyššiu kontrolu nad generovaním bez veľkého ladenia.
    • Chceš „pomalšie, ale robustné“ generovanie s lepšou predvídateľnosťou kvality.
  • Ak si zvedavý a chceš pochopiť varianty (bez matematiky)
    • DCGAN: klasika pre obrázky, „základný tvar“ moderných GAN architektúr.
    • Conditional GAN (cGAN): generovanie „podľa zadania“ (napr. trieda, textový popis, náčrt).
    • CycleGAN / pix2pix: typické rodiny pre image-to-image úlohy (prenášanie štýlu, mapovanie domén).
    • WGAN(-GP): snaha urobiť tréning stabilnejším cez iný spôsob merania „rozdielu“ medzi reálnymi a generovanými dátami.

Zhrnutie

  • GAN je súboj dvoch sietí: generátor tvorí, diskriminátor kritizuje — a z tohto napätia vzniká lepšia generácia.
  • Silný je v detailoch a transformáciách: často sa hodí pre rýchle generovanie a image-to-image úlohy.
  • Najväčší problém je tréning: nestabilita a mode collapse sú dôvody, prečo sa v praxi niekedy volia iné generatívne prístupy.
  • Mysli aj na dopady: realistické generovanie je užitočné, ale ľahko zneužiteľné — najmä pri tvárach, identite a „dôkazovom“ obsahu.