انواع شبکه‌های GAN


در این مقاله به بررسی انواع مختلف شبکه‌های Generative Adversarial Networks (GAN) می‌پردازیم که می‌توانند داده‌های جدید تولید کنند و کاربردهای آنها را بررسی می‌کنیم.

یک شبکه GAN یا generative adversarial network، الگوریتم یادگیری ماشینی است که می‌تواند دیتای جدید آموزشی تولید کند. به طور خلاصه، شبکه‌های GAN از دو مدل جزئی درونی به نام مولد (generator) و تفکیک کننده (discriminator) تشکیل شده‌اند. شبکه generator، نمونه داده‌های فیک تولید می‌کند و برای این منظور از نویز تصادفی استفاده می‌کند. از سوی دیگر discriminator بین نمونه‌ داده‌های فیک و واقعی، تفکیک ایجاد می‌کند. پس از آنکه کلاس داده‌های فیک و واقعی مشخص شد، generator از شبکه discriminator فیدبک دریافت می‌کند. و رفته رفته می‌تواند نمونه داده‌های مصنوعی تولید کند که بسیار شبیه به داده‌های واقعی هستند و تفکیک آنها دشوار است.

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

  • Vanilla GAN
  • Conditional GAN
  • Deep Convolutional GAN (DCGAN)
  • CycleGAN
  • Generative Adversarial Text to Image Synthesis
  • Style GAN

 

1-شبکه Vanilla GAN

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

Vanilla GAN

2-Conditional GAN (CGAN)

در این نوع GAN، دو بخش generator و discriminator هر دو اطلاعات اضافی در اختیار دارند که برچسب هر داده است. این اطلاعات نشان می‌دهد متعلق به کدام کلاس است. همانطور که نام این شبکه نشان می‌دهد، اطلاعات اضافی به discriminator کمک می‌کند که احتمال شرطی را پیدا کند.

Conditional GAN

3-Deep Convolutional GAN (DCGAN)

این اولین شبکه GAN است که generator آن از شبکه کانولوشنی عمیق استفاده می‌کند. از این رو این شبکه می‌تواند تصاویر با کیفیت و رزولوشن بالا تولید کند. در تمام لایه‌های شبکه generator از تابع فعالسازی ReLU استفاده شده است به جز لایه‌ی آخر که در آن از Tanh استفاده شده است. در تمام لایه‌های discriminator از تابع فعالسازی Leaky-ReLU استفاده شده. همچنین بهینه ساز Adam در این مدل شبکه GAN استفاده می‌شود.

Deep Convolutional GAN

شکل فوق، معماری generator شبکه GAN را نشان می‌دهد.

4-CycleGAN

این شبکه GAN برای ترجمه تصویر به تصویر (Image-to-Image translation) ساخته شده است و به این معنی است که یک تصویر به تصویر دیگر نگاشت می‌شود. برای مثال اگر تصاویر زمستان و تابستان را به مدل CycleGAN بدهیم یک تابع نگاشت خواهیم داشت که تصاویر تابستان را به زمستان و برعکس تبدیل می‌کند.  برای این منظور با توجه به تابع نگاشت، ویژگی‌هایی را اضافه یا حذف می‌کند و به این ترتیب خروجی پیش بینی شده و خروجی واقعی، حداقل میزان loss را خواهند داشت.

CycleGAN

5-Generative Adversarial Text to Image Synthesis

در این نوع شبکه GAN می‌توان تصویری را از دیتاست پیدا کرد که نزدیک‌ترین تصویر به توصیف متنی مورد نظر است و بر اساس آن تصاویر مشابه تولید کرد. مانند تصویر زیر:

Generative Adversarial Text to image Synthesis

 

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

Text to image GAN architecture

 

همانطور که مشاهده می‌کنید شبکه generator سعی می‌کند تصاویر را بر اساس توصیف تولید کند و تفکیک آنها توسط discriminator و بر اساس ویژگی‌های ذکر شده در توصیف متنی صورت می‌گیرد.

6-Style GAN

سایر شبکه‌های GAN روی بهبود discriminator تمرکز می‌کنند. در این شبکه روی بهبود شبکه generator تمرکز می‌شود. این شبکه GAN، تصاویر را با در اختیار داشتن تصویر رفرنس، تولید می‌کند.

StyleGAN

همانطور که در شکل زیر مشخص است، StyleGAN از تابع نگاشتی تشکیل شده است که ورودی را به فضای نهان میانی نگاشت می‌کند. سپس این فضای نهان با استفاده از AdalN پس از هر لایه پردازش می‌شود و 18 لایه‌ی کانولوشنی دارد.

StyleGAN_architecture

کاربردهای شبکه‌های GAN

1-در وهله اول، شبکه‌های GAN را می‌توان به عنوان تکنیک‌های data augmentation استفاده کرد که در آنها generator، تصاویر جدید را با استفاده از دیتای آموزش تولید می‌کند و با اعمال تغییراتی روی آنها، تصاویر متعدد و جدید تولید می‌کند.

2-شبکه‌های GAN، تکنیک‌های کلاسبندی را بهبود می‌بخشند به این صورت که discriminator را روی میزان زیادی داده آموزش می‌دهند که این داده‌ها واقعی یا فیک هستند.

3-شبکه‌های GAN همچنین برای بهبود رزولوشن هر نوع تصویر ورودی استفاده می‌شوند.

4-مانند فیلترهایی که در اسنپ چت استفاده می‌شود، می‌توان یک فیلتر را روی تصویر اعمال کرد و دید که اگر فیلتر تابستان، پاییز، زمستان یا بهار روی تصویر خاصی اعمال شود چطور خواهد بود که در این موارد از DeepConvNet ها استفاده می‌شود.

5-همچنین از GANها برای تبدیل متن به تصاویر استفاده می‌شود.

 


دیدگاه ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

code