لماذا تفشل شبكات GAN
- انهيار النمط: يُنتج المولّد الصورة نفسها بغضّ النظر عن الضوضاء
- عدم استقرار التدريب: تتذبذب خسائر G وD دون تقارب
- تلاشي التدرجات: يصبح المميِّز قوياً جداً
الإصلاح 1: التطبيع الطيفي
from torch.nn.utils import spectral_norm
self.conv = spectral_norm(nn.Conv2d(in_ch, out_ch, 4, 2, 1))
الإصلاح 2: تنعيم التسميات للمميِّز
real_labels = torch.ones(B) * 0.9 # not exactly 1.0
fake_labels = torch.zeros(B) + 0.1 # not exactly 0.0
الإصلاح 3: عقوبة التدرج (WGAN-GP)
تعاقب معيار تدرج المميِّز — وهي أكثر متغيرات GAN استقراراً للتطبيقات الحقيقية.
الإصلاح 4: التحديث ثنائي المقياس الزمني (TTUR)
استخدم معدلات تعلم مختلفة: G=0.0001، D=0.0004.