GAN ها تعدادی حالت خرابی رایج دارند. همه این مشکلات رایج حوزه های تحقیقات فعال هستند. در حالی که هیچ یک از این مشکلات به طور کامل حل نشده است، ما به مواردی اشاره می کنیم که افراد امتحان کرده اند.
ناپدید شدن گرادیان ها
تحقیقات نشان داده است که اگر تشخیص دهنده شما خیلی خوب باشد، آموزش ژنراتور ممکن است به دلیل ناپدید شدن شیب ها با شکست مواجه شود. در واقع، یک تمایزکننده بهینه اطلاعات کافی برای پیشرفت تولیدکننده ارائه نمی کند.
تلاش برای اصلاح
- از دست دادن Wasserstein: اتلاف Wasserstein برای جلوگیری از ناپدید شدن گرادیان ها طراحی شده است، حتی زمانی که تمایز دهنده را به بهینه آموزش می دهید.
- حداقل تلفات اصلاح شده : مقاله اصلی GAN اصلاحی برای حداقل تلفات برای مقابله با شیب های در حال ناپدید شدن پیشنهاد کرد.
حالت جمع کردن
معمولاً می خواهید GAN شما خروجی های متنوعی تولید کند. برای مثال، برای هر ورودی تصادفی به مولد چهره خود، یک چهره متفاوت می خواهید.
با این حال، اگر یک ژنراتور خروجی قابل قبولی تولید کند، ژنراتور ممکن است یاد بگیرد که فقط آن خروجی را تولید کند. در واقع، مولد همیشه در تلاش است تا خروجیای را بیابد که برای تمایزکننده، محتملترین به نظر میرسد.
اگر ژنراتور بارها و بارها شروع به تولید همان خروجی (یا مجموعه کوچکی از خروجی ها) کند، بهترین استراتژی تمایزکننده این است که یاد بگیرد همیشه آن خروجی را رد کند. اما اگر نسل بعدی تفکیک کننده در حداقل محلی گیر کند و بهترین استراتژی را پیدا نکند، برای تکرار مولد بعدی یافتن معقول ترین خروجی برای تمایز کننده فعلی بسیار آسان است.
هر تکرار از مولد برای یک متمایز کننده خاص بیش از حد بهینه می شود و متمایز کننده هرگز موفق نمی شود راه خود را از دام بیاموزد. در نتیجه ژنراتورها از طریق مجموعه کوچکی از انواع خروجی می چرخند. این شکل از خرابی GAN، فروپاشی حالت نامیده می شود.
تلاش برای اصلاح
رویکردهای زیر سعی میکنند با جلوگیری از بهینهسازی آن برای یک تمایزکننده ثابت، مولد را مجبور به گسترش دامنه خود کنند:
- ضرر Wasserstein : اتلاف Wasserstein با این امکان که به شما امکان میدهد تمایزگر را بدون نگرانی در مورد ناپدید شدن گرادیانها، بهینهسازی کنید، فروپاشی حالت را کاهش میدهد. اگر تفکیک کننده در حداقل های محلی گیر نکند، یاد می گیرد که خروجی هایی را که ژنراتور روی آنها تثبیت می کند رد کند. بنابراین ژنراتور باید چیز جدیدی را امتحان کند.
- GANهای Unrolled : GANهای Unrolled از یک تابع تلفات مولد استفاده میکنند که نه تنها طبقهبندیهای تشخیصدهنده فعلی، بلکه خروجیهای نسخههای تشخیصدهنده آینده را نیز در بر میگیرد. بنابراین مولد نمی تواند برای یک متمایز کننده بیش از حد بهینه سازی کند.
عدم همگرایی
همانطور که در ماژول آموزش مورد بحث قرار گرفت، GAN ها غالباً با هم همگرا نمی شوند.
تلاش برای اصلاح
محققان سعی کرده اند از اشکال مختلف منظم سازی برای بهبود همگرایی GAN استفاده کنند، از جمله:
- افزودن نویز به ورودیهای متمایزکننده : برای مثال به روشهای اصولی برای آموزش شبکههای متخاصم مولد مراجعه کنید.
- جریمه کردن وزنهای متمایزکننده : برای مثال به آموزش پایدارسازی شبکههای متخاصم مولد از طریق منظمسازی نگاه کنید.