GAN ها سعی می کنند یک توزیع احتمال را تکرار کنند. بنابراین آنها باید از توابع از دست دادن استفاده کنند که فاصله بین توزیع داده های تولید شده توسط GAN و توزیع داده های واقعی را منعکس کند.
چگونه تفاوت بین دو توزیع را در توابع از دست دادن GAN دریافت می کنید؟ این سوال یک حوزه تحقیق فعال است و رویکردهای زیادی پیشنهاد شده است. ما در اینجا به دو تابع متداول از دست دادن GAN می پردازیم که هر دو در TF-GAN پیاده سازی شده اند:
- حداقل تلفات : تابع ضرر استفاده شده در مقاله ای که GAN ها را معرفی کرده است.
- ضرر Wasserstein : تابع تلفات پیشفرض برای برآوردگرهای TF-GAN. اولین بار در مقاله ای در سال 2017 توضیح داده شد.
TF-GAN بسیاری از توابع ضرر دیگر را نیز پیاده سازی می کند.
یک تابع ضرر یا دو؟
یک GAN میتواند دو عملکرد از دست دادن داشته باشد: یکی برای آموزش ژنراتور و دیگری برای آموزش تفکیککننده. چگونه دو تابع ضرر می توانند با هم کار کنند تا اندازه گیری فاصله بین توزیع های احتمال را منعکس کنند؟
در طرحهای ضرری که در اینجا به آنها نگاه خواهیم کرد، تلفات مولد و تمایز از یک اندازهگیری منفرد از فاصله بین توزیعهای احتمال ناشی میشوند. با این حال، در هر دوی این طرحها، مولد تنها میتواند بر یک عبارت در اندازهگیری فاصله تأثیر بگذارد: عبارتی که توزیع دادههای جعلی را منعکس میکند. بنابراین در طول آموزش ژنراتور، عبارت دیگر را حذف می کنیم، که منعکس کننده توزیع داده های واقعی است.
تلفات مولد و تمایز در نهایت متفاوت به نظر می رسند، حتی اگر از یک فرمول منشا گرفته شوند.
حداقل ضرر
در مقاله ای که GAN ها را معرفی کرد، مولد سعی می کند تابع زیر را به حداقل برساند در حالی که تمایز کننده سعی می کند آن را به حداکثر برساند:
در این تابع:
-
D(x)
تخمین متمایزکننده از احتمال واقعی بودن نمونه داده واقعی x است. - E x مقدار مورد انتظار در تمام نمونه های داده واقعی است.
-
G(z)
خروجی ژنراتور است که نویز z داده می شود. -
D(G(z))
تخمین متمایزکننده از احتمال واقعی بودن یک نمونه جعلی است. - E z مقدار مورد انتظار برای تمام ورودی های تصادفی ژنراتور است (در واقع، مقدار مورد انتظار در تمام نمونه های جعلی تولید شده G(z)).
- فرمول از آنتروپی متقاطع بین توزیع واقعی و تولید شده ناشی می شود.
مولد نمی تواند مستقیماً بر عبارت log(D(x))
در تابع تأثیر بگذارد، بنابراین، برای مولد، کمینه سازی تلفات معادل کمینه سازی log(1 - D(G(z)))
است.
در TF-GAN، برای اجرای این تابع ضرر، minimax_discriminator_loss و minimax_generator_loss را ببینید.
حداقل ضرر اصلاح شده
مقاله اصلی GAN اشاره میکند که تابع کمینه تلفات فوق میتواند باعث شود که GAN در مراحل اولیه آموزش GAN گیر کند، زمانی که کار تفکیککننده بسیار آسان است. بنابراین مقاله پیشنهاد میکند که تلفات ژنراتور را اصلاح کنید تا ژنراتور سعی کند log D(G(z))
را به حداکثر برساند.
در TF-GAN، برای اجرای این اصلاح به modified_generator_loss مراجعه کنید.
باخت واسرشتاین
بهطور پیشفرض، TF-GAN از اتلاف Wasserstein استفاده میکند.
این تابع از دست دادن به اصلاح طرح GAN (به نام "Wasserstein GAN" یا "WGAN") بستگی دارد که در آن تمایزکننده در واقع نمونه ها را طبقه بندی نمی کند. برای هر نمونه یک عدد خروجی می دهد. این عدد نباید کمتر از یک یا بزرگتر از 0 باشد، بنابراین نمیتوانیم از 0.5 به عنوان آستانه برای تصمیمگیری واقعی یا جعلی بودن یک نمونه استفاده کنیم. آموزش تفکیک کننده فقط سعی می کند خروجی را برای نمونه های واقعی بزرگتر از نمونه های جعلی کند.
از آنجایی که واقعا نمی تواند بین واقعی و جعلی تمایز قائل شود، تمایزکننده WGAN در واقع به جای «ممیزکننده»، «منتقد» نامیده می شود. این تمایز اهمیت نظری دارد، اما برای اهداف عملی، میتوانیم آن را بهعنوان تصدیق این موضوع در نظر بگیریم که ورودیهای توابع ضرر نباید احتمالات باشند.
توابع از دست دادن خود به طرز فریبنده ای ساده هستند:
ضرر بحرانی: D(x) - D(G(z))
تمایزگر سعی می کند این تابع را به حداکثر برساند. به عبارت دیگر، سعی می کند تفاوت بین خروجی خود را در نمونه های واقعی و خروجی خود را در نمونه های جعلی به حداکثر برساند.
تلفات ژنراتور: D(G(z))
ژنراتور سعی می کند این عملکرد را به حداکثر برساند. به عبارت دیگر، سعی می کند خروجی تمایزکننده را برای نمونه های جعلی خود به حداکثر برساند.
در این توابع:
-
D(x)
خروجی منتقد برای یک نمونه واقعی است. -
G(z)
خروجی ژنراتور است که نویز z داده می شود. -
D(G(z))
خروجی منتقد برای یک نمونه جعلی است. - خروجی منتقد D نباید بین 1 و 0 باشد.
- فرمول ها از فاصله حرکت دهنده زمین بین توزیع های واقعی و تولید شده به دست می آیند.
در TF-GAN، برای پیاده سازی، به wasserstein_generator_loss و wasserstein_discriminator_loss مراجعه کنید.
الزامات
توجیه نظری برای Wasserstein GAN (یا WGAN) مستلزم آن است که وزنها در سراسر GAN بریده شوند تا در یک محدوده محدود باقی بمانند.
فواید
Wasserstein GANها نسبت به GANهای مبتنی بر minimax کمتر در برابر گیر افتادن آسیبپذیر هستند و از مشکلات ناشی از ناپدید شدن گرادیان جلوگیری میکنند. فاصله حرکت دهنده زمین همچنین دارای مزیت این است که یک متریک واقعی است: اندازه گیری فاصله در فضای توزیع احتمال. آنتروپی متقاطع به این معنا یک معیار نیست.