شبکه های مولد تخاصمی (Generative Adversarial Networks) — به زبان ساده

۳۹۸۸ بازدید
آخرین به‌روزرسانی: ۰۱ بهمن ۱۴۰۲
زمان مطالعه: ۱۴ دقیقه
شبکه های مولد تخاصمی (Generative Adversarial Networks) — به زبان ساده

«شبکه های مولد تخاصمی» (Generative Adversarial Networks | GAN)، دسته‌ای از سیستم‌های «یادگیری ماشین» (Machine Learning) محسوب می‌شوند که توسط «ایان گودفلو» (Ian Goodfellow) و همکارانش در سال ۲۰۱۴ ابداع شده‌اند. دو «شبکه عصبی» (Neural Network)، در یک بازی با یکدیگر به رقابت می‌پردازند (بازی به مفهومی که در «نظریه بازی» (Game Theory) وجود دارد، اما همیشه به شکل «بازی مجموع صفر» نیست). با بهره‌گیری از یک مجموعه «داده آموزشی» (Training Set)، این روش می‌آموزد تا داده‌های جدیدی را با «آماره‌هایی» (Statistics) مشابه با مجموعه آموزش تولید کند.

برای مثال، یک شبکه مولد تخاصمی که روی مجموعه داده تصاویر آموزش داده شده باشد، می‌تواند تصاویر جدیدی را تولید کند که با داشتن ویژگی‌های واقع‌گرایانه متعدد، حداقل به طور سطحی توسط ناظر انسانی قابل باور باشند. اگرچه، این شبکه‌ها (عصبی) در اصل به عنوان یک «مدل مولد» (Generative Model) برای «یادگیری نظارت نشده» (بدون ناظر | Unsupervised Learning) معرفی شده بودند، اما اثبات شده است که شبکه های مولد تخاصمی برای «یادگیری نیمه نظارت شده» (Semi-Supervised Learning)، «یادگیری کاملا نظارت شده» (Fully Supervised Learning) و «یادگیری تقویتی» (Reinforcement Learning) نیز مفید و قابل استفاده هستند. در سمینار یادگیری تقویتی که سال ۲۰۱۶ برگزار شده بود، «یان لی کان» (Yann LeCun)، شبکه های مولد تخاصمی را با عنوان «جذاب‌ترین ایده در زمینه یادگیری ماشین طی بیست سال اخیر» توصیف کرده است.

شبکه مولد تخاصمی

شبکه مولد تخاصمی (GAN) رویکردی برای مدل‌سازی مولد با استفاده از روش‌های «یادگیری عمیق» (Deep Learning) مانند «شبکه‌های عصبی پیچشی» (Convolutional Neural Networks) است. مدل‌سازی مولد یک فعالیت «نظارت نشده» (Unsupervised Learning) در یادگیری ماشین است که شامل اکتشاف خودکار و یادگیری قواعد یا الگوهای موجود در داده‌های ورودی می‌شود. این کار به صورتی انجام می‌شود که از مدل می‌توان برای تولید یا خروجی دادن نمونه‌های جدیدی که به شکل قابل باوری از مجموعه داده اصلی قابل برگرفته شدن هستند استفاده کرد.

شبکه های مولد تخاصمی راهکاری هوشمندانه برای آموزش دادن یک مدل مولد هستند. آن‌ها این کار را با قاب‌بندی مساله به عنوان یک مساله «یادگیری نظارت شده» (Supervised Learning) با دو زیر مدل انجام می‌دهند. این دو زیر مدل عبارتند از «مدل مولد» (Generator Model) که برای تولید نمونه‌های جدید آموزش داده می‌شود و  «مدل متمایزگر» (Discriminator Model) که تلاش می‌کند تا نمونه‌ها را به عنوان نمونه واقعی (از دامنه) یا جعلی (تولید شده) دسته‌بندی کند. هر دو مدل با یکدیگر در یک بازی مجموع صفر تخاصمی آموزش داده می‌شوند و این کار تا جایی ادامه پیدا می‌کند که مدل متمایزگر بالغ بر نیمی از دفعات گول بخورد؛ بدین معنا که مدل مولد، نمونه‌های قابل باور تولید کرده است.

شبکه های مولد تخاصمی (Generative Adversarial Networks) -- به زبان ساده

شبکه‌های عصبی مولد، یک زمینه مهیج و به سرعت در حال رشد هستند که وعده خود مبنی بر داشتن توانایی تولید نمونه‌های واقعی در طیف گوناگونی از مسائل را محقق کرده‌اند. از جمله برجسته‌ترین این مسائل، «تبدیل تصویر به تصویر» (Image to Image Translation) است. به عنوان مثالی از تبدیل تصویر به تصویر، می‌توان به تبدیل تصاویر تابستان به زمستان، تصاویر روز به شب و تولید تصاویر فوتورئالیستیک از اشیا، صحنه‌ها و افراد اشاره کرد. این تصاویر به گونه‌ای تولید می‌شوند که حتی انسان‌ها نیز نمی‌توانند بگویند تصاویر جعلی هستند. در این مطلب، شبکه های مولد تخاصمی به صورت مقدماتی معرفی می‌شوند. پس از مطالعه این مطلب، مخاطب با مباحث زیر آشنا خواهد شد:

  • مفاهیم زمینه‌ای شبکه های مولد تخاصمی شامل یادگیری نظارت شده و نظارت نشده و مدل‌سازی مولد و متمایزگر
  • شبکه های مولد تخاصمی به عنوان معماری آموزش خودکار یک مدل مولد با توجه به این موضوع که این شبکه‌ها (عصبی) با مسائل یادگیری نظارت نشده به عنوان مسائل نظارت شده برخورد می‌کنند و هم از مدل‌های مولد و هم مدل‌های متمایزگر بهره می‌برند.
  • شبکه های مولد تخاصمی مسیری برای «داده‌افزایی» (Data Augmentation) مختص دامنه پیچیده و راه‌حلی برای مسائلی مانند تبدیل تصویر به تصویر که نیازمند راهکارهای مولد هستند فراهم می‌کند.

این مطلب، به سه بخش کلی تقسیم شده است و طی هر بخش به یک سوال کلیدی پیرامون شبکه های مولد تخاصمی پاسخ داده می‌شود. این سوالات در ادامه بیان شده‌اند.

  1. مدل مولد چیست؟
  2. شبکه مولد تخاصمی چیست؟
  3. چرا از شبکه مولد تخاصمی استفاده می‌شود؟

مدل مولد چیست؟

در این بخش، ایده اصلی مدل‌های مولد، پارادایم‌های یادگیری نظارت نشده و نظارت شده و مدل‌سازی متمایزگر و مولد تشریح می‌شود.

یادگیری نظارت شده و نظارت نشده

در یک مساله یادگیری ماشین معمول، از یک مدل برای انجام پیش‌بینی و برای مثال مدل‌سازی پیش‌بین استفاده می‌شود. این کار نیازمند یک مجموعه داده آموزش است که برای آموزش دادن یک مدل مورد استفاده قرار می‌گیرد و ترکیبی از چندین مثال است که به آن‌ها نمونه گفته می‌شود. هر یک از این نمونه‌ها دارای یک متغیر ورودی (X) و برچسب کلاس (Y) هستند. مدل با مشاهده نمونه‌ها آموزش می‌بینید و سپس، برای پیش‌بینی نمونه‌های جدید مورد استفاده قرار می‌گیرد. همچنین، مدل برای ایجاد خروجی‌هایی که بیشتر به خروجی مورد انتظار نزدیک هستند نیز آموزش می‌بیند.

در کتاب «یادگیری ماشین: یک چشم‌انداز احتمالی» (Machine Learning: A Probabilistic Perspective) در این رابطه چنین بیان شده است: «در رویکرد یادگیری پیش‌بین یا نظارت شده، هدف یادگیری یک نگاشت از ورودی X به خروجی y برای یک مجموعه از جفت‌های ورودی-خروجی است...».

این اصلاح مدل عموما با عنوان «شکل نظارت شده یادگیری» (Supervised Form of Learning) یا یادگیری نظارت شده نامیده می‌شود.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

از جمله مسائل یادگیری نظارت شده می‌توان به «دسته‌بندی» (Classification) و «رگرسیون» (Regression) اشاره کرد و به عنوان مثال‌هایی از الگوریتم‌های یادگیری نظارت شده می‌توان از «رگرسیون لجستیک» (Logistic Regression) و «جنگل تصادفی» (Random Forest) نام برد. پارادایم دیگری از یادگیری وجود دارد که طی آن، فقط متغیر ورودی (X) به مدل داده می‌شود و مساله هیچ متغیر خروجی (y) ندارد. بنابراین، مدل با استخراج یا خلاصه‌سازی الگوهای موجود در داده‌ها ساخته می‌شود. هیچ اصلاح مدلی برای این نوع از مدل‌ها اتفاق نمی‌افتد و مدل چیزی را پیش‌بینی نمی‌کند.

در کتاب «یادگیری ماشین: یک چشم‌انداز احتمالی» در این رابطه چنین آمده است: «دومین نوع از یادگیری ماشین، رویکرد توصیفی یا نظارت نشده است. در این نوع رویکرد، فقط داده‌های ورودی وجود دارند و هدف پیدا کردن الگوهای جالب موجود در میان داده‌ها است.

چنین مسائلی کمتر خوش‌تعریف هستند، زیرا در مساله گفته نمی‌شود که به دنبال چه نوع الگویی باید گشته شود و هیچ سنجه خطای مشخصی (برخلاف یادگیری نظارت شده که در آن می‌توان مقدار پیش‌بینی شده y برای یک x مشخص را با مقدار واقعی آن مقایسه کرد) وجود ندارد». چنین مدل‌های فاقد اصلاحی معمولا با عنوان «شکل نظارت نشده یادگیری» (Unsupervised Form of Learning) یا یادگیری نظارت نشده نامیده می‌شوند.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

از جمله مسائل یادگیری نظارت نشده می‌توان به خوشه‌بندی و مدل‌های مولد اشاره کرد. الگوریتم‌های K-Means و شبکه عصبی تخاصمی از جمله الگوریتم‌های نظارت نشده هستند.

مدل‌سازی مولد و مدل‌سازی متمایزگر

در یادگیری نظارت شده، ممکن است تمایل به توسعه مدلی وجود داشته باشد که برچسب کلاس را با دریافت مثالی از متغیرهای ورودی پیش‌بینی کند. کار مدل‌سازی پیش‌بینی «دسته‌بندی» (Classification) نامیده می‌شود. به دسته‌بندی به طور سنتی «مدل‌سازی متمایزگر» (Discriminative Modeling) نیز گفته می‌شود.

در کتاب «تشخیص الگو و یادگیری ماشین» (Pattern Recognition and Machine Learning) در این رابطه چنین گفته شده است: «... از داده‌های آموزش برای پیدا کردن تابع تمایز (f(x استفاده می‌شود که هر x را در نتیجه ترکیب استنتاج و مرحله تصمیم در یک مساله یادگیری منفرد، مستقیما به یک برچسب کلاس نگاشت می‌کنند». این کار به این دلیل است که مدل باید مثال‌های متغیرهای ورودی را در سرتاسر کلاس‌ها متمایز کند. مدل باید تصمیم بگیرد که یک مثال داده شده به کدام دسته تعلق دارد.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

این در حالی است که مدل‌های یادگیری نظارت نشده که توزیع متغیرهای ورودی را خلاصه می‌کنند، ممکن است برای ساخت یا تولید نمونه‌های جدید در توزیع ورودی مورد استفاده قرار بگیرند. از این رو، این مدل‌ها «مدل‌های مولد» نامیده می‌شوند.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

برای مثال، یک متغیر مجرد ممکن است یک توزیع شناخته شده مانند «توزیع گوسی» (Gaussian Distribution) (یا زنگوله‌ای و یا همان توزیع نرمال) داشته باشد. یک مدل مولد ممکن است قادر باشد به طور موثری این توزیع داده‌ها را خلاصه و سپس برای تولید متغیرهای جدیدی استفاده کند که به صورت قابل باوری در توزیع «برازش» (Fit) می‌شوند. در کتاب «بازشناسی الگو و یادگیری ماشین» در این رابطه چنین بیان شده است: «رویکردهایی که به طور صریح و یا ضمنی توزیع ورودی‌ها و همچنین خروجی‌ها را مدل می‌کند، با عنوان مدل‌های مولد شناخته می‌شوند. زیرا با نمونه‌گیری از آن‌ها این امکان وجود دارد که نقاط داده مصنوعی در فضای ورودی تولید شوند». در حقیقت، یک مدل مولد خیلی خوب ممکن است قادر به تولید مثال‌های جدیدی باشد که نه تنها قابل باور هستند، بلکه از مثال‌های واقعی دامنه مسأله نیز قابل تمایز نیستند.

مثال‌هایی از مدل‌های مولد

«بیز ساده» (Naive Bayes) مثالی از مدل‌های مولد است که اغلب به عنوان یک مدل متمایزگر مورد استفاده قرار می‌گیرد. برای مثال، بیز ساده با خلاصه‌سازی توزیع احتمال هر متغیر ورودی و کلاس خروجی کار می‌کند. هنگامی که پیش‌بینی انجام شد، احتمال هر خروجی ممکن برای هر متغیر محاسبه می‌شود؛ احتمال‌های مستقل ترکیب می‌شوند و محتمل‌ترین خروجی پیش‌بینی می‌شود. به طور معکوس، توزیع احتمال هر متغیر را می‌توان برای تولید مقادیر ویژگی (مستقل) قابل باور نمونه‌گیری کرد. مثال دیگری از مدل‌های مولد، «تخصیص پنهان دیریکله» (Latent Dirichlet Allocation | LDA) و «مدل آمیخته گاوسی» (Gaussian Mixture Model | GMM) محسوب می‌شوند.

روش‌های یادگیری عمیق را می‌توان به عنوان مدل‌های مولد استفاده کرد. دو مثال متداول از این الگوریتم‌ها «ماشین بولتزمن محدود» (Restricted Boltzmann Machine | RBM) و «شبکه باور عمیق» (Deep Belief Network | DBN) هستند. دو مثال مدرن از الگوریتم‌های مدل‌سازی مولد یادگیری عمیق می‌توان به «خود کدگذار متغیر» (Variational Autoencoder | VAE) و شبکه عصبی مولد (GAN) اشاره کرد.

شبکه عصبی مولد چیست؟

«شبکه عصبی مولد» (Generative Adversarial Networks | GAN) مدل مولد مبتنی بر یادگیری عمیق است. به طور کلی، شبکه‌های عصبی مولد معماری برای آموزش یک مدل مولد هستند و متداول‌تر است که از مدل‌های یادگیری عمیق در این معماری استفاده شود. معماری GAN اولین بار در سال ۲۰۱۴ در مقاله‌ای که توسط ایان گوفلو و همکارانش با عنوان «شبکه های مولد تخاصمی» (Generative Adversarial Networks) نوشته شده بود، معرفی شدند.

یک رویکرد استاندارد شده که «شبکه های مولد تخاصمی پیچشی عمیق» (Deep Convolutional Generative Adversarial Networks | DCGAN) نامیده می‌شود منجر به مدل‌های پایدارتری می‌شود که بعدها توسط «الک رادفورد» (Alec Radford) و همکاران در مقاله‌ای با عنوان «یادگیری ارائه نظارت نشده با شبکه های مولد تخاصمی پیچشی عمیق» (Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks) که در سال ۲۰۱۶ منتشر شد، معرفی شدند.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

در مقاله کنفرانسی «راهنمای NIPS 2016: شبکه های مولد تخاصمی»، که در سال ۲۰۱۶ منتشر شده، در این رابطه چنین آمده است: «اغلب شبکه های مولد تخاصمی حداقل به طور کلی بر پایه معماری DCGAN هستند ...». معماری مدل GAN شامل دو زیر مدل است: یک مدل مولد برای تولید نمونه‌های جدید و یک مدل متمایزگر برای دسته‌بندی نمونه‌های تولید شده در دو دسته واقعی از دامنه و جعلی که توسط مدل مولد ساخته شده است.

مولد: مدلی که برای تولید مثال‌های قابل باور جدید از دامنه مسأله مورد استفاده قرار می‌گیرد.

متمایزگر: مدلی که برای دسته‌بندی مثال‌ها به عنوان واقعی (از دامنه) یا جعلی (ساخته شده توسط مدل مولد) مورد استفاده قرار می‌گیرد.

در کتاب «یادگیری عمیق» (Deep Learning) در این رابطه چنین آمده است: «شبکه‌های عصبی مولد بر مبنای سناریوهای نظریه بازی هستند. در آن‌ها، شبکه مولد باید با یک شبکه متخاصم رقابت کند. شبکه مولد به طور مستقیم نمونه‌ها را تولید می‌کند. دشمن آن، شبکه متمایزگر، تلاش می‌کند تا بین نمونه‌های برگرفته شده از مجموعه داده آموزش و نمونه‌های تولید شده توسط مولد تمایز قائل شود».

مدل مولد

مدل مولد یک بردار تصادفی با طول ثابت را به عنوان ورودی دریافت و نمونه‌ها را در دامنه تولید می‌کند. بردار به طور تصادفی از یک توزیع گوسی برگرفته شده و بردار برای دانه دادن به فرایند مولد مورد استفاده قرار می‌گیرد. پس از آموزش دادن، نقاط در این فضای برداری چندبُعدی متناظر با نقاط در دامنه مسأله خواهند بود و یک ارائه فشرده از توزیع داده‌ها را ارائه می‌کنند.

فضای برداری با عنوان «فضای پنهان» (Latent Space) یا یک فضای برداری متشکل از «متغیرهای پنهان» (Latent Variables) نامیده می‌شود. متغیرهای پنهان (Latent Variables یا Hidden Variables) متغیرهایی هستند که برای دامنه حائز اهمیت هستند اما به طور مستقیم قابل مشاهده نیستند. در کتاب «یادگیری عمیق» چاپ سال ۲۰۱۶، در این رابطه چنین آمده است: «یک متغیر پنهان یک متغیر تصادفی است که نمی‌توان آن را به طور مستقیم مشاهده کرد».

معمولا از متغیرهای پنهان یا فضای پنهان با عنوان «تصویر» (Projection) یا «فشرده‌سازی» (Compression) توزیع داده یاد می‌شود. این مورد، فضای پنهانی است که فشرده‌سازی یا مفهوم سطح بالا از داده‌های خام مشاهده شده مانند توزیع داده‌های ورودی را فراهم می‌کند. در GAN‌ها، مدل مولد، به نقاط در فضای پنهان معنا می‌بخشد؛ به طوری که نقاط جدیدی که برگرفته از فضای پنهان هستند را می‌توان برای مدل مولد به عنوان ورودی قرار داد و از آن‌ها برای تولید خروجی‌های جدید و متفاوت استفاده کرد.

در کتاب «یادگیری عمیق با پایتون» (Deep Learning with Python) در این رابطه چنین آمده است: «مدل‌های یادگیری ماشین می‌توانند فضای پنهان آماری تصاویر، موسیقی‌ها و داستان‌ها را یاد بگیرند؛ سپس، می‌توانند از این فضا نمونه‌گیری کنند و آثار هنری جدید با مشخصه‌هایی شبیه به مواردی که مدل در داده‌های آموزش خود دیده است را تولید کنند». پس از آموزش، مدل مولد برای تولید نمونه‌های جدید حفظ و استفاده می‌شود.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

مدل متمایزگر

مدل متمایزگر، نمونه‌ای (Example) از دامنه را به عنوان ورودی (واقعی یا تولید شده) دریافت و برچسب کلاس دودویی را «واقعی» (Real) یا «جعلی» (Fake) پیش‌بینی می‌کند. مثال‌های واقعی از مجموعه داده آموزش می‌آیند. مثال‌های تولید شده خروجی مدل مولد هستند. متمایزگر یک مدل دسته‌بندی طبیعی (و به خوبی درک شده) است. پس از فرایند آموزش، مدل متمایزگر کنار گذاشته می‌شود، زیرا مدل مولد است که جذابیت دارد. گاهی اوقات، مولد را می‌توان باز هدف‌گذاری کرد، زیرا به خوبی یاد گرفته است که ویژگی‌ها را در دامنه مسأله استخراج کند. برخی یا تمام لایه‌های استخراج ویژگی را می‌توان در کاربردهای «یادگیری انتقال» (Transfer Learning) با استفاده از همان داده‌ها یا داده‌های مشابه استفاده کرد.

در مقاله «یادگیری ارائه نظارت نشده با شبکه‌های تخاصمی مولد پیچشی عمیق» در این رابطه چنین آمده است: «راهکار پیشنهادی برای ساخت ارائه تصاویر خوب، آموزش دادن شبکه‌های عصبی تخاصمی (GAN‌ها) و سپس، استفاده مجدد از بخش‌هایی از شبکه‌های مولد و متمایزگر به عنوان استخراج کننده‌های ویژگی برای فعالیت‌های نظارت شده است».

شبکه های مولد تخاصمی (Generative Adversarial Networks)

شبکه های مولد تخاصمی به عنوان یک بازی دو بازیکنی

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

در کتاب «راهنمای NIPS 2016: شبکه‌های عصبی مولد» در این رابطه چنین آمده است: «می‌توان به مولدها به مثابه جاعل‌هایی نگریست که تلاش می‌کنند پول تقلبی بسازند و متمایزگرها مانند پلیس‌هایی هستند که تلاش می‌کنند پول قانونی را بپذیرند و پول‌های جعلی را تشخیص دهند. برای موفقیت در این بازی، جاعل باید یاد بگیرد که پول‌هایی بسازد که از پول‌های اصل غیر قابل تشخیص باشند و شبکه مولد باید یاد بگیرد نمونه‌هایی بسازد که از توزیع مشابهی با داده‌های آموزش برگرفته شده باشند».

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

در عین حال، شرایطی وجود دارد که طی آن مولد در هر بار جایگزین‌های خیلی خوبی از دامنه ورودی را تولید می‌کند و متمایزگر نمی‌تواند تفاوت آن‌ها را از نمونه‌های واقعی و غیرجعلی تشخیص دهد و بنابراین برچسب دسته را «غیر مطمئن» (Unsure) پیش‌بینی می‌کند (برای مثال، ٪۵۰ برای واقعی و جعلی). این امر تنها مثالی از یک شرایط ایده‌آل است. نیازی برای رسیدن به این نقطه به منظور رسیدن به مدل مولد کارآمد وجود ندارد.

مثالی از معماری مدل شبکه مولد تخاصمی

در کتاب یادگیری عمیق، در این رابطه چنین آمده است: «[آموزش] موجب می‌شود که متمایزگر تلاش کند تا یاد بگیرد که به درستی نمونه‌ها را به عنوان واقعی یا جعلی دسته‌بندی کند. به طور هم‌زمان، مولد تلاش می‌کند تا دسته‌بند را گول بزند تا نمونه‌های ساخته شده توسط آن را باور کند. در هم‌گرائی، نمونه‌های مولد از داده‌های واقعی غیر قابل تمایز هستند و متمایزگر در هر حال $$\frac{1}{2}$$ را در خروجی می‌دهد. امکان دارد که بعدا متمایزگر کنار گذاشته شود».

شبکه های مولد تخاصمی و شبکه‌های عصبی پیچشی

شبکه های مولد تخاصمی (GAN‌ها) به طور معمول با داده‌های تصویری کار می‌کنند و از «شبکه‌های عصبی پیچشی» (Convolutional Neural Network | CNN) به عنوان مدل مولد و متمایزگر بهره می‌برد. دلیل این امر آن است که اولین توصیف از این روش در زمینه بینایی کامپیوتری ارائه و از شبکه‌های عصبی پیچشی و داده‌های تصویری برای آن استفاده شده است؛ همچنین، به دلیل پیشرفت قابل توجه «بینایی کامپیوتری» (Computer Vision) که با استفاده از شبکه‌های عصبی پیچشی در سال‌های اخیر به وقوع پیوسته، و شبکه‌های عصبی پیچشی بیشتر به نتایج لبه علم در زمینه بینایی کامپیوتر مانند «شناسایی اشیا» (Object Detection) و «تشخیص چهره» (Face Recognition) دست یافته‌اند از این نوع شبکه‌های در شبکه های مولد تخاصمی استفاده می‌شود.

مدل‌سازی داده‌های تصویری بدین معنا است که فضای پنهان، ورودی مولد، یک ارائه فشرده از مجموعه‌ای از تصاویر فراهم می‌کند که برای آموزش دادن مدل مورد استفاده قرار می‌گیرند. این بدین معنا است که مولد، تصاویر جدید و خروجی را تولید می‌کند که به سادگی قابل مشاهده و ارزیابی توسط توسعه‌دهندگان یا کاربران مدل است. این حقیقت ممکن است بر دیگر موارد ارجحیت داشته باشد که توانایی ارزیابی بصری کیفیت خروجی تولید شده، که هر دو را دارد، منجر به تمرکز بر کاربردهای بینایی کامپیوتری با CNN در مقایسه با دیگر مدل‌های مبتنی بر یادگیری عمیق می‌شود.

شبکه‌های مولد عصبی شرطی

یک افزونه مهم از شبکه‌های عصبی مولد، مربوط به کاربرد آن‌ها برای تولید شرطی خروجی‌ها است. مدل مولد می‌تواند به گونه‌ای آموزش ببیند که مثال‌های جدید را از دامنه ورودی تولید کند، در حالی‌که ورودی، بردار تصادفی از فضای پنهان، (به صورت شرطی) با برخی از ورودی‌های اضافی فراهم شده است. ورودی اضافی می‌تواند یک مقدار کلاس مانند مرد یا زن در تولید تصاویر از افراد و یا ارقام در تولید تصاویر از مقادیر نوشته شده با دست باشد.

در مقاله «شبکه های مولد تخاصمی شرطی» که در سال ۲۰۱۴ منتشر شده، در این رابطه چنین آمده است: «شبکه های مولد تخاصمی قابل گسترش به یک مدل شرطی هستند، اگر هم مولد و هم متمایزگر بر اساس اطلاعات اضافی y شرطی شده باشند. y می‌تواند هرگونه‌ای از اطلاعات کمکی مانند برچسب‌های کلاس یا داده‌هایی از دیگر شرایط باشد. می‌توان شرطی‌سازی را با خوراک دادن y در متمایزگر و مولد به عنوان یک لایه ورودی افزوده انجام داد».

متمایزگر نیز شرطی شده است، بدین معنا که هم داده ورودی که واقعی یا جعلی است و هم ورودی اضافی را فراهم می‌کند. در ورودی شرطی نوع برچسب دسته‌بندی، متمایزگر انتظار دارد که ورودی آن دسته، در عوض به مولد بیاموزد که نمونه‌هایی از آن کلاس را به منظور گول زدن متمایزگر تولید کند. بدین شکل، یک شبکه مولد تخاصمی می‌تواند برای تولید مثال‌هایی از دامنه یک نوع داده شده مورد استفاده قرار بگیرد. با برداشتن یک گام رو به جلوتر، مدل‌های شبکه مولد تخاصمی می‌تواند روی یک مساله از دامنه مانند یک تصویر شرطی شود. این کار، به شبکه های مولد تخاصمی امکان کاربردهایی مانند تبدیل متن به تصویر یا تبدیل تصویر به تصویر را می‌دهد. این کار برای برخی از کاربردهای قابل توجه شبکه های مولد تخاصمی مانند «انتقال سبک» (Style Transfer)، رنگ‌آمیزی تصاویر، نگاشت تصاویر از تابستان به زمستان یا از روز به شب و چنین مواردی کاربرد دارد.

در شبکه های مولد تخاصمی شرطی برای تبدیل تصویر به تصویر، مانند نگاشت تصاویر روز به شب، متمایزگر نمونه‌هایی از تصاویر شبانه واقعی و تولید شده را همراه با تصاویر واقعی روز (شرط گذاشته شده بر آن‌ها) را به عنوان ورودی فراهم می‌کند. مولد، با یک بردار تصادفی از فضای پنهان و تصاویر روز واقعی (شرط گذاشته شده) به عنوان ورودی فراهم شده است.

شبکه های مولد تخاصمی (Generative Adversarial Networks)

چرا شبکه های مولد تخاصمی؟

یکی از مهم‌ترین پیشرفت‌ها در استفاده از روش‌های یادگیری عمیق در دامنه‌هایی مانند بینایی کامپیوتری، روشی است که «داده‌افزایی» (Data Augmentation) نامیده می‌شود. نتایج داده‌افزایی در مدل‌های با کارایی بهتر، هم مهارت مدل را افزایش می‌دهند و هم یک اثر تنظیم کننده به همراه دارند که خطای تعمیم را کاهش می‌دهد. داده‌افزایی با ساخت نمونه‌های جدید، مصنوعی ولی قابل اعتماد از دامنه مسأله ورودی کار می‌کند که مدل روی آن آموزش دیده است.

روش‌ها برای داده‌های تصویری، اولیه و شامل بدنه، چرخش‌ها، بزرگ‌نمایی‌ها و دیگر تبدیل‌های ساده تصاویر موجود در مجموعه داده آموزش هستند. مدل‌سازی مولد موفق، یک جایگزین و رویکرد دامنه‌محورتر را برای داده‌افزایی فراهم می‌کند. در حقیقت، داده‌افزایی نسخه ساده شده مدل‌سازی مولد است، اگرچه به ندرت به این شکل توصیف می‌شود.

در کتاب «عناصر یادگیری آماری» که در سال ۲۰۱۶ به چاپ رسیده، در این رابطه چنین گفته شده است: «... بزرگ‌نمایی نمونه با داده‌های پنهانی (داده‌های مشاهده نشده). این کار داده‌افزایی نامیده می‌شود. ... در دیگر مسائل، داده‌های پنهانی، داده‌های واقعی هستند که باید مشاهده شوند، اما ناموجودند».

در دامنه‌های پیچیده یا دامنه‌هایی با حجم محدودی از داده‌ها، مدل‌سازی مولد مسیری به سوی آموزش بیشتر برای مدل‌سازی فراهم می‌کند. GAN‌ها شاهد موفقیت‌های بیشتری در چنین مواردی در دامنه‌هایی مانند یادگیری تقویتی عمیق بوده‌اند. دلایل تحقیقاتی زیادی پیرامون اینکه چرا GAN‌ها جذاب، مهم و نیازمند پژوهش بیشتر هستند وجود دارد. ایان گودفلو تعدادی از این موارد را در سخنرانی کلیدی خود با عنوان «راهنمای سال ۲۰۱۶ NIPS: شبکه های مولد تخاصمی» در کنفرانس سال ۲۰۱۶ بیان  می‌کند.

در میان این دلایل، او توانایی موفق GAN برای مدل‌سازی داده‌های ابعاد بالا، اداره مقادیر ناموجود و ظرفیت GAN‌ها برای فراهم کردن خروجی‌های چند مدلی یا پاسخ‌های قابل اعتماد چندگانه را برجسته می‌سازد. احتمالا، مهم‌ترین کاربرد GAN‌ها برای وظایفی است که نیازمند تولید مثال‌های جدید هستند. در اینجا، گودفلو سه مثال نشان می‌دهد:

  • «فراتفکیک‌پذیری» (Image Super-Resolution). توانایی تولید نسخه‌های با کیفیت از تصاویر ورودی.
  • «ساخت آثار هنری» (Creating Art). توانایی ساخت تصاویر، پیش‌طرح‌ها، نقاشی‌ها و دیگر موارد جدید و هنری.
  • «تبدیل تصویر به تصویر» (Image-to-Image Translation). توانایی انتقال تصاویر در دامنه‌های گوناگون، مثلا از روز به شب، از تابستان به زمستان و دیگر موارد.

احتمالا متقاعد کننده‌ترین دلیل برای اینکه GAN‌ها به طور گسترده مورد مطالعه، توسعه و استفاده قرار می‌گیرند، موفقیت‌های آن‌ها است. GAN‌ها قادر به تولید کردن تصاویر بسیار واقعی و به صورتی هستند که انسان‌ها نیز قادر به تشخیص و بیان آن نیستند که این تصاویر متعلق به اشیا، صحنه‌ها و انسان‌هایی هستند که در دنیای واقعی وجود خارجی ندارند. حتی واژه شگفت‌انگیز نیز از بیان توانایی این روش‌ها قاصر است.

شبکه های مولد تخاصمی (Generative Adversarial Networks)
مثالی از پیشرفت توانایی‌های GAN‌ها از سال ۲۰۱۴ تا ۲۰۱۷.

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

^^

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
MachineLearningMastery
۲ دیدگاه برای «شبکه های مولد تخاصمی (Generative Adversarial Networks) — به زبان ساده»

در شکل “مثالی از معماری مدل شبکه مولد تخاصمی” به جای مدل مولد پایین تصویر باید مدل متمایزگر جایگزین شود.


با سلام و احترام؛

سپاس از دقت نظر شما، این مورد اصلاح شد.

از همراهی شما با مجله فرادرس سپاسگزاریم.

نظر شما چیست؟

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