GAN یک معماری یادگیری ماشین نسبتاً جدید برای شبکههای عصبی است که توسط ایان گودفلو و همکارانش در دانشگاه مونترال در سال 2014 پیشگام شد. برای درک کامل GANها، باید تفاوت بین ماشینهای یادگیری تحت نظارت و بدون نظارت را درک کرد. ماشینهای تحت نظارت بر اساس مقادیر زیادی از نمونههای "برچسب" آموزش و آزمایش میشوند. به عبارت دیگر، آنها به مجموعه دادههای بزرگی نیاز دارند که حاوی «ویژگیها» یا «پیشبینیکنندهها» و همچنین برچسبهای مربوط به آن باشد. به عنوان مثال، یک موتور دستهبند تصویر نظارتشده به مجموعهای از تصاویر با برچسبهای صحیح (مانند ماشینها، گلها، میزها و...) نیاز دارد. یادگیرندگان بدون نظارت این تجملات را ندارند و در حین کار یاد میگیرند. آنها از اشتباهات درس میگیرند و سعی میکنند در آینده دچار اشتباهات مشابه نشوند.
نقطه ضعف ماشینهای نظارت شده نیاز آنها به مقادیر زیادی از دادههای برچسبدار است. برچسب زدن تعداد زیادی نمونه پرهزینه و زمانبر است. یادگیرندگان بدون نظارت این عیب را ندارند اما دقت کمتری دارند. طبیعتاً انگیزه قوی برای بهبود ماشینهای بدون نظارت و کاهش اتکا به ماشینهای تحت نظارت وجود دارد.
دومین مفهوم مفیدی که باید به خاطر بسپارید، مفهوم "مدلهای مولد" است. اینها مدلهایی هستند که با ایجاد محتملترین نتیجه با توجه به دنبالهای از نمونههای ورودی، پیشبینی میکنند. به عنوان مثال، یک مدل مولد میتواند فریم ویدیویی احتمالی بعدی را بر اساس فریمهای قبلی ایجاد کند. مثال دیگر موتورهای جستجو هستند که سعی میکنند کلمه احتمالی بعدی را قبل از وارد شدن توسط کاربر پیشبینی کنند.
با در نظر گرفتن این دو مفهوم، اکنون میتوانیم با GANها مقابله کنیم. شما میتوانید یک GAN را به عنوان یک معماری جدید برای یک شبکه عصبی بدون نظارت در نظر بگیرید که قادر به دستیابی به عملکرد بسیار بهتر در مقایسه با شبکههای سنتی است. به بیان دقیقتر، GANها روش جدیدی برای آموزش شبکه عصبی هستند. GANها شامل نه یک بلکه دو شبکه مستقل هستند که به طور جداگانه کار میکنند و به عنوان دشمن عمل میکنند. اولین شبکه عصبی Discriminator (D) نامیده میشود و شبکهای است که باید تحت آموزش قرار گیرد. D دستهبندیاست که پس از اتمام تمرین، بلند کردن سنگین را در طول عملیات عادی انجام میدهد. شبکه دوم Generaitor (G) نام دارد و وظیفه تولید نمونههای تصادفی شبیه نمونههای واقعی را دارد که با پیچش آنها را به عنوان نمونههای جعلی تبدیل میکند.
به عنوان مثال، دستهبند تصویر D را در نظر بگیرید که برای شناسایی مجموعهای از تصاویر حیوانات مختلف طراحی شده است. اکنون یک دشمن (G) را در نظر بگیرید که مأموریت دارد D را با استفاده از تصاویری که به دقت ساخته شدهاند، که تقریبا درست به نظر میرسند اما نه کاملاً درست، فریب دهد. این کار با انتخاب یک نمونه قانونی به صورت تصادفی از مجموعه آموزشی (فضای پنهان) و ترکیب یک تصویر جدید با تغییر تصادفی ویژگیهای آن (با افزودن نویز تصادفی) انجام میشود. به عنوان مثال، G میتواند تصویر یک گربه را واکشی کند و میتواند یک چشم اضافی به تصویر اضافه کند و آن را به یک نمونه غلط تبدیل کند. نتیجه یک تصویر بسیار شبیه به یک گربه معمولی به استثنای تعداد چشم است.
در طول آموزش، D با ترکیبی تصادفی از تصاویر قانونی از دادههای آموزشی و همچنین تصاویر جعلی تولید شده توسط G ارائه میشود. وظیفه آن شناسایی ورودیهای صحیح و جعلی است. بر اساس نتیجه، هر دو ماشین سعی میکنند پارامترهای خود را دقیق تنظیم کنند و در کاری که انجام میدهند بهتر شوند. اگر D پیشبینی درستی انجام دهد، G پارامترهای خود را بهروزرسانی میکند تا نمونههای جعلی بهتری تولید کند تا D را فریب دهد. اگر پیشبینی D نادرست باشد، سعی میکند از اشتباه خود درس بگیرد تا از اشتباهات مشابه در آینده جلوگیری کند. پاداش خالص D تعداد پیشبینیهای درست و پاداش برای G خطاهای عدد D است. این روند تا زمانی ادامه مییابد که تعادل برقرار شود و آموزش D بهینه شود.
یکی از نقاط ضعف GANهای اولیه پایداری بود، اما ما شاهد کارهای بسیار امیدوارکنندهای بودیم که میتواند این مسئله را کاهش دهد (جزئیات خارج از محدوده این پست است). در یک قیاس، GANها مانند محیط سیاسی یک کشور با دو حزب سیاسی رقیب عمل میکنند. هر یک از طرفین به طور مداوم تلاش میکنند تا نقاط ضعف خود را بهبود بخشند در حالی که سعی میکنند آسیبپذیریهای دشمن خود را بیابند و از آنها برای پیشبرد برنامه خود استفاده کنند. با گذشت زمان هر دو طرف اپراتورهای بهتری میشوند.
در مورد تاثیر RL و GAN بر نیمه هادیها، هر دو معماری جدید به طور قابل توجهی به گیتهای بیشتر، سیکلهای CPU بیشتر و حافظه بیشتر نیاز دارند. چیزی برای شکایت نیست