gan generative-ai derin-ogrenme gorsel-uretimi neural-network makine-ogrenmesi

GAN Nedir? Üretici Çekişmeli Ağlar Rehberi

Orta
person Yapay Zeka Uzmanı
list_altİçindekilerexpand_more
  1. 01GAN Nedir? Temel Mantık
  2. 02GAN Nasıl Çalışır? Adım Adım Eğitim
  3. 03Popüler GAN Türleri
  4. 04GAN’ların Güçlü ve Zayıf Yönleri
  5. 05GAN’ların Uygulama Alanları
  6. 06GAN vs Diffusion Modeli vs VAE
  7. 07Açık Kaynak Araçlar ve Başlangıç Noktaları
  8. 08GAN ve Etik: İki Tarafı Keskin Bir Araç
  9. 09GAN’dan Bugüne

2014 yılında Montreal Üniversitesi’nde doktora öğrencisi olan Ian Goodfellow, arkadaşlarıyla bir tartışmanın ardından eve döndü ve geceyi kodlayarak geçirdi. Sabaha karşı tamamladığı mimari ilk testte çalıştı. Goodfellow’un o gece yazdığı “Generative Adversarial Networks” makalesi 2014’teki NeurIPS konferansında yayınlandı ve araştırmacılar arasında hızla yayıldı.

Bugün kullanılan birçok görsel üretim aracı GAN’ın temel fikrinden türedi ya da onunla doğrudan rekabet halinde gelişti. Bu yüzden GAN’ı anlamak, bu alanın nereye gittiğini kavramak için iyi bir başlangıçtır.

İki rakip sinir ağının dijital bir arenada karşı karşıya geldiğini gösteren konsept görseli

GAN Nedir? Temel Mantık

GAN, Generative Adversarial Network kısaltmasıdır. Türkçeye “Üretici Çekişmeli Ağ” olarak çevrilebilir; ancak terim akademik metinlerde ve pratikte genellikle kısaltmasıyla geçer.

Mimarinin özünde iki rakip sinir ağı bulunur:

  • Generator (G): Rastgele bir gürültü vektöründen gerçekçi görünen veriler üretir. Bir ressam gibi düşünülebilir; yoktan görüntü yaratmak onun işidir.
  • Discriminator (D): Generator’ın sahte örnekleri ile gerçek veri setinden gelen örnekleri karşılaştırır ve hangisinin gerçek olduğunu bulmaya çalışır. Bir sanat eksperi gibi çalışır; sahteyi gerçekten ayırt etmek için sürekli keskinleşir.

Bu iki ağ birbirine karşı eğitilir. Generator, Discriminator’ı kandırmak için giderek daha iyi örnekler üretmeye çalışırken Discriminator da tespit kapasitesini artırmak için giderek daha seçici hale gelir. Oyun teorisindeki “sıfır toplamlı oyun” kavramıyla örtüşen bu rekabet, eğitim süreci boyunca her ikisini de güçlendirir.

Matematiksel olarak eğitim hedefi şu minimax denklemle ifade edilir:

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

Burada x gerçek veri, z gürültü vektörü, G(z) ise Generator’ın ürettiği sahte örnektir. Discriminator bu ifadeyi maksimize etmek ister; Generator ise minimize etmek.

GAN Nasıl Çalışır? Adım Adım Eğitim

GAN eğitimi birbirini takip eden iki aşamadan oluşur ve bu aşamalar dönüşümlü olarak tekrarlanır.

Birinci aşama: Discriminator güncellenir. Generator önce rastgele bir z vektöründen sahte örnekler üretir. Bu sahte örnekler gerçek veri setinden alınan örneklerle karıştırılarak Discriminator’a sunulur. Discriminator her örneğin gerçek mi sahte mi olduğunu tahmin eder. Tahmin hataları Binary Cross-Entropy kaybıyla hesaplanır ve yalnızca Discriminator’ın ağırlıkları güncellenir. Bu aşamada Generator dondurulmuştur.

İkinci aşama: Generator güncellenir. Şimdi Generator’ın sırası gelir. Yeni sahte örnekler üretilir ve güncellenmiş Discriminator’dan geçirilir. Amaç, Discriminator’ı bu örneklerin gerçek olduğuna ikna etmektir. Discriminator’ın hatası Generator’a geri yayılır ve yalnızca Generator’ın ağırlıkları güncellenir. Bu aşamada Discriminator dondurulur.

Bu iki aşama yüzlerce, hatta binlerce epoch boyunca tekrarlanır. Yeterince eğitilen bir GAN’da Generator, Discriminator’ın gerçek ile sahteyi ayırt etmekte ciddi güçlük çektiği noktaya ulaşır. Oyun teorisinde buna Nash dengesi denir: her iki taraf da rakibinin stratejisini hesaba katarak en iyi hamlesini yapıyorsa sistem bu noktaya ulaşmış demektir.

Ancak pratikte bu denge kolay elde edilemez. Eğitimde karşılaşılan iki kritik sorun vardır:

Mode collapse: Generator, Discriminator’ı kandıran birkaç örnek tipini bulunca tüm kapasitesini o örnekleri tekrarlayarak harcar. Çeşitlilik düşer ve ağ o noktada takılır.

Vanishing gradient: Discriminator çok erken başarılı olursa Generator’a dönen gradyan sıfıra yaklaşır ve Generator öğrenmeyi durdurur. Wasserstein kaybı (WGAN) bu sorunu hafifletmek için 2017’de önerilmiştir; gradyanların daha kararlı akmasını sağlar.

Popüler GAN Türleri

Orijinal GAN yayınının ardından geçen on yılda pek çok türev mimari ortaya çıktı ve her biri belirli bir problemi çözmek üzere geliştirildi.

DCGAN (Deep Convolutional GAN): 2015’te Radford ve ekibi, tam bağlantılı katmanlar yerine evrişimli katmanlar kullanan bir GAN mimarisi önerdi. Görüntü kalitesi belirgin biçimde arttı ve bu çalışma sonraki araştırmalar için fiili bir başlangıç noktası haline geldi.

Conditional GAN (cGAN): Standart GAN’da Generator yalnızca gürültü vektöründen çalışır; ne üretileceği belirsizdir. cGAN’da hem Generator hem Discriminator’a bir etiket (örneğin sınıf bilgisi veya metin tanımlayıcısı) ek giriş olarak verilir. “Kedi üret” ya da “kırmızı elbiseli figür üret” gibi koşullu komutlarla yönlendirilebilir.

StyleGAN / StyleGAN2 / StyleGAN3: NVIDIA’nın bu mimarisi, insan yüzü üretimini başka bir seviyeye taşıdı. thispersondoesnotexist.com adresindeki gerçekçi yüzler StyleGAN’ın çıktısıdır. Mimarinin güçlü yanı, saç rengi, yaş ve ışık koşulları gibi stil parametrelerini birbirinden bağımsız biçimde kontrol edebilmesidir. StyleGAN2, frekans artefaktlarını düzelterek kaliteyi daha da artırdı.

CycleGAN: Eşleştirilmemiş görüntüden görüntüye dönüşüm için geliştirildi. Yaz manzaralarından kış manzaralarına, atlardan zebraya, fotoğraftan Van Gogh tarzına dönüşüm bu mimariyle mümkündür. Eğitim için birebir örtüşen görüntü çiftlerine ihtiyaç duymaz; bu özelliği onu gerçek dünya verilerinde kullanışlı kılar.

Pix2Pix: Eşleştirilmiş görüntüden görüntüye çeviri için kullanılır. Mimari çizim → gerçekçi yapı fotoğrafı, uydu görüntüsü → harita, gündüz → gece dönüşümleri gibi görevlerde başarılıdır.

BigGAN: DeepMind’ın geliştirdiği bu model, çok büyük batch boyutları ve sınıf koşullandırmasıyla yüksek çözünürlüklü ImageNet örnekleri üretmeyi başardı. Kalite ve çeşitlilik dengesi için “truncation trick” tekniğini kullandı; bu teknik çeşitlilikten ödün vererek tek tek örneklerin gerçekçiliğini artırır.

GAN’ların Güçlü ve Zayıf Yönleri

GAN’ların hangi durumda doğru araç olduğunu anlamak için her iki tarafı açık görmek gerekir.

Güçlü yönler:

  • Yüksek çözünürlüklü ve keskin görüntüler üretir; diffusion modellerine kıyasla bulanıklık sorunu daha azdır
  • Hızlı çıkarım: eğitim tamamlandıktan sonra Generator tek bir ileri besleme adımıyla örnek üretir
  • Geniş uygulama yelpazenine uyarlanabilen esnek bir çerçeve sunar
  • Eşleştirilmemiş veriyle çalışabilen türevleri (CycleGAN) veri toplama maliyetini düşürür

Zayıf yönler:

  • Eğitim kararsızdır; hiperparametre seçimi kritik olup deneyim gerektirir
  • Mode collapse ve vanishing gradient sorunları hâlâ tam çözüme kavuşmamıştır
  • Loss değerleri üretim kalitesini her zaman doğru yansıtmaz; görsel inceleme zorunludur
  • Büyük veri setleri ve güçlü GPU gerektiren hesaplama maliyeti yüksektir
  • Metin yönlendirmesi diffusion modellerine kıyasla daha kısıtlıdır

GAN’ların Uygulama Alanları

Görsel sanat ve tasarım: Stil transferi, fotoğraf iyileştirme, düşük çözünürlüklü görüntüleri süper çözünürlüklü hale getirme (SRGAN), kıyafet denemeleri ve iç mekan tasarım önerileri bu kategoride öne çıkan kullanım alanlarıdır.

Veri artırma (data augmentation): Tıbbi görüntülemede nadir hastalık örnekleri için sentetik veri üretimi, otonom araç eğitiminde senaryo çoğaltma öne çıkan kullanım alanlarıdır. Gerçek veri yetersiz olduğunda GAN bu açığı kapatabilir. Bilgisayarlı görü sistemlerinin eğitiminde, özellikle nadir nesne kategorilerini temsil etmek için bu yöntem sıklıkla tercih edilir.

Deepfake üretimi ve tespiti: GAN mimarisi, başlangıçta sahte yüz videoları üretmek amacıyla kullanıldı. Aynı teknik bugün deepfake tespit modellerinin eğitiminde de yer almaktadır. Saldırı ve savunma taraflarının aynı araç ailesini kullanması bu alanı karmaşık bir etik ve teknik zemine oturtuyor.

Oyun geliştirme: Texture sentezi, prosedürel harita üretimi ve NPC animasyonu için GAN tabanlı yaklaşımlar oyun stüdyolarında araştırılıyor.

İlaç keşfi: Belirli kimyasal özelliklere sahip moleküler yapılar üretmek için GAN kullanımı, ilaç tasarımı süreçlerini hızlandırmaya yönelik akademik çalışmalarda yer alıyor. Generator aday moleküller üretirken Discriminator kimyasal geçerlilik ve biyolojik uyumluluk kriterlerini değerlendirir.

Model aktarımı ve sentetik veri: Büyük modellerden küçük modellere bilgi aktarırken (bkz. knowledge distillation) eğitim verisini zenginleştirmek için GAN ile üretilen sentetik örnekler kullanılabilir.

GAN vs Diffusion Modeli vs VAE

2022’den bu yana görsel üretim alanında diffusion modelleri öne geçti. VAE de dahil edildiğinde üç mimari şu şekilde karşılaştırılabilir:

ÖzellikGANDiffusionVAE
Görüntü kalitesiYüksek (keskin)Çok yüksekOrta (genellikle bulanık)
Eğitim stabilitesiDüşükYüksekYüksek
Çıkarım hızıÇok hızlıYavaş (çok adım)Çok hızlı
ÇeşitlilikMode collapse riskiYüksekYüksek
Metin kontrolüKısıtlıGüçlüKısıtlı
Bellek ayak iziOrtaBüyükKüçük

Diffusion modelleri metin yönlendirmesi ve genel kalite açısından GAN’ları geride bıraktı. Bununla birlikte GAN’ların tek geçişte sonuç vermesi, hız gerektiren production ortamlarında tercih sebebidir. Süper çözünürlük, gerçek zamanlı video işleme ve sınırlı hesaplama bütçesiyle çalışan sistemler için GAN tabanlı yöntemler güncelliğini koruyor.

Açık Kaynak Araçlar ve Başlangıç Noktaları

GAN modellerine en kolay erişim yolu Hugging Face Model Hub’dır. StyleGAN2 ve StyleGAN3’ün NVIDIA tarafından paylaşılan resmi PyTorch uygulamaları, CycleGAN ve Pix2Pix için hazır eğitim scriptleri mevcuttur. Replicate platformunda pek çok GAN türevi API olarak sunuluyor; yerel kurulum gerekmeden tarayıcıdan test etmek mümkün.

PyTorch ile temel bir GAN eğitmek isteyenler için resmi PyTorch dokümantasyonundaki “DCGAN Tutorial” iyi bir başlangıç noktasıdır. Temel eğitim döngüsü şu yapıdadır:

for epoch in range(num_epochs):
    for real_batch, _ in dataloader:
        # Discriminator adımı
        optimizer_d.zero_grad()
        real_output = discriminator(real_batch)
        fake_images = generator(noise)
        fake_output = discriminator(fake_images.detach())
        d_loss = criterion(real_output, real_labels) + criterion(fake_output, fake_labels)
        d_loss.backward()
        optimizer_d.step()

        # Generator adımı
        optimizer_g.zero_grad()
        fake_output = discriminator(fake_images)
        g_loss = criterion(fake_output, real_labels)
        g_loss.backward()
        optimizer_g.step()

Bu döngüde detach() çağrısının önemi büyüktür: Generator güncellenmeden önce sahte görüntüleri hesap grafiğinden kopararak Discriminator güncellemesi sırasında Generator’ın ağırlıklarına dokunulmamasını sağlar.

GAN ve Etik: İki Tarafı Keskin Bir Araç

GAN’ın en tartışmalı boyutu, aynı mimarinin hem üretme hem de tespit için kullanılabilmesidir. Deepfake videolar, sentetik kimlik fotoğrafları ve ses kopyalama GAN türevleriyle üretildi. Bu gelişmeler dezenformasyon riski ve kimlik hırsızlığı açısından ciddi endişelere yol açtı.

Öte yandan savunma cephesi de aynı araçları kullanıyor. Üretici ağın güçlü tarafını bilmek, tespit modellerini daha sağlam kılar. Pek çok deepfake tespit sistemi GAN ile üretilmiş sentetik veriyi eğitim setine dahil ederek karşı-örneklere dayanıklılığını artırıyor. Yüz sentezi araştırmaları aynı zamanda tıbbi tarama modellerinde veri gizliliğini korurken sentetik hasta verisine olanak tanıyor. GAN’ın etik değerlendirmesi bu ikilik göz önüne alınarak yapılmalıdır: araç değil, kullanım bağlamı belirleyicidir.

GAN’dan Bugüne

GAN, üretici modellerin pratikte çalışabileceğini kanıtladı. İki rakip ağı karşı karşıya getirme fikri sonraki on yılın araştırmalarında tekrar tekrar karşımıza çıktı; tekniğin pek çok türevi doğrudan ticari ürünlere dönüştü.

Diffusion modellerinin yükselişiyle görsel üretim alanında GAN’ların öncü dönemi büyük ölçüde sona erdi. Fakat medikal görüntüleme, gerçek zamanlı süper çözünürlük ve veri artırma gibi alanlarda GAN tabanlı sistemler production ortamlarında kullanılmaya devam ediyor.

GAN’dan sonra ne okusam diyorsanız: diffusion modeli GAN’ın görsel kalitesini nasıl geride bıraktı, ardından günümüz görsel üretim araçları bu iki mimariden ne aldı.

auto_stories İlgili Makaleler