آشنایی با عملکرد الگوریتم‌های هوشمند
شبکه‌های مولد تخاصمی (GAN) چیستند و چگونه کار می‌کنند؟
شبکه‌های مولد تخاصمی (GAN) سرنام (Generative Adversarial Networks) در سال 2014 میلادی توسط Ian Goodfellow ابداع شدند و امروزه مورد توجه متخصصان هوش مصنوعی قرار دارند. این شبکه‌ها بر مبنای رویکرد تئوری بازی‌ها پدید آمده‌اند که در آن یک شبکه یادگیری عمیق که مولد (Generator) نامیده می‌شود با یک روند کنش‌گر (تخاصمی) رقابت می‌کند. شبکه عمیق دیگری که متمایزکننده (Discriminator) نام دارد تلاش می‌کند نمونه‌های تولید شده از شبکه مولد را از داده‌های اصلی متمایز کند. رقابت بین این دو شبکه در نهایت باعث یادگیری بهتر و بهبود عملکرد هر دو می‌شود. در این روش شبکه می‌آموزد که چگونه از داده‌های آموزشی، داده‌های جدیدی پدید آورد، به‌طوری که از دید آماری داده‌های آموزشی یکسان ایجاد شوند. به عبارت دیگر، در رویکرد فوق داده‌هایی که برای آموزش استفاده می‌شوند و خروجی شبکه به لحاظ برخی ویژگی‌ها شبیه هستند. در شبکه‌های فوق وظیفه تولید خروجی بر عهده بخش مولد و وظیفه بررسی شباهت بر عهده متمایزکننده است.

1606683296_1_0.gif

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

شبکه مولد تخاصمی (GAN) رویکردی برای مدل‌سازی مولد با استفاده از روش‌های یادگیری عمیق (Deep Learning) مثل شبکه‌های عصبی پیچشی (Convolutional Neural Networks) است. مدل‌سازی مولد یک فعالیت نظارت نشده (Unsupervised Learning) در یادگیری ماشین است که شامل اکتشاف خودکار و یادگیری قواعد یا الگوهای موجود در داده‌های ورودی است. این‌کار به گونه‌ای انجام می‌شود که از مدل می‌توان برای تولید یا خروجی گرفتن نمونه‌های جدیدی از مجموعه داده اصلی استفاده کرد. به‌طور مثال، یک شبکه مولد تخاصمی که روی مجموعه داده تصاویر آموزش دیده باشد، قادر است تصاویر جدیدی را تولید کند که با داشتن ویژگی‌های واقع‌گرایانه مختلف توسط ناظر انسانی قابل باور باشند. در حالی که این شبکه‌ها به عنوان یک مدل مولد (Generative Model) برای یادگیری بدون ناظر معرفی شدند، اما امروزه این موضوع به اثبات رسیده که شبکه‌های مولد تخاصمی برای یادگیری نیمه نظارتی، یادگیری با ناظر و یادگیری تقویتی مفید و قابل استفاده هستند. شبکه‌های مولد تخاصمی راه‌حلی هوشمندانه برای آموزش یک مدل مولد به شمار می‌روند. شبکه‌های فوق این‌کار را با فرموله کردن مسئله به عنوان یک مسئله یادگیری نظارت شده با دو زیر مدل انجام می‌دهند. مدل مولد برای تولید نمونه‌های جدید، آموزش می‌بیند و  مدل متمایزگر تلاش می‌کند تا نمونه‌ها را به عنوان نمونه واقعی یا جعلی طبقه‌بندی کند. هر دو مدل با یکدیگر در یک بازی مجموع صفر تخاصمی آموزش داده می‌شوند و این روند تا زمانی ادامه پیدا می‌کند که مدل متمایزگر بالغ بر نیمی از دفعات فریب بخورد، بدین معنا که مدل مولد، نمونه‌های قابل باور تولید کرده است. امروزه شبکه‌های عصبی مولد پیشرفت‌های چشم‌گیری داشته‌اند و به ویژه در زمینه تبدیل تصویر به تصویر عملکرد قابل توجهی دارند. به‌طور مثال، می‌توان تصاویر تابستان را به زمستان، تصاویر روز را به شب و تولید تصاویر فوتورئالیستیک از اشیا، صحنه‌ها و افراد را به گونه‌ای ایجاد کرد که حتا انسان‌ها قادر به شناسایی تصاویر غیرواقعی نباشند. 

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

در یک مسئله یادگیری ماشین از یک مدل برای انجام پیش‌بینی و طراحی الگوریتم پیشگویانه استفاده می‌شود. برای انجام این‌کار به مجموعه داده‌های آموزشی نیاز داریم که برای آموزش یک مدل استفاده می‌شوند و ترکیبی از چند نمونه (Sample) هستند. هر یک از این نمونه‌ها یک متغیر ورودی (X) و برچسب کلاس (Y) دارند. مدل با مشاهده نمونه‌ها آموزش می‌بینید و در ادامه برای پیش‌بینی نمونه‌های جدید استفاده می‌شود، به‌طوری که در نهایت خروجی مدنظر کارشناسان را ارایه کند. رویکرد فوق شکل نظارت شده یادگیری (Supervised Form of Learning) نام دارد. از جمله مسائل یادگیری با ناظر باید به طبقه‌بندی (Classification) و رگرسیون (Regression) اشاره کرد و از الگوریتم‌های یادگیری نظارتی نیز باید به رگرسیون لجستیک (Logistic Regression) و جنگل تصادفی (Random Forest) اشاره کرد. دومین رویکرد قالب در این زمینه یادگیری بدون ناظر است که فقط متغیر ورودی (X) به مدل داده می‌شود و مسئله هیچ متغیر خروجی (y) ندارد. بنابراین، مدل با استخراج یا خلاصه‌سازی الگوهای موجود در داده‌ها ساخته می‌شود. هیچ اصلاح مدلی برای این نوع مدل‌ها انجام نمی‌شود و مدل چیزی را پیش‌بینی نمی‌کند.به بیان دقیق‌تر، این پارادایم هوشمند مبتنی بر رویکرد توصیفی یا بدون ناظر است. در این نوع رویکرد، فقط داده‌های ورودی وجود دارند و هدف یافتن الگوهای درست در میان داده‌ها است. این پارادایم عمدتا برای حل مسائل پیچیده استفاده می‌شود، زیرا در مسئله به وضوح اعلام نمی‌شود که مدل باید به دنبال چه نوع الگویی باشد و هیچ معیار ارزیابی خطای مشخصی وجود ندارد. به این پارادیم هوشمند شکل نظارت نشده یادگیری (Unsupervised Form of Learning) می‌گویند. از مسائل یادگیری نظارت نشده باید به خوشه‌بندی و مدل‌های مولد اشاره کرد. الگوریتم‌های K-Means و شبکه عصبی تخاصمی نیز در گروه الگوریتم‌های بدون نظارت قرار می‌گیرند. 

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

در یادگیری با ناظر، این احتمال وجود دارد که متخصصان به دنبال توسعه مدلی باشند که برچسب کلاس را با دریافت مثالی از متغیرهای ورودی پیش‌بینی کند. کار مدل‌سازی پیش‌بینی، طبقه‌بندی نام دارد. به این مدل طبقه‌بندی مدل‌سازی متمایزکننده (Discriminative Modeling) گفته می‌شود. به‌طوری که از داده‌های آموزشی برای یافتن تابع تمایز (f(x استفاده می‌شود که هر x در نتیجه ترکیب استنتاج و مرحله تصمیم در یک مسئله یادگیری منفرد، به شکل مستقیم به یک برچسب کلاس نگاشت می‌شود. در این حالت مدل باید مثال‌های متغیرهای ورودی را در کلاس‌ها متمایز کرده و تصمیم بگیرد که یک مثال دریافتی به چه دسته‌ای تعلق دارد. به‌طور معمول، مدل‌های یادگیری بدون ناظر که توزیع متغیرهای ورودی را خلاصه می‌کنند، عمدتا برای تولید نمونه‌های جدید در توزیع ورودی استفاده می‌شوند. به همین دلیل مدل‌های مولد نام دارند. به‌طور مثال، یک متغیر منفرد ممکن است یک توزیع شناخته شده مثل توزیع گوسی (Gaussian Distribution) داشته باشد. یک مدل مولد می‌تواند به شکل موثری این توزیع داده‌ها را خلاصه‌سازی کرده و برای تولید متغیرهای جدید قابل قبول در برازش (Fit) استفاده کند. در این حالت رویکردهایی که به‌شکل صریح یا ضمنی توزیع ورودی‌ها و خروجی‌ها را مدل می‌کنند، مدل‌های مولد نامیده می‌شوند، زیرا با نمونه‌گیری از آن‌ها نقاط داده مصنوعی در فضای ورودی تولید می‌شوند. یک مدل مولد کارآمد می‌تواند مثال‌های جدیدی تولید کند که نه تنها باورپذیر هستند، بلکه از مثال‌های واقعی دامنه مسئله نیز قابل تمایز نیستند. یکی از مثال‌های بارز در ارتباط با مدل‌های مولد، قضیه بیز ساده (Naive Bayes) است که اغلب به عنوان یک مدل متمایزگر استفاده می‌شود. به‌‌طور مثال، بیز ساده با خلاصه‌سازی توزیع احتمال هر متغیر ورودی و کلاس خروجی کار می‌کند. هنگامی که پیش‌بینی انجام شد، احتمال هر خروجی ممکن برای هر متغیر محاسبه می‌شود، احتمال‌های مستقل ترکیب می‌شوند و باورپذیرترین خروجی پیش‌بینی می‌شود. از مثال‌های دیگر در این زمینه باید به تخصیص پنهان دیریکله (Latent Dirichlet Allocation) و مدل آمیخته گاوسی (Gaussian Mixture Model) اشاره کرد. البته روش‌های یادگیری عمیق را نیز می‌توان به عنوان مدل‌های مولد توصیف کرد. از مثال‌های رایج در این زمینه باید به ماشین بولتزمن محدود (Restricted Boltzmann Machine) و شبکه باور عمیق (Deep Belief Network) اشاره کرد. از الگوریتم‌های مدل‌سازی مولد یادگیری عمیق مطرح نیز باید به خود کدگذار متغیر (Variational Autoencoder) و شبکه عصبی مولد (GAN) اشاره کرد.

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

شبکه عصبی مولد GAN سرنام Generative Adversarial Networks مدل مولد مبتنی بر یادگیری عمیق است. این شبکه‌ها برای آموزش یک مدل مولد استفاده می‌شوند و به دلیل مصرف انرژی کمتری که دارند رایج‌تر از مدل‌های یادگیری عمیق هستند. معماری GAN اولین بار در سال 2014 میلادی در مقاله ایان گوفلو با عنوان شبکه‌های مولد تخاصمی به ادبیات دنیای هوش مصنوعی وارد شدند. یک رویکرد استاندارد که شبکه‌های مولد تخاصمی پیچشی عمیق (Deep Convolutional Generative Adversarial Networks DCGAN) نام دارد زمینه‌ساز ظهور مدل‌های پایدارتری شدند که بعدها توسط الک رادفورد (Alec Radford) در مقاله‌ای با عنوان یادگیری ارائه نظارت نشده با شبکه‌های مولد تخاصمی پیچشی عمیق (Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks) در سال 2016 میلادی به دنیای فناوری وارد شدند. در بخشی از این مقاله آمده است که بیشتر شبکه‌های مولد تخاصمی به‌طور کلی بر پایه معماری DCGAN هستند. معماری مدل GAN شامل دو زیر مدل است: یک مدل مولد برای تولید نمونه‌های جدید است و یک مدل متمایزگر برای دسته‌بندی نمونه‌های تولید شده در دو دسته واقعی از دامنه و جعلی است. مولد، مدلی است که برای تولید مثال‌های قابل باور جدید از دامنه مسئله استفاده می‌شود، در حالی که متمایزگر، مدلی است که برای دسته‌بندی مثال‌ها به عنوان واقعی یا جعلی استفاده می‌شوند. در مجموع باید بگوییم که شبکه‌های عصبی مولد بر مبنای سناریوهای نظریه بازی عمل می‌کنند. در آن‌ها، شبکه مولد باید با یک شبکه متخاصم رقابت کند. شبکه مولد به‌شکل مستقیم نمونه‌ها را تولید می‌کند. دشمن آن، شبکه متمایزگر، تلاش می‌کند تا بین نمونه‌های گرفته شده از مجموعه داده آموزشی و نمونه‌های تولید شده توسط مولد تمایز قائل شود.

مدل مولد

کاری که یک مدل مولد انجام می‌دهد این است که یک بردار تصادفی با طول ثابت را به عنوان ورودی دریافت و نمونه‌ها را در دامنه تولید کند. بردار به‌شکل تصادفی از یک توزیع گوسی اقتباس شده و برای تغذیه در اختیار فرایند مولد قرار می‌گیرد. پس از آموزش دادن، نقاط در این فضای برداری چندبعدی متناظر با نقاط دامنه در نظر گرفته می‌شوند تا یک ارائه فشرده از توزیع داده‌ها به‌دست آید. فضای برداری با عنوان فضای پنهان (Latent Space) یا یک فضای برداری متشکل از متغیرهای پنهان (Latent Variables) نامیده می‌شود. متغیرهای پنهان (Hidden Variables) متغیرهایی هستند که برای دامنه اهمیت زیادی دارند، اما به‌شکل مستقیم قابل مشاهده نیستند. به‌طور معمول، از متغیرهای پنهان یا فضای پنهان با عنوان تصویر (Projection) یا فشرده‌سازی (Compression) توزیع نام برده می‌شود. این مورد، فضای پنهانی است که فشرده‌سازی یا مفهوم سطح بالا از داده‌های خام مشاهده شده مانند توزیع داده‌های ورودی را فراهم می‌کند. در شبکه‌های مولد تخاصمی، مدل مولد، به نقاط در فضای پنهان معنا می‌دهد، به‌گونه‌ای که نقاط جدیدی که برگرفته از فضای پنهان هستند را می‌توان برای مدل مولد به عنوان ورودی قرار داد و از آن‌ها برای تولید خروجی‌های جدید و متفاوت استفاده کرد.

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

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

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

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

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

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

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

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

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

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟