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.