آموزش GAN

از آنجایی که یک GAN شامل دو شبکه آموزش دیده جداگانه است، الگوریتم آموزشی آن باید دو عارضه را برطرف کند:

  • GAN ها باید دو نوع آموزش متفاوت (تولید کننده و تمایزکننده) را انجام دهند.
  • شناسایی همگرایی GAN دشوار است.

آموزش متناوب

مولد و تمایز فرآیندهای آموزشی متفاوتی دارند. بنابراین چگونه GAN را به طور کلی آموزش دهیم؟

آموزش GAN در دوره های متناوب ادامه می یابد:

  1. تمایزگر برای یک یا چند دوره تمرین می کند.
  2. ژنراتور برای یک یا چند دوره تمرین می کند.
  3. مراحل 1 و 2 را برای ادامه آموزش شبکه های مولد و جداکننده تکرار کنید.

ما ژنراتور را در مرحله آموزش تشخیصگر ثابت نگه می داریم. از آنجایی که آموزش تفکیک کننده سعی می کند بفهمد چگونه داده های واقعی را از جعلی تشخیص دهد، باید یاد بگیرد که چگونه عیوب ژنراتور را تشخیص دهد. این مشکل برای یک ژنراتور کاملاً آموزش دیده با یک ژنراتور آموزش ندیده که خروجی تصادفی تولید می کند متفاوت است.

به طور مشابه، ما در مرحله آموزش ژنراتور، تشخیص دهنده را ثابت نگه می داریم. در غیر این صورت ژنراتور در صدد ضربه زدن به یک هدف متحرک خواهد بود و ممکن است هرگز همگرا نشود.

این جلو و عقب است که به GAN ها اجازه می دهد تا با مشکلات مولد غیر قابل حل مقابله کنند. ما با شروع با یک مسئله طبقه بندی بسیار ساده تر، به مشکل مولد دشوار دست پیدا می کنیم. برعکس، اگر نتوانید یک طبقه‌بندی کننده را آموزش دهید تا تفاوت بین داده‌های واقعی و تولید شده را حتی برای خروجی مولد تصادفی اولیه تشخیص دهد، نمی‌توانید آموزش GAN را شروع کنید.

همگرایی

همانطور که ژنراتور با آموزش بهبود می یابد، عملکرد تشخیص دهنده بدتر می شود زیرا تشخیص دهنده نمی تواند به راحتی تفاوت بین واقعی و جعلی را تشخیص دهد. اگر ژنراتور به طور کامل موفق شود، پس تشخیص دهنده دارای دقت 50٪ است. در واقع، تمایزکننده یک سکه را می زند تا پیش بینی خود را انجام دهد.

این پیشرفت یک مشکل برای همگرایی GAN به عنوان یک کل ایجاد می کند: بازخورد تفکیک کننده در طول زمان معنادارتر می شود. اگر GAN از نقطه‌ای که متمایزکننده بازخورد کاملاً تصادفی می‌دهد به تمرین ادامه دهد، مولد شروع به تمرین بر روی بازخورد ناخواسته می‌کند و کیفیت خودش ممکن است سقوط کند.

برای یک GAN، همگرایی اغلب یک حالت زودگذر است و نه پایدار.