Generative Adversarial Networks (GAN) to jedna z najbardziej przełomowych architektur w historii sieci neuronowych. Zaproponowane w 2014 roku przez Iana Goodfellowa, GAN-y zrewolucjonizowały generowanie obrazów, wideo i dźwięku. Yann LeCun nazwał je „najciekawszą ideą w uczeniu maszynowym ostatnich 20 lat".

Zasada działania GAN

GAN opiera się na grze dwóch graczy — dwóch sieci neuronowych rywalizujących ze sobą:

Generator (G)

Generator to sieć, której zadaniem jest tworzenie fałszywych danych tak realistycznych, by były nieodróżnialne od prawdziwych. Generator przyjmuje na wejściu losowy wektor szumu z (z rozkładu normalnego lub jednostajnego) i przekształca go w dane wyjściowe — np. obraz.

G(z) → fałszywy obraz

Dyskryminator (D)

Dyskryminator to sieć klasyfikująca dane jako prawdziwe lub fałszywe. Otrzymuje na przemian prawdziwe dane z zestawu treningowego i fałszywe dane wygenerowane przez generator.

D(x) → prawdopodobieństwo, że x jest prawdziwe

Gra minimax

Trening GAN to gra minimax — generator minimalizuje, a dyskryminator maksymalizuje tę samą funkcję celu:

min_G max_D V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]

Intuicja: dyskryminator chce prawidłowo rozróżniać prawdziwe od fałszywych (maksymalizuje V), a generator chce oszukać dyskryminatora (minimalizuje V). W równowadze Nasha generator produkuje dane nieodróżnialne od prawdziwych, a dyskryminator daje prawdopodobieństwo 0,5 na każde wejście — nie potrafi rozróżnić.

Analogia

Powszechnie stosowana analogia to fałszerz vs policja: generator jest fałszerzem uczącym się podrabiać banknoty, dyskryminator jest policjantem uczącym się wykrywać fałszywki. Z czasem fałszerz staje się coraz lepszy, co zmusza policjanta do doskonalenia metod — i odwrotnie. Ostatecznie fałszywki stają się perfekcyjne.

Trening GAN krok po kroku

1. Inicjalizacja

Generator i dyskryminator inicjalizowane z losowymi wagami.

2. Trening dyskryminatora

  • Pobierz partię prawdziwych danych (mini-batch)
  • Wygeneruj partię fałszywych danych: G(z)
  • Oblicz stratę dyskryminatora na obu partiach
  • Aktualizuj wagi dyskryminatora przez gradient descent
  • Nie aktualizuj wag generatora w tym kroku

3. Trening generatora

  • Wygeneruj fałszywe dane: G(z)
  • Przepuść je przez dyskryminatora
  • Oblicz stratę generatora (chce, by dyskryminator klasyfikował fałszywki jako prawdziwe)
  • Aktualizuj wagi generatora przez backpropagation przez dyskryminator
  • Nie aktualizuj wag dyskryminatora w tym kroku

4. Powtarzaj

Alternuj między treningiem D i G przez tysiące iteracji.

Wyzwania treningu GAN

Mode Collapse

Najpoważniejszy problem: generator „zapada się" na kilka wzorców, produkując jedynie ograniczoną różnorodność wyjść. Na przykład GAN trenowany na twarzach generuje tylko kilka podobnych twarzy zamiast pełnego spektrum.

Przyczyna: generator znajduje kilka wyjść, które skutecznie oszukują dyskryminatora i „specjalizuje się" w nich, ignorując resztę rozkładu danych.

Niestabilność treningu

Balans między generatorem a dyskryminatorem jest delikatny. Jeśli dyskryminator jest zbyt silny — generator nie dostaje użytecznych gradientów. Jeśli zbyt słaby — generator nie ma motywacji do poprawy. Trening GAN wymaga starannego doboru hiperparametrów i monitorowania.

Brak obiektywnej metryki

W odróżnieniu od klasyfikacji (accuracy) czy regresji (MSE), nie istnieje jedna oczywista metryka jakości generacji. Stosuje się:

  • FID (Fréchet Inception Distance) — porównuje statystyki cech prawdziwych i wygenerowanych obrazów
  • IS (Inception Score) — mierzy jakość i różnorodność
  • LPIPS — mierzy percepcyjne podobieństwo

Warianty GAN

DCGAN (Deep Convolutional GAN)

Pierwszy stabilny GAN oparty na konwolucyjnych sieciach neuronowych (2015). Kluczowe decyzje architektoniczne: konwolucje zamiast warstw w pełni połączonych, batch normalization, LeakyReLU w dyskryminatorze, brak warstw pooling (zastąpione strided convolutions).

Conditional GAN (cGAN)

Rozszerzenie GAN o warunek — dodatkową informację podawaną zarówno generatorowi, jak i dyskryminatorowi (np. etykieta klasy). Pozwala kontrolować generację: „wygeneruj obraz kota" zamiast losowego obrazu.

Pix2Pix

GAN do translacji obrazów parami (paired image-to-image translation): szkic → fotorealistyczny obraz, mapa segmentacji → zdjęcie ulicy, dzień → noc. Wymaga sparowanych danych treningowych.

CycleGAN

Translacja obrazów bez par (unpaired). Uczy się mapowania między dwiema domenami (np. konie ↔ zebry, zdjęcia ↔ obrazy Moneta) bez potrzeby sparowanych przykładów. Stosuje dwa generatory i dwa dyskryminatory z cycle consistency loss — obraz przetłumaczony w obie strony powinien wrócić do oryginału.

StyleGAN / StyleGAN2 / StyleGAN3

Seria modeli NVIDIA do generowania fotorealistycznych twarzy. StyleGAN wprowadził mapping network i style injection — kontrolę nad stylem na różnych skalach (od ogólnego kształtu twarzy po szczegóły tekstury). StyleGAN2 poprawił artefakty, StyleGAN3 wyeliminował problemy z alias.

Twarze generowane przez StyleGAN3 są praktycznie nieodróżnialne od fotografii prawdziwych ludzi — co rodzi poważne implikacje etyczne.

ProGAN (Progressive GAN)

Trening zaczynający od niskiej rozdzielczości (4×4) i stopniowo dodający warstwy do osiągnięcia wysokiej (1024×1024). Stabilizuje trening i poprawia jakość generowanych obrazów.

WGAN (Wasserstein GAN)

Zamienia funkcję celu na odległość Wassersteina (Earth Mover Distance). Zapewnia bardziej stabilny trening — gradient jest użyteczny nawet gdy dyskryminator jest bliski optymalnego, co łagodzi problem zanikających gradientów.

Zastosowania GAN

Generowanie i edycja obrazów

  • Generowanie twarzy — fotorealistyczne twarze nieistniejących osób (ThisPersonDoesNotExist.com)
  • Super-resolution — powiększanie rozdzielczości obrazów (SRGAN, ESRGAN)
  • Inpainting — uzupełnianie brakujących fragmentów obrazu
  • Style transfer — przenoszenie stylu artystycznego
  • Usuwanie obiektów — inteligentne wymazywanie elementów ze zdjęć

Augmentacja danych

GAN może generować syntetyczne dane treningowe w domenach, gdzie prawdziwe dane są kosztowne lub rzadkie:

  • Obrazy medyczne (skany MRI, zdjęcia dermoskopowe)
  • Dane satelitarne
  • Rzadkie scenariusze w jazdie autonomicznej

Wideo i animacja

  • Deepfake — generowanie realistycznych wideo z podmienioną twarzą
  • Motion transfer — przenoszenie ruchu między postaciami
  • Generowanie wideo — np. VideoGPT, modele text-to-video

Inne domeny

  • Text-to-Image — generowanie obrazów z opisu tekstowego (choć dziś dominują modele dyfuzyjne jak Stable Diffusion)
  • Drug discovery — generowanie struktur molekularnych
  • Synteza mowy — WaveGAN do generowania audio

GAN vs modele dyfuzyjne

Od 2022 roku modele dyfuzyjne (Stable Diffusion, DALL-E 2, Midjourney) w dużej mierze zastąpiły GAN-y w generowaniu obrazów z tekstu. Kluczowe różnice:

Cecha GAN Modele dyfuzyjne
Trening Niestabilny (gra minimax) Stabilny (denoising)
Mode collapse Tak Nie
Jakość Bardzo wysoka Bardzo wysoka
Różnorodność Ograniczona Wysoka
Kontrola Trudniejsza Łatwiejsza (text-guided)
Szybkość generacji Szybka (jedno przejście) Wolniejsza (wiele kroków)

GAN-y pozostają preferowane tam, gdzie liczy się szybkość generacji (real-time), np. w grach wideo i aplikacjach mobilnych.

Etyka i zagrożenia

Zdolność GAN do generowania fotorealistycznych treści rodzi poważne zagrożenia:

  • Deepfake — fałszywe wideo polityków, celebrytów, zwykłych ludzi
  • Dezinformacja — syntetyczne zdjęcia „dowodzące" fałszywych wydarzeń
  • Kradzież tożsamości — generowanie fałszywych dokumentów z realistycznymi zdjęciami
  • Pornografia non-consensual — generowanie intymnych treści bez zgody

Rozwija się równolegle dziedzina detekcji deepfake — sieci neuronowe trenowane do rozpoznawania syntetycznych treści. Legislacje (EU AI Act) zaczynają wymagać oznaczania treści generowanych przez AI.

Podsumowanie

GAN-y zrewolucjonizowały generatywną AI, wprowadzając elegancki paradygmat rywalizacji dwóch sieci. Choć modele dyfuzyjne przejęły pałeczkę w wielu zadaniach, architektura GAN pozostaje fundamentem rozumienia generatywnego uczenia maszynowego i znajduje zastosowania tam, gdzie liczy się szybkość i kontrola nad generacją.