زمان تخمینی مطالعه: 16 دقیقه
شبکههای متخاصم مولد(Generative Adversarial Networks) یک کلاس از چارچوبهای یادگیری ماشین است. بر اساس مجموعه دادههای آموزشی، یک GANs یاد میگیرد که دادههای جدید را با همان آمار مجموعه آموزشی تولید کند. دادههای ایجاد شده توسط GANs میتواند هر چیزی باشد، مانند تصاویر، فیلمها یا متن. در حالت کلی یک مدل مولد نوعی الگوریتم یادگیری ماشین است که برای تولید دادههای جدید بر اساس مجموعه دادههای ورودی استفاده میشود. این مدل میتواند برای کارهایی مانند تولید تصویر، تولید متن و انواع دیگر ترکیب دادهها مفید باشد.
تاریخچه شبکههای مولد متخاصم
در سال 2014، مقاله ای در مورد شبکههای متخاصم مولد (GANs) توسط ایان گودفلو و همکارانش منتشر شد. این مقاله تحقیقاتی چارچوب جدیدی را برای یادگیری بدون ناظر پیشنهاد میکند که در آن دو شبکه عصبی برای رقابت با یکدیگر آموزش میبینند. از آن زمان، GAN ها به یکی از محبوبترین و پرکاربردترین انواع شبکههای عصبی برای مدلسازی مولد تبدیل شدهاند. در سالهای اخیر، GAN ها برای تقویت دادهها، یادگیری تقویتی و تکنیکهای یادگیری نیمه نظارتی نیز مفید بودهاند.
آموزش شبکههای متخاصم مولد
شبکههای متخاصم مولد (GAN) نوعی مدل هوش مصنوعی است. معماری یک GAN از دو شبکه عصبی مجزا تشکیل شده است که در یک سناریوی بازی مانند در مقابل یکدیگر قرار گرفتهاند. اولین شبکه که به عنوان شبکه مولد شناخته میشود، سعی میکند دادههای جعلی ایجاد کند که واقعی به نظر برسد.
شبکه دوم که به عنوان شبکه تشخیص دهنده شناخته میشود، معمولاً یک شبکه عصبی کانولوشن (CNN) است که سعی میکند بین دادههای تولید شده توسط GAN (دادههای جعلی) و دادههای واقعی تمایز قائل شود. شبکه یاد میگیرد که این نمونهها را به درستی طبقهبندی کند، و این اطلاعات برای تنظیم شبکه مولد برای ایجاد دادههای واقعیتر و غیرقابل تشخیص از دادههای واقعی، همانطور که توسط شبکه تشخیصدهنده تعیین میشود، استفاده میشود.
تصویر زیر مفهوم نحوه عملکرد GAN ها را به تصویر میکشد: شبکههای متخاصم مولد تا زمانی که به نقطهای برسند که هر دو نتوانند بهبود یابند، آموزش داده میشوند، زیرا توزیع مولد (سبز) برابر با توزیع مولد داده (خط نقطه چین) است. و تمایز کننده قادر به تمایز بین دو توزیع نیست (خط آبی چین چین توزیع متمایز را نشان میدهد).
با گذشت زمان، مولد در ایجاد دادههای جعلی که متمایزکننده را فریب میدهد بهتر میشود، و تمایزکننده در تشخیص دادههای جعلی و واقعی بهتر میشود. به عبارت دیگر، هدف ایجاد دادههای جعلی است که آنقدر واقع بینانه باشد که بتواند مولد و تمایزکننده را فریب دهد. از نظر ریاضی، GANs ها سعی میکنند یک توزیع احتمال را تکرار کنند. بنابراین، آنها از توابع هزینه(Loss Function) استفاده میکنند که فاصله بین توزیع دادههای جعلی و توزیع دادههای واقعی را منعکس میکند.
تابع هزینه Loss Function چیست؟
تابع هزینه(ضرر) یک تابع ریاضی است که برای اندازهگیری تفاوت بین دو مجموعه داده استفاده میشود. در زمینه یک GAN، مدل مولد با بهینهسازی یک تابع هزینه آموزش داده میشود که تفاوت بین دادههای تولید شده و دادههای آموزشی را اندازهگیری میکند (مثلاً تصاویر حاشیهنویسی شده با برچسب کلاس). از سوی دیگر، مدل تفکیککننده با بهینهسازی یک تابع هزینه آموزش داده میشود که تفاوت بین دادههای تولید شده و دادههای واقعی را اندازهگیری میکند.
شبکههای مولد متخاصم به عنوان یک بازی دو نفره
در زمینه GANs، دو بازیکن اصلی آن دو مدل مولد و ممیز هستند. الگوریتم مولد تلاش میکند تا دادههایی را تولید کند که از دادههای واقعی قابل تشخیص نیستند، در حالی که الگوریتم تشخیص دهنده سعی دارد بین دادههای تولید شده و دادههای واقعی تمایز قائل شود. یکی از راههای تصور آن، رقابت بین دو بازیکن است. مولد تلاش میکند تمایزکننده(شخیص دهنده) را فریب دهد، در حالی که ممیز تلاش میکند موارد تقلبی را شناسایی کند. از این بازی میتوان برای یادگیری مدل مولدی دادهها استفاده کرد. به عبارت دیگر، مولد در حال یادگیری تولید دادههایی است که شبیه دادههای واقعی هستند. بازی GAN را میتوان به عنوان یک بازی با مجموع صفر در نظر گرفت که در آن مولد سعی میکند امتیاز خود را به حداکثر برساند و متمایز کننده سعی میکند امتیاز مولد را به حداقل برساند. هدف از آموزش یک GAN یافتن یک تعادل نش است که در آن هر دو بازیکن قادر به بهبود امتیاز خود با ایجاد هیچ تغییری در استراتژی خود نباشند. این تکنیک یادگیری ماشین شبیه بازی میتواند برای یادگیری بدون نظارت نیز استفاده شود. در این مورد، مولد تلاش میکند تا دادههای جدیدی تولید کند که شبیه به نمونههای داده واقعی است، بدون اینکه دادههای آموزشی مشروح با برچسبهای کلاس به آنها داده شود.
تفاوت بین CNN و GANs چیست؟
هر دو شبکه عصبی کانولوشنال (CNN) و شبکههای متخاصم مولد (GANs) معماریهای یادگیری عمیق هستند. GANها مدلهای مولد هستند که میتوانند نمونههای جدیدی را از یک مجموعه آموزشی معین تولید کنند، در حالی که شبکههای عصبی کانولوشنال (CNN) در درجه اول برای کارهای طبقهبندی و شناسایی استفاده میشوند. در حالی که یک CNN منفرد میتواند به عنوان یک مدل مولد نیز استفاده شود، اگر آن را به عنوان یک رمزگذار خودکار متغیر (VAE) تنظیم کنید، CNN ها ابزار قدرتمندی برای یادگیری متمایز هستند و به ویژه برای طبقهبندی تصاویر در بینایی کامپیوتر مناسب هستند.
محبوبترین کاربردهای شبکههای مولد متخاصم
شبکههای مولد متخاصم را میتوان برای انواع کارهای هوش مصنوعی، مانند تولید تصویر مبتنی بر یادگیری ماشین، تولید ویدئو، و تولید متن (به عنوان مثال، در پردازش زبان طبیعی، NLP) استفاده کرد. مزیت اصلی شبکههای متخاصم مولد این است که میتوان از آنها برای ایجاد نمونههای داده جدید که در آن جمع آوری دادهها دشوار یا غیرممکن است استفاده کرد. از این رو، GANs با موفقیت در کاربردهای عملی مختلف در سنتز تصویر و بینایی کامپیوتر استفاده شدهاند. در ادامه کاربردهای GANs ذکر شده است:
- تولید تصاویر از ابتدا: تولید تصویر فرآیند ایجاد تصاویر جدید از ابتدا است. این موضوع اغلب با آموزش یک GAN برای یادگیری توزیع یک مجموعه داده و سپس تولید تصاویر جدید از بردارهای نویز تصادفی انجام میشود. GANs را میتوان برای ایجاد تصاویر واقعی از افراد، حیوانات و سایر اشیاء استفاده کرد. همچنین از GANs میتوان برای مواردی مانند ایجاد تصاویر تبلیغاتی با ظاهر واقعی یا افزودن محتوای جدید به بازیهای ویدیویی استفاده کرد. در بهداشت و درمان، GAN ها در تولید تصاویر برای تجزیه و تحلیل تصویر پزشکی بسیار موثر هستند. به طور خاص، GAN ها برای ایجاد تصاویر واقعی از اندامها برای برنامهریزی جراحی یا آموزش شبیهسازی استفاده شدهاند. به عنوان مثال، نمونههای تولید شده از تومورها را میتوان برای تشخیص و برنامهریزی درمان استفاده کرد.
- تولید تصاویر سه بعدی از دوبعدی: کاربرد دیگر استفاده از GANs برای ایجاد تصاویر سه بعدی از تصاویر دو بعدی است. این کار میتواند برای ایجاد مدلهای سه بعدی با ظاهر واقعیتر یا افزودن عمق و واقع گرایی جدید به تصاویر موجود استفاده شود.
- ایجاد قطعات هنری با GANs هوش مصنوعی: برای تولید مدل های هنری که سبکهای هنرمندان مشهور را تکرار میکند، از GANs میتوان استفاده کرد. در یک مطالعه اخیر، یک شبکه متخاصم مولد برای ایجاد پرتره به سبک رامبراند (انتقال سبک) آموزش داده شد. پرترههای ایجاد شده توسط GAN از پرترههای واقعی رامبراند قابل تشخیص نبودند.
- تولید چهره: GAN ها همچنین برای تولید تصاویری با ظاهر واقعی از چهرهها، به اصطلاح جعل عمیق(Deep Fake)، استفاده شدهاند. در یک پروژه تحقیقاتی، یک GAN بر روی مجموعه دادهای از چهرههای مشهور آموزش داده شد و توانست چهرههای جدید و واقعی ایجاد کند که شبیه افراد مشهور در مجموعه داده آموزشی بود.
- پردازش تصاویر پزشکی: شبکههای متخاصم مولد به دلیل قابلیتهای عالی در تولید تصویر به طور گسترده در پردازش تصاویر پزشکی برای تقویت دادهها استفاده میشوند. استفاده از GAN ها برای تقویت تصویر در مجموعه دادههای تصویر پزشکی موجود میتواند حجم نمونه مجموعههای آموزشی را برای مدلهای تشخیص و درمان تصویر پزشکی هوش مصنوعی افزایش دهد. تا حدی، به دلیل محدودیتهای ذاتی مانند هزینه تصویربرداری، هزینه برچسبگذاری و حریم خصوصی بیمار، حجم نمونه محدود تصاویر پزشکی را کاهش میدهد.
- بهبود کیفیت تصویر: سایر کاربردهای GAN شامل وضوح تصویر فوقالعاده(super-resolution) است که در آن یک تصویر با وضوح پایین به تصویری با وضوح بالاتر ارتقا مییابد. یک شبکه متخاصم مولد میتواند برای حذف مصنوعات(Artifacts) از تصاویر یا بهبود وضوح تصاویر استفاده شود. علاوه بر این، از GAN ها میتوان برای رنگی کردن تصاویر سیاه و سفید یا افزودن جزئیات جدید به یک تصویر نیز استفاده کرد.
- رباتهای جعلی رسانههای اجتماعی: GAN همچنین برای ایجاد مقالات و بررسیهای اخبار جعلی و ایجاد مکالمات متنی که واقع بینانه به نظر میرسند استفاده شده است. با استفاده از GAN، یک ربات میتواند برای تولید دادههایی مانند توییتهای واقعگرایانه آموزش ببیند که به احتمال زیاد سایر کاربران را فریب میدهند تا تصور کنند واقعی هستند. این موضوع میتواند برای چندین هدف استفاده شود، مانند ایجاد حسابهای جعلی که برای انتشار اطلاعات نادرست یا ترویج یک برنامه خاص استفاده میشود. GAN ها همچنین میتوانند برای ایجاد پاسخهای خودکار باورپذیر به توییتها استفاده شوند، که برای خدمات خودکار مشتریان در توییتر یا فیس بوک استفاده میشود.
چالشهای شبکههای متخاصم مولد
در ادامه به چالشهای GANs خواهیم پرداخت:
- آموزش GAN: یکی از چالشهای اصلی در آموزش شبکههای متخاصم مولد، همگرایی و ایجاد نتایج خوب است. GAN ها اغلب ناپایدار هستند و آموزش آنها دشوار است. تعدادی از عوامل میتوانند در این امر نقش داشته باشند، مانند مقداردهی اولیه شبکهها، نوع دادههای مورد استفاده برای آموزش و نحوه پیکربندی شبکهها. علاوه بر این، GAN ها اغلب به حجم زیادی از دادهها برای آموزش موثر نیاز دارند. این میتواند در هنگام کار با مجموعه دادههای محدود یک چالش باشد.
- فروپاشی حالت: یکی دیگر از چالشهای GANs فروپاشی حالت است. این موضوع زمانی اتفاق میافتد که مولد یاد میگیرد فقط زیرمجموعهای از خروجیهای ممکن را تولید کند. فروپاشی حالت میتواند یک مشکل باشد زیرا تنوع خروجیهایی را که میتواند توسط GAN تولید شود را محدود میکند. به عنوان مثال، اگر یک GAN بر روی تصاویر چهرهها آموزش دیده باشد، ممکن است یاد بگیرد که فقط یک نوع چهره یا تعداد محدودی از تغییرات ایجاد کند. یکی از راههای جلوگیری از فروپاشی حالت، استفاده از یک تابع هزینه ترویج تنوع است. این تابع تلفات، مولد را تشویق میکند تا به جای تعداد کمی، خروجیهای مختلفی تولید کند. علاوه بر این، استفاده از مجموعه داده بزرگتر نیز میتواند به جلوگیری از فروپاشی حالت کمک کند. یک راه بسیار موثر برای مبارزه با فروپاشی حالت استفاده از تکنیک یادگیری ماشین به نام تبعیض minibatch است.
- چالشهای محاسباتی: GAN ها میتوانند از نظر محاسباتی فشرده باشند، هم از نظر آموزش یادگیری ماشین و هم از نظر استنتاج. آنها اغلب به مقادیر زیادی داده نیاز دارند و ممکن است مدت زیادی طول بکشد تا آموزش داده شوند. علاوه بر این، استقرار GAN ها میتواند دشوار باشد زیرا به منابع محاسباتی زیادی نیاز دارند. راههای مختلفی برای رسیدگی به چالشهای محاسباتی GAN ها وجود دارد. یکی استفاده از تمرینات موازی است که میتواند به افزایش سرعت تمرین کمک کند. مورد دیگر استفاده از آموزش توزیع شده است که میتواند به توزیع بار محاسباتی در چندین گره یا ماشین کمک کند. در نهایت میتوان از تکنیکهای فشردهسازی مدل برای کاهش اندازه مدل استفاده کرد که میتواند به کاهش نیازهای محاسباتی کمک کند.
- آموزش بیش از حد دادههای آموزشی: آموزش بیش از حد یک چالش معمولی برای آموزش GANs است، که در آن شبکه مولد نمونههای داده بسیار دقیق اما بیمعنی تولید میکند که در واقع به هیچ وجه دنیای واقعی را منعکس نمیکند. یک راه حل ممکن برای مشکل تمرین بیش از حد، استفاده از یک مجموعه آموزشی بزرگتر است. این به شبکه کمک میکند تا در مورد دنیای واقعی بیشتر بیاموزد و از تطبیق بیش از حد آن با دادههای آموزشی جلوگیری میکند. راه حل دیگر استفاده از مجموعه اعتبار سنجی است. این مجموعهای از دادهها است که برای آزمایش دقت شبکه پس از آموزش استفاده میشود. اگر شبکه در مجموعه اعتبارسنجی عملکرد خوبی نداشته باشد، احتمالاً بیش از حد آموزش دیده است و نیاز به آموزش مجدد دارد.
انواع مختلف شبکههای مولد متخاصم
انواع مختلفی از معماری Generative Adversarial Networks و سایر مدلهای مولدی مرتبط وجود دارد. در مقاله اصلی، نویسندگان GANs را با استفاده از شبکههای پرسپترون چند لایه (MLPs) و شبکههای عصبی کانولوشن (CNN) پیادهسازی کردند. در ادامه به دیگر مدلها، ابزارها و انواع شبکههای متخاصم مولد خواهیم پرداخت.
- شبکه متخاصم مولد مشروط (CGAN): اخیراً GANهای شرطی (cGAN) در زمینه تولید تصویر و سنتز متن به تصویر مورد توجه قرار گرفتهاند. شبکه متخاصم مولد مشروط (CGAN) یک تکنیک یادگیری با نظارت است که شامل استفاده از دادههای برچسبدار و بدون برچسب برای آموزش شبکه متخاصم مولد میشود. هدف در آن بهبود دقت پیشبینیهای مدل است.
- رمزگذار خودکار متخاصم (AAE): رمزگذار خودکار متخاصم یک رمزگذار خودکار است که از یک شبکه متخاصم برای تنظیم فضای پنهان خودکار استفاده میکند. شبکه خصمانه برای تشویق فضای پنهان به داشتن ویژگیهای دلخواه، مانند گاوسی بودن یا داشتن توزیع یکنواخت استفاده میشود. بخش رمزگذار خودکار شبکه برای بازسازی ورودی آموزش داده شده است، در حالی که شبکه متخاصم برای تمایز بین کد پنهان تولید شده توسط رمزگذار خودکار و نمونهای از توزیع مورد نظر آموزش داده شده است.
- شبکههای مولد متخاصم دوگانه (DGAN): گونهای از GANs که در آن دو شبکه بهطور موازی با دو مجموعه از تصاویر بدون برچسب به عنوان ورودی آموزش داده میشوند، یک شبکه برای تولید تصاویر و دیگری برای تمایز بین تصاویر تولید شده و تصاویر واقعی. DualGAN به طور همزمان دو مترجم تصویر قابل اعتماد را از یک دامنه به دامنه دیگر میآموزد و از این رو میتواند برای طیف گستردهای از وظایف ترجمه تصویر به تصویر استفاده شود.
- شبکههای مولد متخاصم انباشته (StackGAN): گونهای از GAN که در آن چندین مولد در کنار هم قرار میگیرند تا تصویر واقعیتری تولید کنند. GAN های انباشته شبکهای را تشکیل میدهند که قادر به تولید تصاویر با وضوح بالا است.
- شبکههای مولد متخاصم چرخهای (CycleGAN): CycleGAN تکنیکی است برای ترجمه از یک دامنه تصویر به دامنه دیگر برای مدلهای ترجمه خودکار تصویر به تصویر، که به نمونههای داده جفت شده نیاز ندارد.
- شبکههای مولد متخاصم فوق رزولوشن (SRGAN): یک GAN که میتواند تصاویر با وضوح بالا را از ورودیهای با وضوح پایین تولید کند. GAN های با وضوح فوق العاده(super-resolution) یک شبکه عمیق را در ترکیب با یک شبکه دشمن اعمال میکنند تا وضوح دادههای ورودی را افزایش دهند.
- شبکههای مولد متخاصم عمیق کانولوشن (DCGAN): شبکه مولد متخاصمی است که از شبکههای عصبی کانولوشنال عمیق در مولد و تفکیک کننده استفاده میکند. GAN به طور کامل از لایههای کانولوشن-دکانولوشن (شبکههای کاملاً کانولوشنال) تشکیل شده است. تحقیقات نشان میدهد که تصاویر تولید شده با استفاده از معماری مدل DCGAN به طور قابل توجهی بهتر هستند (نویز کمتر).
- شبکههای مولد متخاصم Wasserstein یا (WGAN): شبکه مولد متخاصمی که فاصله Wasserstein-1 بین توزیع واقعی و تولید شده را به حداقل میرساند. فاصله Wasserstein یک مق برای فاصله بین دو توزیع احتمال است.
- شبکههای مولد متخاصم مبتنی بر انرژی (EBGAN): یک GAN از یک تابع انرژی برای اندازهگیری شباهت بین تصاویر واقعی و تولید شده استفاده میکند. تابع انرژی برای تعریف یک تابع از دست دادن استفاده میشود که در طول تمرین به حداقل میرسد.
- شبکههای مولد متخاصم حالت منظم (MRGAN): یک تغییر GAN که از یک تنظیم کننده حالت استفاده میکند تا مولد را تشویق کند تا تصاویر را از همه حالتهای توزیع داده تولید کند. تنظیم کننده حالت یک تابع هزینه است که مولد را تشویق میکند تا تصاویری نزدیک به حالتهای توزیع داده تولید کند.
جایگزینهای شبکههای مولد متخاصم و سایر مدلهای مولد
انواع مختلفی از مدلهای تولیدی وجود دارد که هر کدام مزایا و معایب خاص خود را دارند. در این بخش به طور خلاصه تعدادی از محبوبترین آنها را فهرست میکنیم.
- بیز ساده(Naïve Bayes): Naïve Bayes یک مدل مولد ساده است که فرضیات استقلال قوی بین ویژگیها ایجاد میکند. با وجود سادگی، گاهی اوقات میتواند از مدلهای پیچیده تر بهتر عمل کند.
- شبکههای بیز: شبکههای بیز نوعی مدل گرافیکی احتمالی هستند که میتوانند وابستگیهای پیچیده بین متغیرها را نشان دهند. آنها اغلب در کاربردهایی مانند تشخیص و پیشبینی استفاده میشوند.
- فیلدهای تصادفی مارکوف: فیلدهای تصادفی مارکوف نوعی مدل گرافیکی بدون جهت هستند که میتوانند تعاملات پیچیده بین متغیرها را نشان دهند. آنها معمولا در پردازش تصویر و بینایی کامپیوتر استفاده میشوند.
- مدلهای مارکوف پنهان (HMMs): مدلهای مارکوف پنهان نوعی مدل آماری هستند که میتوانند برای مدلسازی فرآیندهای متغیر با زمان استفاده شوند. آنها معمولاً در تشخیص گفتار و بیوانفورماتیک استفاده میشوند.
- تخصیص دیریکله پنهان (LDA): تخصیص دیریکله(Dirichlet) پنهان نوعی مدل احتمالی است که میتواند برای تولید اسناد متنی استفاده شود. معمولاً در مدلسازی موضوع و طبقهبندی متن استفاده میشود.
- مدل خودرگرسیون (AR): مدلهای خودرگرسیون نوعی مدل آماری هستند که میتوانند برای پیشبینی مقادیر آینده یک سری زمانی بر اساس مقادیر گذشته استفاده شوند. آنها معمولا در پیشبینی سریهای زمانی استفاده میشوند.
شبکههای مولد متخاصم نوعی مدل مولد هستند که برای ایجاد دادههای جدید استفاده میشوند. آنها محبوب هستند زیرا میتوان از آنها برای تولید نمونههای تصویر مصنوعی استفاده کرد که میتواند برای کارهایی مانند تشخیص تصویر یا تشخیص اشیاء مفید باشد.