AI Sözlüğü
İleri· ~2 dk okuma#gan#adversarial#generative

GAN

Generative Adversarial Network

İki sinir ağının (üretici + ayırıcı) birbirine karşı eğitildiği üretim modeli — biri sahte örnek üretir, diğeri gerçek/sahte ayırmaya çalışır.

ÜRETİCİ VS AYIRICI · KARŞILIKLI EĞİTİMÜRETİCİ (G)girdi: rastgele gürültüsahte örnek"gerçek gibi yap"AYIRICI (D)gerçek mi, sahte mi?"yakalamaya çalış"KARAR⚖️kayıp = G ↑ödül = D ↓her tur: ikisi de daha iyileşirkalpazan polise karşı — sonunda her ikisi usta olur
Tanım

GAN (Generative Adversarial Network), 2014'te Ian Goodfellow tarafından önerilen üretim modeli mimarisidir. Tek model değil iki model birden eğitilir:

- Generator (Üretici, G): rastgele gürültüden sahte örnekler üretir. Amacı: gerçek görünmek. - Discriminator (Ayırıcı, D): bir örneğe bakıp "gerçek mi sahte mi?" der. Amacı: kalpazanı yakalamak.

İkisi karşıt bir oyun (adversarial game) oynar: G daha iyi sahte yaptıkça D daha iyi yakalar; D daha iyi yakaladıkça G daha iyi sahte yapmak zorunda kalır. Süreç sonunda G, gerçeklerden ayırt edilemeyen örnekler üretir.

GAN'lar 2014-2020 döneminde görsel üretimin standardıydı (StyleGAN, BigGAN, Progressive GAN). Şimdi diffusion modelleri öne çıktı, ama GAN'lar hâlâ aktif: deepfake, super-resolution, image-to-image translation (CycleGAN), tıbbi görsel artırma.

Benzetme

Bir kalpazan ve polis. Kalpazan sahte para basar (G). Polis sahte parayı yakalamaya çalışır (D). Kalpazan iyileştikçe polis daha iyi olmak zorunda; polis iyileştikçe kalpazan daha iyi olmak zorunda. Sonuçta her ikisi de uzmanlaşır — kalpazanın işi gerçeği aratmaz.

Gerçek dünyadan örnek

NVIDIA'nın StyleGAN3 modelinde olan biten: - Generator: 512 boyutlu rastgele bir vektörden başlar, kademe kademe upsampling ile 1024×1024 yüz fotoğrafı üretir. - Discriminator: bu fotoğrafa bakıp "FFHQ veri setindeki gerçek yüzlerden mi?" der. - 25M iterasyon sonrası: G, internette "thispersondoesnotexist.com" diye yayınlanan ürkütücü gerçeklikteki yüzleri üretebiliyor.

Aynı mantık Cycle GAN ile sezon transferi (yaz fotoğrafı → kış), pix2pix ile çizim → gerçekçi görsel, BigGAN ile ImageNet'in tüm kategorilerinde kullanılıyor.

Ne zaman kullan
  • Tek seferde hızlı üretim (diffusion 30 adım, GAN 1 adım)
  • Image-to-image translation (CycleGAN: stil transferi)
  • Super-resolution — düşük çözünürlüklü → yüksek çözünürlüklü
  • Deepfake/yüz değiştirme uygulamaları
  • Eğitim verisi artırma (data augmentation)
Ne zaman kullanma
  • Geniş çeşitlilik gereken üretim — diffusion daha iyi çeşitlilik verir
  • Text-conditional üretim — diffusion conditioning'de daha esnek
  • Yeni başlıyorsan — GAN'lar zor eğitilir, diffusion daha forgiving
  • Production'da yüksek kalite şartı — modern SOTA artık diffusion
Sık yapılan hatalar

Mode collapse

Generator çeşitlilik kaybeder, hep aynı 1-2 tipi üretir (örn: 1000 farklı yüz değil, 5 tipin varyasyonları). Discriminator'ı 'şaşırtmanın' kolay yolunu bulur.

Eğitim instabilitesi

G ve D arasındaki dengeyi tutmak zor. Biri çok güçlü olursa diğeri öğrenemez. Hyperparameter ayarı bir sanat — Spectral normalization, gradient penalty gibi düzelticiler şart.

Değerlendirme zor

GAN'ı 'iyi mi?' diye ölçmek zor. FID (Fréchet Inception Distance), IS (Inception Score) standart metrikler ama mükemmel değil. Genelde insan değerlendirmesi de gerek.