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


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

شبکه‌های مولد تخاصمی یا به اختصار GAN، رویکردی برای مدلسازی با استفاده از روش‌های یادگیری عمیق مانند شبکه‌های عصبی کانولوشنی (CNN) است. مدلسازی مولد یک تسک یادگیری بدون ناظر در یادگیری ماشین است یعنی؛ کشف و یادگیری خودکار قوانین یا الگوهای موجود در داده‌های ورودی به گونه‌ای که بتوان از مدل برای تولید نمونه‌های جدیدی استفاده کرد.

GANها روشی هوشمندانه برای آموزش یک مدل مولد هستند به این صورت که مسئله‌ی یادگیری با ناظر را با دو مدل فرعی حل می‌کنند: مدل generator (یا مولد) که آموزش می‌دهیم تا از طریق آن نمونه‌های جدید تولید کنیم و مدل discriminator (یا تفکیک کننده) که سعی می‌کند نمونه‌های ورودی را با دو کلاس نمونه واقعی (از دیتاست اصلی) یا جعلی (تولید شده) طبقه‌بندی کند. این دو مدل با هم در یک بازی zero-sum و تخاصمی آموزش داده می‌شوند. تا زمانی که مدل تفکیک کننده تقریباً نیمی از اوقات فریب بخورد و این بدان معناست که مدل مولد قادر بوده نمونه‌های جعلی قابل قبولی تولید کند.

شبکه‌های Generative (مولد) چه شبکه‌ای هستند؟

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

یادگیری با ناظر در مقابل یادگیری بدون ناظر

یک مسئله‌ی یادگیری ماشین معمولاً به معنی استفاده از مدلی برای پیش بینی است.

این مسئله به یک مجموعه داده‌ی آموزشی برای آموزش مدل نیاز دارد که شامل چندین نمونه است که sample نام دارند که هر یک دارای متغیرهای ورودی (X) و برچسب‌های کلاس خروجی (y) هستند. یک مدل اینطور آموزش داده می‌شود که نمونه‌های ورودی به مدل نشان داده می‌شوند، خروجی‌ها پیش بینی می‌شوند و با مقایسه‌ی خروجی‌های پیش بینی شده با خروجی‌های واقعی، مدل اصلاح می‌شود تا خروجی‌های مدل به خروجی‌های مورد انتظار شبیه‌تر شوند.

در رویکرد یادگیری با ناظر، هدف اصلی یادگیری یک نگاشت از ورودی به خروجی است البته با در اختیار داشتن مجموعه های برچسب گذاری شده از جفت های ورودی-خروجی.

یادگیری ماشین: دیدگاه احتمالاتی، 2012

 

این اصلاح مدل عموماً، شکل یادگیری با ناظر یا یادگیری نظارت شده نامیده می‌شود.

Supervised Learning

نمونه‌هایی از مسائل یادگیری باناظر شامل کلاسبندی و رگرسیون هستند و نمونه‌هایی از الگوریتم‌های یادگیری نظارتی شامل رگرسیون لجستیک و جنگل تصادفی هستند.

پارادایم دیگری از یادگیری وجود دارد که در آن به مدل فقط متغیرهای ورودی (X) داده می‌شوند و مسئله هیچ متغیر خروجی (y) ندارد. مدل با استخراج یا خلاصه‌سازی الگوهای موجود در داده‌های ورودی ساخته می‌شود. هیچ اصلاح و تغییری در مدل وجود ندارد زیرا مدل، چیزی را پیش بینی نمی‌کند.

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

-یادگیری ماشین-یک دیدگاه احتمالاتی، 2012

نبود اصلاح مدل عموماً به عنوان شکلی از یادگیری بدون ناظر شناخته می‌شود.

Unsupervised Learning

یادگیری بدون ناظر

نمونه‌هایی از مسائل یادگیری بدون ناظر شامل خوشه‌بندی، مدلسازی مولد هستند و نمونه‌هایی از الگوریتم‌های یادگیری بدون ناظر شامل k-means, Generative Adversarial Networks هستند.

مدلسازی تفکیک کننده در برابر مدلسازی مولد

در یادگیری با ناظر، ممکن است علاقه مند به توسعه‌ی مدلی برای پیش بینی برچسب کلاس برای یک متغیر ورودی باشیم. این تسک مدلسازی پیش بینی، طبقه بندی نامیده می‌شود.

طبقه‌بندی همان مدلسازی تفکیک کننده است.

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

-صفحه 44، شناسایی الگو و یادگیری ماشین، 2006

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

 

Discriminative Modeling

مدلسازی تفکیک کننده

در عوض مدل‌های بدون ناظر که توزیع متغیرهای ورودی را خلاصه می‌کنند ممکن است برای ایجاد یا تولید نمونه‌های جدید با توزیع نمونه‌های ورودی استفاده شوند.

به این دلیل، این مدل‌ها را مدل‌های مولد می‌نامند.

Generative Modeling

مدلسازی مولد

برای مثال، تک متغیر ممکن است یک توزیع داده شناخته شده داشته باشد مانند توزیع گاوسی. یک مدل مولد ممکن است بتواند این توزیع داده را خلاصه کند و سپس برای تولید متغیرهای جدیدی از این توزیع استفاده کند تا در نهایت توزیع مشابه توزیع متغیرهای ورودی داشته باشند.

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

صفحه 43-شناسایی الگو و یادگیری ماشین، 2006

در واقع یک مدل مولد واقعاً خوب ممکن است بتواند نمونه‌های جدیدی تولید کند که نه تنها قابل قبول هستند بلکه نمی‌توان تفاوت آنها را با نمونه‌های واقعی تشخیص داد.

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

Naïve Bayes یک نمونه از مدل مولد است که بیشتر به عنوان مدل تفکیک کننده استفاده می‌شود.

برای مثال Naïve Bayes با خلاصه سازی توزیع احتمال هر متغیر ورودی و کلاس خروجی کار می‎کند. زمانی که پیش بینی انجام می‌شود، احتمال برای هر خروجی ممکن برای هر متغیر محاسبه می‌شود و احتمالات مستقل با هم ترکیب می‌شوند و محتمل‌ترین نتیجه، پیش بینی می‌شود. به طور معکوس می‌توان از توزیع‌های احتمال هر متغیر نمونه برداری کرد تا مقادیر ویژگی (مستقل) قابل قبول تولید کنند.

نمونه‌های دیگر از مدل‌های مولد شامل LDA یا مدل مخلوط گاوسی GMM است.

روش‌های یادگیری عمیق را میتوان به عنوان مدل‌های مولد استفاده کرد. دو نمونه محبوب عبارتند از ماشین محدود بولتزمن RBM و شبکه باور عمیق یا DBN. دو نمونه‌ی مدرن از الگوریتم‌های مولد یادگیری عمیق شامل VAE و شبکه مولد تخاصمی یا GAN هستند.

شبکه‌های مولد تخاصمی (GAN) چه هستند؟

شبکه‌های GAN مدل‌های مولد مبتنی بر یادگیری عمیق هستند. به طور کلی‌تر، GANها یک معماری مدل برای آموزش یک مدل مولد هستند و استفاده از مدل‌های یادگیری عمیق در این معماری، رایج ترین است. معماری GAN اولین بار در سال 2014 توسط Ian Goodfellow و همکارانش به نام «شبکه‌های مولد تخاصمی» معرفی شد. یک رویکرد استاندارد به نام شبکه‌های مولد تخاصمی عمیق یا DCGAN منجر به مدل‌های پایدارتر شد که بعدها توسط الک رادفورد و همکارانش رسمیت یافت. در مقاله‌ی 2015 با نام «یادگیری بازنمایی بدون نظارت با شبکه‌های تخاصمی مولد عمیق» معرفی شد.

اکثر شبکه‌های GAN امروزی مبتنی بر معماری DCGAN هستند.

معماری مدل GAN متشکل از دو مدل فرعی است: یک مدل مولد برای تولید نمونه‌های جدید و یک مدل تفکیک کننده برای طبقه‌بندی آنکه آیا نمونه‌های تولید شده واقعی هستند یا جعلی.

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

-صفحه 699، یادگیری عمیق، 2016

مدل مولد (Generative)

مدل مولد یک بردار تصادفی با طول ثابت را به عنوان ورودی می‌گیرد و نمونه‌ای تولید می‌کند.

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

از این فضای برداری به عنوان فضای پنهان یا فضای برداری متشکل از متغیرهای پنهان یاد می‌شود. متغیرهای پنهان (Latent) متغیرهایی هستند که مستقیماً قابل مشاهده نیستند.

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

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

-صفحه 70، یادگیری عمیق با پایتون، 2017

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

GAN generated Model

مدل تفکیک کننده (Discriminator)

مدل تفکیک کننده، یک نمونه از دامنه‌ی مسئله به عنوان ورودی می‌گیرد (واقعی یا تولید شده) و یک برچسب کلاس باینری واقعی یا جعلی (تولید شده) را پیش بینی می‌کند.

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

گاهی اوقات مدل مولد را می‌توان تغییر کاربری داد؛ زیرا آموخته است که به طور موثر ویژگی‌ها را از نمونه‌هایی در حوزه‌ی مسئله استخراج کند. برخی یا همه‌ی لایه‌های استخراج ویژگی را می‌توان در کاربردهای یادگیری انتقالی استفاده کرد و از داده‌های ورودی مشابه استفاده کرد.

یکی از راه‌های تولید بازنمایی‌های خوبی از تصویر استفاده از شبکه‌های مولد تخاصمی است و سپس می‌توان از بخش‌هایی از شبکه‌های مولد و تفکیک کننده به عنوان استخراج کننده‌ی ویژگی برای تسک‌های نظارتی استفاده کرد.

-آموزش بازنمایی بدون نظارت با شبکه‌های مولد تخاصمی عمیق، 2015

GAN's Discriminative Model

مدل تفکیک کننده‌ی GAN

GANها به عنوان یک بازی دونفره

مدلسازی مولد یک مسئله یادگیری بدون ناظر است، اگرچه یک ویژگی هوشمندانه‌ی معماری GAN این است که آموزش مدل مولد به عنوان یک مسئله یادگیری با ناظر در نظر گرفته می‌شود.

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

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

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

-آموزش NIPS 2016، شبکه‌های مولد تخاصمی، 2016

به این ترتیب این دو مدل در حال رقابت با یکدیگر هستند و در مفهوم تئوری بازی‌ها، متخاصم هستند و یک بازی zero-sum را انجام می‌دهند.

از آنجاییکه چارچوب GAN را می توان به طور طبیعی با ابزارهای تئوری بازی ها تحلیل کرد، ما GANها را «متخاصم» می نامیم.

-آموزش NIPS 2016: شبکه‌های مولد تخاصمی، 2016

 

 

7-Generative Adversarial Netwrok

 

 


دیدگاه ها

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

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

code