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. Architektúru navrhol Ian Goodfellow so spolupracovníkmi v roku 2014 — odvtedy vznikli stovky variantov a GANy zásadne ovplyvnili pole generatívneho AI, hoci v roku 2026 ich v mnohých úlohách prekonali difúzne modely.


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.
  • Matematické jadro: tréning formalizujeme ako minimax hru. Generátor minimalizuje, diskriminátor maximalizuje spoločný cieľ:
min_G max_D  E[log D(x)] + E[log(1 − D(G(z)))]

Kde x sú reálne vzorky a z je náhodný šumový vektor. V praxi sa výraz pre generátor upravuje, aby gradient tiekol lepšie, ale intuícia ostáva rovnaká.


2. Ako to funguje (krok za krokom)

  • Vstup pre generátor: typicky náhodný vektor šumu (latentný kód), väčšinou z normálneho alebo uniformného rozdelenia. To je „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 / nereálne".
  • 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 (Nash equilibrium): ideálne sa tréning blíži stavu, kde diskriminátor vracia pravdepodobnosť 0.5 pre každú vzorku — nie preto, že je slabý, ale preto, že generátor je natoľko dobrý, že rozlíšiť sa nedá.
  • Prečo je to náročné: tréning je citlivý na hyperparametre aj architektúru. Ak je kritik príliš silný, gradient ku generátoru vyhasne. Ak je príliš slabý, generátor sa neučí nič užitočné. A keď generátor nájde „ľahký trik", môže produkovať stále to isté — tzv. mode collapse.

3. Architektúry a varianty

Od pôvodného GAN z roku 2014 vzniklo množstvo variantov, každý riešiaci konkrétnu slabinu. Prehľad tých najpraktickejšie relevantných:

Architektúra Kedy vznikla Čo rieši / prináša
DCGAN 2015 Konvolučné vrstvy namiesto plne prepojených; základ pre väčšinu obrázkovych GAN
cGAN 2014 Podmienené generovanie — generátor dostáva triedu alebo iný signal navyše
pix2pix 2016 Image-to-image preklad so sparovanými dátami (napr. mapa → fotka)
CycleGAN 2017 Image-to-image bez sparovaných dát; trénuje sa cyklickou konzistenciou
WGAN / WGAN-GP 2017 Wasserstein vzdialenosť namiesto BCE; stabilnejší tréning, zmysluplnejší gradient
StyleGAN / StyleGAN2 / StyleGAN3 2019–2021 Vysoká kvalita tvárí a textúr; separuje obsah a štýl cez AdaIN vrstvy
BigGAN 2018 Škálovanie na ImageNet; podmienené triedou, veľké batche
GigaGAN 2023 Text-podmienený GAN v mierke difúznych modelov; preukázal, že GANy vedia škálovať

Čo si z toho zobrať: väčšina moderných aplikácií siaha po WGAN-GP alebo StyleGAN rodine pre stabilitu a kvalitu. CycleGAN a pix2pix ostávajú štandardom pre image-to-image úlohy.


4. 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 — StyleGAN3 generuje tváre na úrovni, ktorá dlho nebola rozlíšiteľná od fotografií.
  • 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, deň → noc),
    • preklad domén (fotka → „komiksový" štýl, náčrt → realistická scéna),
    • obnova/retuš (dopĺňanie chýbajúcich častí — inpainting).
  • Super-resolution: zväčšenie rozlíšenia s dôrazom na „presvedčivé detaily" — ESRGAN a jeho nasledovníci sú stále nasadzované v komerčných riešeniach.
  • Syntetické dáta pre tréning: tvorba doplnkových tréningových vzoriek, keď je reálnych dát málo alebo sú citlivé (medicína, autonómne vozidlá, bezpečnostný výskum).
  • Videoprodukcia a efekty: reálne-časové face swap, štylizácia videa, generovanie pozadí — v roku 2026 sú GAN-based efekty štandard v mobilných aplikáciách.
  • Poznámka k situácii v roku 2026: v generovaní obrázkov z textu sa dominantne používajú difúzne modely a ich kombinácie (Stable Diffusion 3, Flux, Imagen 4). GANy si zachovávajú niku tam, kde záleží na rýchlosti inferencie a deterministickej transformácii medzi doménami.

5. GAN vs. difúzne modely — kde čo použiť

Toto je v roku 2026 prakticky najrelevantnejšia otázka pri výbere generatívneho prístupu:

Kritérium GAN Difúzny model
Rýchlosť inferencie Rýchla (jeden forward pass) Pomalšia (desiatky až stovky krokov)
Stabilita tréningu Problematická (mode collapse, nestabilita) Stabilná
Kvalita výstupu (obraz) Vysoká, ale difúzia prevyšuje Vyššia, detailnejšia diverzita
Image-to-image transformácie Prirodzená sila (CycleGAN, pix2pix) Možné (cez img2img), ale neprirodzenejšie
Text-podmienené generovanie GigaGAN ukázal že ide, ale nie je norma Dominantný prístup (SD, Flux, Imagen)
Latentný priestor Priamy a interpretovateľný (StyleGAN) Menej priamy, ale DDIM dovoľuje interpoláciu
Požiadavky na pamäť Nižšie pri inferenci Vyššie (veľké UNet/transformer backbone)
Typická nasaditeľnosť Mobilné zariadenia, real-time aplikácie Serverové GPU, cloudové API

Záver z tabuľky: GAN nie je mŕtvy — je to špecializovaný nástroj. Pre real-time efekty a domain transfer zostáva relevantný. Pre otvorené generovanie z textu vol difúzne modely.


6. Výhody a obmedzenia (úprimne)

Výhody

  • Ostré výstupy: GANy majú reputáciu, že vedia robiť detailné a „chrumkavé" textúry, lebo adversariálny loss priamo trestá rozmazané vzorky.
  • Rýchla inferencia: po natrénovaní je generovanie veľmi rýchle — jeden forward pass generátorom, bez iteratívneho rozptylovania.
  • Silné pre transformácie: pri image-to-image úlohách sú GANy prirodzené, lebo sa učia mapovanie „A → B" priamo.
  • Interpretovateľný latentný priestor: StyleGAN umožňuje intuitívnu manipuláciu s atribútmi — vek, štýl, osvetlenie — cez jednoduché vektory.

Obmedzenia

  • Nestabilný tréning: GAN vie byť „rozladený" — loss krivky môžu vyzerať dobre, ale výstupy sú zlé. Diagnostika je ťažká.
  • 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ť rovnakým trikom.
  • Ťažké hodnotenie kvality: nie je jednoduché povedať jedným číslom, či je model lepší. V praxi sa používajú metriky FID (Fréchet Inception Distance) a IS (Inception Score), ale aj tie majú limity — FID meria distribučnú podobnosť, nie percepty.
  • 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ä zuby, prsty, periodické textúry, okraje objektov.
  • Dátové nároky: kvalitný GAN vyžaduje veľký a čistý dataset. Na malých datasetoch (< tisíc vzoriek) trénujte radšej s regularizáciou (ADA — adaptívna augmentácia z NVIDIA).

Bezpečnostný a etický presah

  • Deepfake riziká: realistické generovanie tvárí a hlasov je ľahko zneužiteľné na dezinformácie, podvody, úniky identity. StyleGAN-class výstupy sú v roku 2026 bežne nerozlíšiteľné od fotografií bez detekčných nástrojov.
  • Dátové riziká: ak trénuješ na citlivých dátach, overuj, či model nepriamo odhaľuje trénovacie vzorky cez membership inference útoky.
  • Právne aspekty: syntetické dáta generované z chránených zdrojov nesú právne riziká — ovládaj licencie tréningových dát skôr, ako syntetiku nasadíš do produkcie.

7. Adversariálny tréning v pseudokóde

Jadro GAN je striedavé trénovanie dvoch sietí proti sebe:

for real in dataloader:
    # 1) trénuj diskriminátor: rozlíš pravé od falošných
    fake = G(noise())
    d_loss = bce(D(real), 1) + bce(D(fake.detach()), 0)
    d_loss.backward(); opt_D.step()

    # 2) trénuj generátor: oklam diskriminátor
    g_loss = bce(D(G(noise())), 1)   # chce, aby D povedal „real"
    g_loss.backward(); opt_G.step()

Pre stabilnejší variant s Wasserstein vzdialenosťou (WGAN-GP) sa BCE nahrádza lineárnym výstupom a pridáva gradient penalty:

# WGAN-GP diskriminátor loss (zjednodušene)
gp = gradient_penalty(D, real, fake)
d_loss = D(fake).mean() - D(real).mean() + 10 * gp

Práve toto „naťahovanie" robí tréning citlivým — odtiaľ mode collapse a nestabilita. WGAN-GP signifikantne pomáha, ale nestabilitu neodstraňuje úplne.


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

Kedy sa s tým stretneš

  • Aplikácie na úpravu fotiek: funkcie „smart retuš", „zmeň štýl", „doplň pozadie" v komerčných aplikáciách sú často postavené na GAN-like prístupoch — predovšetkým pre real-time výkon.
  • Video/obrazové efekty: rýchle transformácie a stylizácie, kde je kľúčová nízka latencia.
  • Dáta do tréningu: syntetické doplnenie datasetu — opatrne, aby si si nevytvoril skreslenie. Syntetická dáta by mali byť validované na distribučnú zhodu s reálnymi dátami.
  • Medicinské zobrazovanie: augmentácia tréningových dát pre segmentáciu, detekcia anomálií — citlivá oblasť s prísnou reguláciou.

Kedy GAN dáva zmysel v roku 2026

  • Chceš real-time alebo nízkolatenčné generovanie (mobilná aplikácia, herný engine).
  • Robíš transformáciu medzi doménami (A → B), kde dobre definuješ, čo znamená „zachovať obsah".
  • Potrebuješ deterministickú manipuláciu s latentným priestorom (StyleGAN-style atribútová editácia).
  • Máš obmedzené GPU zdroje pri inferenci — GAN generátor je typicky kompaktný.

Kedy radšej zvoliť iný prístup

  • Text-podmienené generovanie na vysokej kvalite — tu dominujú difúzne modely a flow-matching architektúry.
  • Potrebuješ diverzitu výstupov s dobrou pokrytosťou distribúcie — mode collapse je reálne riziko.
  • Nemáš kapacitu ladiť tréning — difúzne modely sú menej náchylné na zlý výber hyperparametrov.

9. Súvislosti

  • Diffusion models: v roku 2026 dominantný prístup pre generovanie obrázkov z textu. Vyhrávajú na diverzite a stabilite, GAN vyhrávajú na rýchlosti.
  • Deep Learning: GAN je špeciálny tréningový režim hlbokých sietí — môžeš kombinovať s akoukoľvek architektúrou (CNN, Transformer).
  • Attention / Transformer: novšie generatívne architektúry (napr. TransGAN, GigaGAN) kombinujú adversariálne princípy s self-attention.
  • VAE (Variational Autoencoder): alternatívny generatívny prístup s explicitným pravdepodobnostným modelom; latentný priestor je plynulejší, výstupy menej ostré.
  • FID metrika: štandardná metrika pre porovnávanie generatívnych modelov — Fréchet Inception Distance meria vzdialenosť medzi distribúciou reálnych a generovaných vzoriek.

Zhrnutie

  • GAN je súboj dvoch sietí: generátor tvorí, diskriminátor kritizuje — z tohto napätia vzniká kvalitatívne lepšia generácia, ako keby sa sieť učila priamo.
  • Silný je v detailoch, rýchlosti a transformáciách: prirodzená sila pre image-to-image úlohy a real-time aplikácie ostáva relevantná aj v roku 2026.
  • Najväčší problém je tréning: nestabilita a mode collapse sú dôvody, prečo sa pre nové projekty s otvoreným generovaním volia iné prístupy.
  • V roku 2026 má GAN svoju niku: nie je zastaraná technológia, ale špecializovaný nástroj — vedieť, kedy ho použiť a kedy siahnuť po difúznych modeloch, je kľúčová praktická zručnosť.
  • Mysli aj na dopady: realistické generovanie je užitočné, ale deepfake riziká sú v roku 2026 dokumentovaným spoločenským problémom — nasadzovanie GAN-based nástrojov si vyžaduje etickú rozvahu a technické zabezpečenie.