فصل پانزدهم: شبکه‌های متخاصم مولد (GAN)

black-swan-theory

مقدمه

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

 

1. مکانیسم کلی GAN

یک GAN شامل دو شبکه عصبی است:

  1. مولد (Generator): یک بردار نویز تصادفی zz را به نمونه داده xx^* تبدیل می‌کند.

  2. متمایزکننده (Discriminator): بین داده‌های واقعی xx و داده‌های تولید شده xx^* تمایز قائل می‌شود.

فرآیند آموزش به صورت یک بازی Minimax تعریف می‌شود:

  • مولد سعی می‌کند داده‌هایی تولید کند که برای متمایزکننده قابل تشخیص نباشند.

  • متمایزکننده تلاش می‌کند بین داده‌های واقعی و تولید شده تمایز قائل شود.

تابع زیان کلاسیک به شکل زیر تعریف می‌شود:

minGmaxD  ExPdata(x)[logD(x)]+EzPz(z)[log(1D(G(z)))]\min_G \max_D \; \mathbb{E}_{x \sim P_{\text{data}}(x)} \left[ \log D(x) \right] + \mathbb{E}_{z \sim P_z(z)} \left[ \log(1 – D(G(z))) \right]

 

2. چالش‌های آموزش GAN

آموزش GANها با مشکلات زیر مواجه است:

  1. ناپدید شدن گرادیان‌ها: اگر DD بسیار قوی باشد، گرادیان‌های بازگشتی به GG ممکن است صفر شوند.

  2. فروپاشی حالت (Mode Collapse): مولد ممکن است فقط یک یا چند حالت محدود از توزیع داده را تولید کند.

  3. عدم تعادل: اگر یکی از شبکه‌ها (مولد یا متمایزکننده) از دیگری قوی‌تر باشد، تعادل آموزش از بین می‌رود.

 

3. بهبود با فاصله Wasserstein

برای رفع مشکل ناپدید شدن گرادیان، از فاصله Wasserstein بین دو توزیع استفاده می‌شود:

W(Pr,Pg)=supfL1ExPr[f(x)]ExPg[f(x)]W(P_r, P_g) = \sup_{\| f \|_L \leq 1} \mathbb{E}_{x \sim P_r} [f(x)] – \mathbb{E}_{x \sim P_g} [f(x)]

که در آن fL1\| f \|_L \leq 1 نشان‌دهنده تابع لیپشیتز با ضریب 1\leq 1 است. این فاصله حتی در صورت نداشتن همپوشانی بین توزیع‌ها، سیگنال آموزشی پایدارتری فراهم می‌کند.

 

4. معماری‌های پیشرفته GAN

4.1. DCGAN (Deep Convolutional GAN)

  • استفاده از لایه‌های کانولوشن و Up-sampling در مولد.

  • استفاده از Batch Normalization.

  • توابع فعال‌سازی ReLU در مولد و LeakyReLU در متمایزکننده.

4.2. Progressive GAN

  • آموزش از تصاویر با وضوح پایین (مثلاً 4×44 \times 4) آغاز می‌شود.

  • در طول زمان، لایه‌های جدید اضافه شده و وضوح تصویر افزایش می‌یابد.

4.3. StyleGAN

  • معرفی بردار سبک (style vector) و استفاده از نرمال‌سازی تطبیقی (AdaIN).

  • کنترل ویژگی‌های تصویری در مقیاس‌های مختلف (درشت، متوسط، ریز).

 

5. تولید مشروط (Conditional Generation)

در برخی کاربردها، نیاز به کنترل ویژگی‌های خاص در داده‌های تولید شده وجود دارد.

5.1. cGAN (Conditional GAN)

  • استفاده از بردار ویژگی cc به‌عنوان ورودی اضافی برای هر دو شبکه GG و DD.

  • تابع زیان:

minGmaxD  ExP(xc)[logD(xc)]+EzP(z)[log(1D(G(zc)c))]\min_G \max_D \; \mathbb{E}_{x \sim P(x|c)} [\log D(x|c)] + \mathbb{E}_{z \sim P(z)} [\log(1 – D(G(z|c)|c))]

5.2. ACGAN (Auxiliary Classifier GAN)

  • متمایزکننده علاوه بر تشخیص واقعی/جعلی بودن، برچسب کلاس را نیز پیش‌بینی می‌کند.

  • زیان کلی ترکیبی از زیان خصمانه و زیان طبقه‌بندی است.

5.3. InfoGAN

  • به‌صورت خودکار ویژگی‌های قابل تفسیر را در متغیرهای پنهان zz استخراج می‌کند.

  • اطلاعات متقابل I(c;G(z,c))I(c;G(z,c)) بین کد پنهان cc و خروجی GG بیشینه می‌شود.

 

6. کاربرد در ترجمه تصویر

6.1. Pix2Pix

  • مناسب برای ترجمه تصویر با جفت داده هم‌راستا (مثلاً نقشه → عکس ماهواره‌ای).

  • ترکیب ضرر محتوا (L1) و ضرر خصمانه برای آموزش.

6.2. CycleGAN

  • بدون نیاز به جفت داده.

  • دو مولد و دو متمایزکننده دارد.

  • افزودن ضرر تناوبی:

Lcycle(G,F)=ExX[F(G(x))x1]+EyY[G(F(y))y1]\mathcal{L}_{\text{cycle}}(G, F) = \mathbb{E}_{x \sim X} \left[ \| F(G(x)) – x \|_1 \right] + \mathbb{E}_{y \sim Y} \left[ \| G(F(y)) – y \|_1 \right]

 

7. جمع‌بندی

شبکه‌های متخاصم مولد (GANs) ابزاری قدرتمند برای تولید داده هستند. با وجود چالش‌های ذاتی در آموزش، روش‌هایی مانند استفاده از فاصله Wasserstein، رشد پیشرونده، و معماری‌هایی مانند StyleGAN به پیشرفت قابل توجهی منجر شده‌اند. این مدل‌ها در کاربردهایی مانند تولید تصویر، ویرایش تصویر، ترجمه دامنه‌ها، و مدل‌سازی داده‌های پیچیده استفاده می‌شوند و همچنان در حال توسعه هستند.