یک شبکه مولد رقابتی (GAN) یک معماری یادگیری عمیق است. این شبکه دو شبکه عصبی را آموزش میدهد تا با یکدیگر رقابت کنند و دادههای جدید و واقعیتری از یک مجموعه داده آموزشی خاص تولید کنند. به عنوان مثال، میتوان تصاویر جدیدی از یک پایگاه داده تصاویر موجود یا موسیقی اورجینال از یک پایگاه داده آهنگها تولید کرد. به شبکههای GAN “رقابتی” گفته میشود زیرا دو شبکه متفاوت را آموزش میدهد و آنها را در برابر یکدیگر قرار میدهد. یک شبکه داده جدید تولید میکند، با دریافت یک نمونه داده ورودی و تغییر آن تا حد امکان. شبکه دیگر تلاش میکند پیشبینی کند که آیا داده تولیدشده به پایگاه داده اصلی تعلق دارد یا خیر. به عبارت دیگر، شبکه پیشبینیکننده تعیین میکند که داده تولید شده واقعی است یا جعلی. سیستم نسخههای جدیدتر و بهبود یافتهای از دادههای جعلی تولید میکند تا زمانی که شبکه پیشبینیکننده دیگر نتواند جعلی را از اصلی تشخیص دهد.
برخی از کاربردهای شبکههای مولد رقابتی چیست؟
معماری GAN کاربردهای متعددی در صنایع مختلف دارد. در ادامه به برخی از این مثالها اشاره میکنیم.
تولید تصاویر
شبکههای مولد رقابتی تصاویر واقعی را از طریق درخواستهای مبتنی بر متن یا با تغییر تصاویر موجود ایجاد میکنند. این تکنولوژی میتواند به ایجاد تجربیات بصری واقعی و فراگیر در بازیهای ویدیویی و سرگرمی دیجیتال کمک کند.
GAN همچنین میتواند تصاویر را ویرایش کند—مثلاً تبدیل یک تصویر با وضوح پایین به تصویر با وضوح بالا یا تبدیل یک تصویر سیاه و سفید به تصویر رنگی. همچنین قادر است چهرهها، شخصیتها و حیوانات واقعی برای انیمیشن و ویدیو تولید کند.
تولید دادههای آموزشی برای مدلهای دیگر
در یادگیری ماشین (ML)، افزایش دادهها (Data Augmentation) به طور مصنوعی مجموعه داده آموزشی را با ایجاد نسخههای تغییر یافته از یک مجموعه داده با استفاده از دادههای موجود افزایش میدهد.
شما میتوانید از مدلهای مولد برای افزایش دادهها استفاده کنید تا دادههای مصنوعی با تمام ویژگیهای دادههای دنیای واقعی ایجاد کنید. به عنوان مثال، میتواند دادههای تراکنشهای جعلی تولید کند که سپس از آنها برای آموزش یک سیستم شناسایی تقلب استفاده کنید. این دادهها میتوانند به سیستم آموزش دهند تا به دقت تراکنشهای مشکوک و واقعی را از هم تشخیص دهد.
تکمیل اطلاعات ناقص
گاهی اوقات ممکن است بخواهید مدل مولد به درستی اطلاعات ناقص موجود در یک مجموعه داده را حدس زده و تکمیل کند.
برای مثال، میتوانید GAN را برای تولید تصاویری از سطح زیرین زمین (زیرسطح) آموزش دهید، با درک همبستگی بین دادههای سطحی و ساختارهای زیرزمینی. با مطالعه تصاویر شناخته شده زیرسطح، این مدل میتواند تصاویر جدیدی با استفاده از نقشههای زمینشناسی برای کاربردهای انرژی مانند نقشهبرداری زمینگرمایی یا ذخیرهسازی و جذب کربن ایجاد کند.
تولید مدلهای سهبعدی از دادههای دوبعدی
GAN میتواند مدلهای سهبعدی را از تصاویر دوبعدی یا تصاویر اسکنشده تولید کند. برای مثال، در مراقبتهای بهداشتی، GAN با ترکیب اشعه ایکس و دیگر اسکنهای بدن، تصاویری واقعی از ارگانها برای برنامهریزی و شبیهسازی جراحی ایجاد میکند.
یک شبکه مولد رقابتی چگونه کار میکند؟
سیستم یک شبکه مولد رقابتی از دو شبکه عصبی عمیق تشکیل شده است—شبکه مولد (Generator) و شبکه تمایزدهنده (Discriminator). هر دو شبکه در یک بازی رقابتی آموزش میبینند، جایی که یکی سعی میکند دادههای جدید تولید کند و دیگری تلاش میکند پیشبینی کند که آیا خروجی داده تولید شده جعلی است یا واقعی.
از نظر فنی، عملکرد GAN به این صورت است: یک معادله ریاضی پیچیده اساس فرآیند محاسباتی کل را تشکیل میدهد، اما در اینجا یک توضیح ساده شده آورده شده است:
- شبکه عصبی مولد مجموعه دادههای آموزشی را تجزیه و تحلیل کرده و ویژگیهای دادهها را شناسایی میکند.
- شبکه عصبی تمایزدهنده نیز دادههای اولیه آموزشی را تجزیه و تحلیل کرده و ویژگیها را به طور مستقل از هم تشخیص میدهد.
- شبکه مولد برخی از ویژگیهای دادهها را با افزودن نویز (یا تغییرات تصادفی) به ویژگیهای خاص اصلاح میکند.
- شبکه مولد دادههای اصلاحشده را به شبکه تمایزدهنده میفرستد.
- شبکه تمایزدهنده احتمال اینکه خروجی تولید شده متعلق به مجموعه داده اصلی باشد را محاسبه میکند.
- شبکه تمایزدهنده به شبکه مولد برخی راهنماییها میدهد تا نویز و تصادفی بودن وکتور در چرخه بعدی کاهش یابد.
- شبکه مولد تلاش میکند احتمال اشتباه شبکه تمایزدهنده را به حداکثر برساند، اما شبکه تمایزدهنده تلاش میکند احتمال خطا را به حداقل برساند. در طول تکرارهای آموزش، هم شبکه مولد و هم شبکه تمایزدهنده تکامل مییابند و به طور مستمر با یکدیگر مواجه میشوند تا به یک حالت تعادل برسند. در حالت تعادل، شبکه تمایزدهنده دیگر قادر به شناسایی دادههای تولیدشده نیست. در این مرحله، فرآیند آموزش تمام میشود.
مثال آموزش GAN
بیایید توضیحات فوق را با یک مثال از مدل GAN در تبدیل تصویر به تصویر (Image-to-Image Translation) درک کنیم.
فرض کنید تصویر ورودی یک صورت انسان است که GAN تلاش دارد آن را تغییر دهد. به عنوان مثال، ویژگیها میتوانند شکل چشمها یا گوشها باشند. فرض کنید شبکه مولد (Generator) تصاویر واقعی را با افزودن عینک آفتابی به آنها تغییر میدهد. شبکه تمایزدهنده (Discriminator) مجموعهای از تصاویر را دریافت میکند، برخی از تصاویر واقعی افراد با عینک آفتابی و برخی دیگر تصاویر تولید شده که بهطور مصنوعی عینک آفتابی به آنها افزوده شده است.
اگر شبکه تمایزدهنده قادر به تشخیص تفاوت بین تصاویر واقعی و جعلی باشد، شبکه مولد پارامترهای خود را بهروزرسانی میکند تا تصاویر جعلی بهتری تولید کند. اگر شبکه مولد تصاویری تولید کند که شبکه تمایزدهنده را فریب دهد، شبکه تمایزدهنده پارامترهای خود را بهروزرسانی میکند. این رقابت باعث بهبود هر دو شبکه میشود تا به حالت تعادل برسند.
انواع شبکههای مولد رقابتی (GAN)
مدلهای GAN بسته به فرمولهای ریاضی مورد استفاده و روشهای مختلف تعامل شبکه مولد و شبکه تمایزدهنده با یکدیگر، انواع مختلفی دارند.
در ادامه برخی از مدلهای پرکاربرد معرفی میشوند، اما این فهرست جامع نیست. مدلهای دیگری مانند StyleGAN، CycleGAN، و DiscoGAN وجود دارند که مسائل مختلفی را حل میکنند.
GAN ساده (Vanilla GAN)
این مدل GAN پایه است که با کمترین یا بدون بازخورد از شبکه تمایزدهنده، تغییرات داده را تولید میکند. یک GAN ساده معمولاً برای بیشتر موارد استفاده واقعی نیاز به بهبود دارد.
GAN شرطی (Conditional GAN)
GAN شرطی (cGAN) مفهوم شرطی بودن را معرفی میکند که امکان تولید دادههای هدفمند را فراهم میآورد. شبکه مولد و شبکه تمایزدهنده اطلاعات اضافی دریافت میکنند، معمولاً بهصورت برچسبهای کلاسی یا نوعی دادههای شرطی دیگر.
برای مثال، اگر هدف تولید تصاویر باشد، شرط میتواند برچسبی باشد که محتوای تصویر را توصیف میکند. شرطی کردن به شبکه مولد این امکان را میدهد که دادههایی تولید کند که با شرایط خاصی تطابق داشته باشد.
GAN کانولوشنی عمیق (Deep Convolutional GAN)
با توجه به قدرت شبکههای عصبی کانولوشنی (CNN) در پردازش تصویر، GAN کانولوشنی عمیق (DCGAN) معماریهای CNN را به GANها ادغام میکند.
در DCGAN، شبکه مولد از کانولوشنهای معکوس برای بزرگنمایی توزیع دادهها استفاده میکند و شبکه تمایزدهنده نیز از لایههای کانولوشنی برای طبقهبندی دادهها بهره میبرد. DCGAN همچنین دستورالعملهای معماری برای ایجاد پایداری بیشتر در فرآیند آموزش معرفی میکند.
Super-resolution GAN (SRGAN)
شبکههای GAN برای وضوحافزایی (SRGANها) تمرکز دارند بر افزایش وضوح تصاویر با وضوح پایین به وضوح بالا. هدف این است که تصاویر را به وضوح بالاتری ارتقا دهند، در حالی که کیفیت و جزئیات تصویر حفظ شود.
Laplacian Pyramid GAN (LAPGAN)
LAPGANها چالش تولید تصاویر با وضوح بالا را با شکستن این مشکل به مراحل مختلف حل میکنند. آنها از رویکردی سلسلهمراتبی استفاده میکنند که در آن چندین مولد و تمایزدهنده در مقیاسها یا وضوحهای مختلف تصویر کار میکنند. این فرآیند با تولید یک تصویر با وضوح پایین آغاز میشود که کیفیت آن در مراحل مختلف GAN بهبود مییابد.