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.