فصل پانزدهم: شبکههای متخاصم مولد (GAN)
مقدمه
شبکههای متخاصم مولد (GANs) یکی از پیشرفتهترین مدلهای یادگیری عمیق برای تولید دادههای جدید هستند. این مدلها در غیاب برچسبها، ساختار یک مجموعهداده را یاد میگیرند و نمونههایی تولید میکنند که از دادههای واقعی قابل تشخیص نیستند. GANها در حوزههایی مانند تولید تصاویر، صدا، متن، و مدلهای سهبعدی کاربرد دارند.
1. مکانیسم کلی GAN
یک GAN شامل دو شبکه عصبی است:
مولد (Generator): یک بردار نویز تصادفی را به نمونه داده تبدیل میکند.
متمایزکننده (Discriminator): بین دادههای واقعی و دادههای تولید شده تمایز قائل میشود.
فرآیند آموزش به صورت یک بازی Minimax تعریف میشود:
مولد سعی میکند دادههایی تولید کند که برای متمایزکننده قابل تشخیص نباشند.
متمایزکننده تلاش میکند بین دادههای واقعی و تولید شده تمایز قائل شود.
تابع زیان کلاسیک به شکل زیر تعریف میشود:
2. چالشهای آموزش GAN
آموزش GANها با مشکلات زیر مواجه است:
ناپدید شدن گرادیانها: اگر بسیار قوی باشد، گرادیانهای بازگشتی به ممکن است صفر شوند.
فروپاشی حالت (Mode Collapse): مولد ممکن است فقط یک یا چند حالت محدود از توزیع داده را تولید کند.
عدم تعادل: اگر یکی از شبکهها (مولد یا متمایزکننده) از دیگری قویتر باشد، تعادل آموزش از بین میرود.
3. بهبود با فاصله Wasserstein
برای رفع مشکل ناپدید شدن گرادیان، از فاصله Wasserstein بین دو توزیع استفاده میشود:
که در آن نشاندهنده تابع لیپشیتز با ضریب است. این فاصله حتی در صورت نداشتن همپوشانی بین توزیعها، سیگنال آموزشی پایدارتری فراهم میکند.
4. معماریهای پیشرفته GAN
4.1. DCGAN (Deep Convolutional GAN)
استفاده از لایههای کانولوشن و Up-sampling در مولد.
استفاده از Batch Normalization.
توابع فعالسازی ReLU در مولد و LeakyReLU در متمایزکننده.
4.2. Progressive GAN
آموزش از تصاویر با وضوح پایین (مثلاً ) آغاز میشود.
در طول زمان، لایههای جدید اضافه شده و وضوح تصویر افزایش مییابد.
4.3. StyleGAN
معرفی بردار سبک (style vector) و استفاده از نرمالسازی تطبیقی (AdaIN).
کنترل ویژگیهای تصویری در مقیاسهای مختلف (درشت، متوسط، ریز).
5. تولید مشروط (Conditional Generation)
در برخی کاربردها، نیاز به کنترل ویژگیهای خاص در دادههای تولید شده وجود دارد.
5.1. cGAN (Conditional GAN)
استفاده از بردار ویژگی بهعنوان ورودی اضافی برای هر دو شبکه و .
تابع زیان:
5.2. ACGAN (Auxiliary Classifier GAN)
متمایزکننده علاوه بر تشخیص واقعی/جعلی بودن، برچسب کلاس را نیز پیشبینی میکند.
زیان کلی ترکیبی از زیان خصمانه و زیان طبقهبندی است.
5.3. InfoGAN
بهصورت خودکار ویژگیهای قابل تفسیر را در متغیرهای پنهان استخراج میکند.
اطلاعات متقابل بین کد پنهان و خروجی بیشینه میشود.
6. کاربرد در ترجمه تصویر
6.1. Pix2Pix
مناسب برای ترجمه تصویر با جفت داده همراستا (مثلاً نقشه → عکس ماهوارهای).
ترکیب ضرر محتوا (L1) و ضرر خصمانه برای آموزش.
6.2. CycleGAN
بدون نیاز به جفت داده.
دو مولد و دو متمایزکننده دارد.
افزودن ضرر تناوبی:
7. جمعبندی
شبکههای متخاصم مولد (GANs) ابزاری قدرتمند برای تولید داده هستند. با وجود چالشهای ذاتی در آموزش، روشهایی مانند استفاده از فاصله Wasserstein، رشد پیشرونده، و معماریهایی مانند StyleGAN به پیشرفت قابل توجهی منجر شدهاند. این مدلها در کاربردهایی مانند تولید تصویر، ویرایش تصویر، ترجمه دامنهها، و مدلسازی دادههای پیچیده استفاده میشوند و همچنان در حال توسعه هستند.