شبکه عصبی GAN چیست؟ + انواع آن
شبکه عصبی GAN مخفف واژه انگلیسی Generative Adversarial Networks و به معنای شبکههای مولد تخاصمی است. از اسم این شبکه عصبی تعجب نکنید! آنها نوعی از سیستمهای یادگیری ماشین هستند که در سالهای اخیر دنیای هوش مصنوعی، پیشرفت و فراگیری چشمگیری داشتند.
به جرأت میتوان گفت، شبکه عصبی GAN یکی از محبوبترین فناوریهای حوزه هوش مصنوعی است و در ساخت ویدیو، تصاویر و صداها گاهی بهقدری پیشرفته و حرفهای عمل میکند که خروجی آن را از یک پدیده رئال و واقعی بهسختی میتوان تشخیص داد. در دو مقاله قبلی درباره شبکه VGG و همچنین شبکه عصبی MLP به طور کامل صحبت کردیم و در این مقاله خواهیم دید که شبکه عصبی GAN چیست و با انواع آن آشنا خواهیم شد.
شبکه عصبی GAN چیست؟
اگر بپرسید شبکه عصبی GAN چیست؟ به شما پاسخ خواهند داد که نوعی سیستم یا همان ماشین یادگیری است. همینجا متوجه میشوید که با یک فناوری یا سیستم در دنیای هوش مصنوعیها مواجه هستید. اما چرا آن را تخاصمی مینامند؟ این شبکه عصبی با چه پدیدهای در خصومت یا جنگ است؟
شبکه عصبی GAN یک چارچوب یادگیری ماشین است که خودش از دو شبکه عصبی یادگیرنده تشکیل شده که با هم در رقابت هستند. پس واژه تخاصمی از رفتار این دو شبکه عصبی نسبت به یکدیگر الهام گرفته است. اما چرا این دو شبکه با هم در یادگیری رقابت میکنند؟
گفتیم که شبکه عصبی GAN از دو شبکه یادگیرنده تشکیل شده است:
- شبکه مولد (Generator)
- شبکه متمایزکننده (Discriminator)
شبکه مولد وظیفه تولید دادههای مصنوعی را برعهده دارد. او باید صداها، متنها، تصاویر و ویدیوهای مصنوعی تولید کند. در مقابل، شبکه متمایزکننده وظیفه دارد تشخیص دهد کدام داده جعلی و کدام داده واقعی است.
جنگ یا خصومت بین این دو شبکه بر سر این است که یکی از آنها تلاش میکند دادههای جعلی بسازد و آن یکی را فریب دهد و آن یکی هم تلاش میکند دادههای جعلی را از دادههای واقعی تشخیص دهد. شگفتی این فناوری در همین شیوه برقراری ارتباط میان این دو شبکه است. این ماشین یادگیرنده بهمرور زمان قویتر میشود و خودش از خودش یاد میگیرد و پیشرفت میکند.
تاریخچه شبکه عصبی GAN
اما ایده ساخت چنین پدیده عجیب و پرکاربردی در صنعت هوش مصنوعی، اولین بار چه زمانی و به ذهن چه کسی خطور کرد؟
شاید برایتان جالب باشد بدانید شبکه عصبی GAN بیش از ۱۰ سال سن دارد و تاریخ تولد آن در یکی از روزهای سال ۲۰۱۴ بوده است. سازنده آن Ian Goodfellow و همکارانش بودند که اولین بار ایده نوآورانه شبکه عصبی GAN را در مقالهای با عنوان Generative Adversarial Nets مطرح کردند. این ایده که دو شبکه یادگیرنده منجر به بهبود عملکرد یکدیگر شوند به مثابه انقلابی در صنعت هوش مصنوعی و ماشینهای یادگیرنده بود.
آشنایی با ساختار کلی شبکه عصبی GAN
گفتیم که شبکه عصبی GAN از دو بخش یا دقیقتر بگوییم: دو شبکه یادگیرنده تشکیل شده است.
حالا ببینیم که ساختار کلی این دو شبکه چیست و چطور کار میکند.
شبکه یادگیرنده مولد یا Generator
این شبکه از یک نویز تصادفی شروع میکند و تلاشش این است که دادههای معنادار و تا جای ممکن شبیه به دادههای واقعی تولید کند. شبکه مولد یک هدف دارد و آن هم گمراه کردن شبکه متمایزکننده است.
ورودی، یک بردار نویز نرمال تصادفی است که شبکه مولد آن را انتخاب میکند. این بردار نویز هرچیزی میتواند باشد مثلا ۱۰۰ عدد تصادفی با توزیع نرمال و یکنواخت. اما هر بردار نویزی که بهعنوان ورودب انتخاب شود حتما خروجی شبیه به دنیای واقعی ارائه میدهد، مثلا یک تصویر ساختگی که بسیار شبیه یک تصویر عکاسی شده است. شبکه مولد در دسته شبکههای عصبی پیشخور (FeedForward) یا کانولوشنی (Convolutional) قرار دارند و داده نویز را به تدریج به ساختار هدف تبدیل میکنند.
شبکه یادگیرنده متمایزکننده یا Discriminator
در مقابل شبکه یادگیرنده بهعنوان ورودی یک داده واقعی یا یک داده مصنوعی ساخته شده توسط شبکه مولد را دریافت میکند. بهعنوان خروجی چه چیزی ارائه میدهد؟ یک عدد بین ۰ و ۱.
این عدد نشان میدهد که احتمال آنکه ورودی دریافت شده واقعی باشد چقدر است. شبکه متمایزکننده تنها یک هدف دارد و آن هم تشخیص داده اصل و واقعی از داده جعلی و ساختگی است. متمایزکننده هم معمولاً یک شبکه کانولوشنی است که ویژگیهای ورودی را استخراج و در نهایت با یک لایه Fully Connected، خروجی احتمالی را تولید میکند.
آشنایی با نحوه کار شبکه عصبی GAN
ساختار شبکه عصبی GAN پیچیده به نظر میآید؟ پس حتما سوال این است که این ساختار پیچیده چطور کار میکند، فرایند آموزش را طی میکند و خودش را بهبود میدهد؟
این یک بازی دونفره min-max است! یک بازی که با حرکت اول شبکه متمایزکننده آغاز میشود، با واکنش شبکه مولد ادامه مییابد و سپس در سیکل یا لوپ تکرار قرار میگیرد.
مرحله اول: شبکه متمایزکننده بازی را شروع میکند.
برای شروع شبکه متمایزکننده تعدادی داده واقعی را از DataSet دریافت میکند. به آنها تگ واقعی یعنی برچسب ۱ میزند. این اولین آموزشی است که این شبکه میبیند.
حالا خروجی مولد را هم میگیرد و به آن تگ جعلی یا همان برچسب 0 میزند. پس تا اینجا شبکه متمایزکننده توانست فرق بین دو داده را بشناسد و یاد بگیرد.
مرحله دوم: شبکه مولد بازی را ادامه میدهد.
حالا نوبت مولد است. یک نویز تصادفی به مولد داده میشود تا بتواند یک نمونه جعلی بسازد. این نمونهها به متمایزکننده داده میشود تا فرایند تشخیص را طی کند. برای مولد خوشایند این است که متمایزکننده خروجی ۱ بدهد؛ یعنی داده جعلی مولد را به اشتباه یک داده واقعی تشخیص بدهد. اینجا جایی است که مولد موفق شده است.
مرحله سوم: چرخه رقابت در لوپ تکرار قرار میگیرد.
این چرخه تکرار میشود. هربار متمایزکننده تشخیص درست بدهد، مولد مجبور است خودش را بهبود دهد و خروجی نزدیکتری به واقعیت بسازد. هربار هم که مولد موفق شود متمایزکننده را فریب دهد، متمایزکننده راهی جز بهبود فرایند تشخیص ندارد.
این چرخه رقابت آنقدر تکرار میشود تا متمایزکننده در تشخیص داده جعلی از واقعی بسیار ناتوان شود و نزدیک به پنجاه درصد دادههای جعلی را به اشتباه واقعی تشخیص دهد.
شبکه عصبی GAN به زبان ریاضی
بیان اتفاقی که بین دو شبکه یادگیرنده سازنده شبکه عصبی GAN رقم میخورد به زبان ریاضی بسیار گویاتر و شفافتر از توضیح تشریحی- تفسیری آن است.
تابع هدف شبکه عصبی GAN بهصورت زیر است:
در این تابع اطلاعات به شرح زیر هستند:
- D احتمال واقعی بودن x را مشخص میکند.
- G داده z را تولید میکند.
- عبارت p توزیع داده واقعی و p_z توزیع نویز ورودی مولد است.
چالشهای فرآیند آموزش شبکه عصبی GAN
آموزش شبکه عصبی GAN به نظر امری ساده میآید، مراحل زير را طی میکنید و شبکه آموزش میبیند:
۱. یک دسته واقعی داده به متمایزکننده میدهید و خروجی ۱ یعنی تشخیص واقعی بودن را دریافت میکنید.
۲. حالا از مولد میخواهید داده جعلی تولید کند و آنها را نیز به متمایزکننده میدهید تا تشخیص دهد.
۳. خطای متمایزکننده محاسبه و وزنهای آن بهروزرسانی میشود.
۴. مولد هم بر اساس این خطا و وزنها آموزش میبیند که چطور فریبدهنده بهتری باشد.
۵. این فرایند را تا رسیدن به تعادل یا همان نتیجه پنجاه درصدی ادامه میدهیم.
به نظر ساده است، درسته؟ اما جالب است بدانید زمان یادگیری این شبکه سروکله چالشهای بسیاری پیدا میشود. برخی از این چالشها به شرح زیر هستند:
۱. مولد شروع به تولید نمونههای تکراری میکند (Mode Collapse)
اتفاقی که در این چالش میفتد این است که مولد بهجای اینکه نمونههایی شبیه به کل نمونههای واقعی دیتاست ارائه دهد، فقط روی چند نمونه خاص متمرکز و اصطلاحا بایاس میشود. دلیل این اتفاق هم این است که مثلا وقتی سه تصویر پرنده، گربه و سگ را به متمایزکننده میدهیم، مولد میبیند که متمایزکننده بیشتر در تشخیص گربه با مشکل مواجه میشود، پس بهجای اینکه ادامه فرایند را با هر سه تصویر متنوع گربه، سگ و پرنده پیش ببرد، دائم روی تصویر گربه متمرکز میشود.
۲. آموزش ناپایدار میشود، فرایند آن از فلوی پیشبینیشده خارج میشود (Training Instability)
این اتفاق وقتی رخ میدهد که مولد بهجای اینکه آرام آرام و مداوم آموزش ببیند، نوسان میکند و روند را بهم میریزد. این اتفاق موجب بهم خوردن تعادل روند یادگیری بین مولد و متمایزکننده میشود.
۳. گرادیان در نتیجه ناپایداری یا تغییرات ناگهانی و بیارتباط، از بین میرود (Gradient Vanishing)
گرادیان در شبکههای عصبی بهمعنی سیگنال خطا است. این سیگنال موجب بهروزرسانی وزنها میشود. اگر این سیگنال خطا خیلی کوچک باشد، گرادیان از بین میرود و یادگیری متوقف میشود.
بیایید مثال سادهای که به درک بهتر این موضوع کمک میکند را ببینیم:
فرض کنید شما در حال یادگیری نقاشی هستید. تکنیک را مطابق آنچه از معلم خود یاد گرفتهاید اجرا میکنید و بازخوردی که از معلم خود میگیرید فقط این است: اشتباه انجام دادی!
اکنون شما فقط می دانید که نقاشی شما اشتباه است اما چیزی بیشتر نمیداند و یادگیری شما افزایش نیافته. نمیدانید چه بخشی از این نقاشی اشتباه است پس فرایند یادگیری شما متوقف میشود. این دقیقا اتفاقی است که وقتی گرادیان از بین میرود رخ میدهد.
آشنایی با انواع شبکه عصبی GAN
وقتی شبکه عصبی GAN متولد شد، کاربران صنایع مختلف خیلی سریع متوجه شدند که میتواننپ بسیار از فرایندهایشان را به کمک این هوش مصنوعی، خودکارسازی و بهینهسازی کنند؛ پس انواع شبکه عصبی GAN برای کاربردهای مختلف طراحی و ارائه شد.
8.1. Vanilla GAN
نسخه اولیه و پایه شبکه عصبی GAN است، همان ایده ابتدایی که در مقاله اصلی سال ۲۰۱۴ معرفی شده بود.
8.2.(Conditional GAN (cGAN
در این نوع از شبکه عصبی GAN علاوه بر نویز، یک شرط (مثلا برچسب کلاس) هم به مولد و متمایزکننده داده میشود.
8.3. (Deep Convolutional GAN (DCGAN
این نوع از شبکه عصبی GAN از لایههای کانولوشنی عمیق برای بهبود کیفیت تصاویر تولیدی استفاده میکند.
8.4. (Super-Resolution GAN (SRGAN
از این نوع شبکه عصبی GAN برای افزایش وضوح تصاویر استفاده میشود.
8.5. CycleGAN
برای تبدیل یک تصویر به همان تصویر در حالتی دیگر (مثلا تبدیل یک تصویر تابستانی به همان تصویر اما با ورژن زمستانی) بدون نیاز به دادههای جفتشده، از این نوع شبکه عصبی GAN استفاده میشود.
8.6. StyleGAN
از این نوع شبکه عصبی GAN برای تولید تصاویر بسیار واقعی از چهرهها و اشیاء استفاده میشود.
8.7. Progressive GAN
این شبکه عصبی GAN قادر است آموزش تدریجی با افزایش رزولوشن ببیند.
8.8. BigGAN
برای تولید تصاویر با کیفیت بسیار بالا در مقیاس بزرگ از اینو نوع استفاده میشود.
8.9. StackGAN
برای تولید تصاویر فوتورئالیستی از توضیحات یا پرامپت متنی، از این نوع شبکه عصبی GAN استفاده میشود.
آشنایی با کاربردهای شبکه عصبی GAN
قطعا تا اینجای کار، متوجه کاربردی بودن شبکه عصبی GAN در بسیاری از صنایع شدهاید، کار سختی نیست چون همه ما در هر حوزه کاری که باشیم حتما زمانهایی بوده که نیاز به ساخت یک پدیده مصنوعی بسیار شبیه به پدیده طبیعی داشتیم، یا نیاز داشتیم فرق اصل و جعل بودن موضوعی را تشخیص دهیم. برخی از نمونه کاربردهای شبکه عصبی GAN در دنیای واقعی این موارد هستند:
- تولید تصاویر واقعی از چهرههای خیالی که وجود ندارند
- بازسازی عکسها و تصاویر چاپی یا دیجیتال قدیمی یا آسیبدیده
- ساخت و تولید انیمیشن و ویدیو
- طراحی و ساخت محصولات مختلف مثل لباس، جعبههای بستهبندی و…
- ساخت واقعیت مجازی، ساخت دنیای بازیها و…
- افزایش و بهبود کیفیت تصاویر ماهوارهای
- تولید داده برای آموزش سایز شبکههای عصبی یادگیرنده
مزایا و معایب شبکه عصبی GAN
حتما متوجه شدهاید که شبکه عصبی GAN چه مزایای کاربردی دارد، مواردی مثل:
- توانایی تولید دادههای بسیار واقعی
- کاربرد در حوزههای مختلف و هوشمندسازی فرایندهای گستره عظیمی از صنایع
- مسبب پیشرفت سریع دنیای هوش مصنوعیها و جهان فناوری هم بهلحاظ کاربردی هم بهلحاظ آموزش سایر شبکههای عصبی
اما باید بگوییم این شبکه عصبی معایب یا بهتر بگوییم، محدودیتهای خاص خودش را هم دارد، مثلا اینکه:
- آموزش آن چالشبرانگیز است.
- منابع محاسباتی زیادی نیاز دارد و این مصرف بالا سازوکار آن را پیچیده کرده است.
- امکان سوء استفاده از آن و آموزش اشتباه عمدی در آن زیاد است، این کار برای جعلکنندگان اسناد و پول، یک فرصت سوء استفاده است تا Deepfake بسازند.
جمعبندی و نتیجهگیری
شبکه عصبی GAN انقلابی در صنعت دادههای مصنوعی است. این روش نه تنها به خودیخود در حال ارائه کاربردهای زیادی به صنایع مختلف است، بلکه در آینده نه چندان دور سبب رشد و پیشرفت سایر شبکههای عصبی هم خواهد شد. این شبکه هم میتواند شبکههای یادگیرنده دیگر را آموزش دهد هم میتواند با آنها تلفیق و ترکیب شود.






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