GAN'ların birkaç yaygın hata modu vardır. Bu yaygın sorunların tümü aktif olarak araştırılan konulardır. Bu sorunların hiçbiri tamamen çözülmemiş olsa da kullanıcıların denediği bazı yöntemlerden bahsedeceğiz.
Kaybolan gradyanlar
Araştırmalar, ayırıcınız çok iyiyse gradyanların kaybolması nedeniyle jeneratör eğitiminin başarısız olabileceğini gösteriyor. Özetle, optimal ayırt edici, oluşturucunun ilerleme kaydetmesi için yeterli bilgi sağlamaz.
Telafi girişimleri
- Wasserstein kaybı: Wasserstein kaybı, ayırıcıyı optimuma göre eğittiğinizde bile gradyanların kaybolmasını önlemek için tasarlanmıştır.
- Değiştirilmiş minimax kaybı: Orijinal GAN makalesinde, kaybolan gradyanlarla başa çıkmak için minimax kaybında bir değişiklik önerilmiştir.
Mod daraltma
Genellikle GAN'ınızın çok çeşitli çıktılar üretmesini istersiniz. Örneğin, yüz oluşturucunuza her rastgele giriş için farklı bir yüz göstermek istiyorsunuz.
Ancak bir üretken özellikle inandırıcı bir çıkış oluşturursa yalnızca bu çıkışı üretmeyi öğrenebilir. Aslında, üreten her zaman ayırıcı için en makul görünen çıkışı bulmaya çalışır.
Oluşturucu aynı çıktıyı (veya küçük bir çıktı grubunu) tekrar tekrar üretmeye başlarsa ayırıcının en iyi stratejisi, bu çıktıyı her zaman reddetmeyi öğrenmektir. Ancak bir sonraki ayırt edici nesil yerel bir minimumda takılı kalır ve en iyi stratejiyi bulamazsa bir sonraki üreteç iterasyonunun mevcut ayırt edici için en makul çıkışı bulması çok kolaydır.
Oluşturucunun her iterasyonu belirli bir ayırıcı için aşırı optimizasyon yapar ve ayırıcı, tuzaktan nasıl çıkacağını asla öğrenemez. Sonuç olarak, jeneratörler küçük bir çıkış türü grubu arasında döner. GAN'ın bu tür bir hatasına mod çökmesi denir.
Telafi girişimleri
Aşağıdaki yaklaşımlar, tek bir sabit ayırıcı için optimizasyon yapmasını engelleyerek üreticiyi kapsamını genişletmeye zorlamaya çalışır:
- Wasserstein kaybı: Wasserstein kaybı, gradyanların kaybolması konusunda endişelenmenize gerek kalmadan ayırıcıyı optimum şekilde eğitmenize olanak tanıyarak mod çökmesini azaltır. Ayırt edici yerel minimumlara takılmazsa jeneratörün kararlılaştığı çıkışları reddetmeyi öğrenir. Bu nedenle, jeneratörün yeni bir şeyler denemesi gerekiyor.
- Unrolled GANs: Unrolled GANs, yalnızca mevcut ayırıcının sınıflandırmalarını değil, gelecekteki ayırıcı sürümlerinin çıktılarını da içeren bir üretken kayıp işlevi kullanır. Bu nedenle, jeneratör tek bir ayırt edici özellik için aşırı optimizasyon yapamaz.
Birleşme hatası
GAN'lar, eğitim modülünde tartışıldığı gibi sıklıkla yakınlaşmaz.
Telafi girişimleri
Araştırmacılar, GAN yakınsamasını iyileştirmek için aşağıdakiler gibi çeşitli normalleştirme biçimlerini kullanmaya çalıştı:
- Ayırt edici girişlere gürültü ekleme: Örneğin, Toward Principled Methods for Training Generative Adversarial Networks (Üretken Düşman Ağları'nı Eğitmek İçin İlke Tabanlı Yöntemler) başlıklı makaleyi inceleyin.
- Ayırt edici ağırlıkları cezalandırma: Örneğin, Düzenleme ile Üretken Çekişmeli Ağların Eğitimini Stabilize Etme başlıklı makaleyi inceleyin.