پیش‌نویس:شبکه مولد تخاصمی (Wasserstein GAN)

از ویکی‌پدیا، دانشنامهٔ آزاد

شبکه مولد تخاصمی (Wasserstein GAN)[ویرایش]

شبکه متخاصم مولد Wasserstein Generative Adversarial Network (WGAN) نوعی از شبکه متخاصم مولد (GAN) است که در سال 2017 پیشنهاد شد و هدف آن بهبود پایداری در یادگیری، خلاص شدن از مشکلاتی مانند فروپاشی حالت (به انگلیسی: Mode Collapse) و ارائه منحنی‌های یادگیری معنادار است که برای اشکال زدایی و جستجو فراپارامترها (به انگلیسی: Hyperparameters) مفید هستند. ".[۱][۲]

در مقایسه با شبکه‌های تخاصمی اولیه، WGAN سیگنال‌های راهنمای بهتری برای یادگیری مولد (generator) فراهم میکند و این باعث میشود زمانی که مولد در حال یادگیری توزیع هایی با ابعاد بالاست یادگیری پایدارتر باشد.

انگیزه[ویرایش]

بازی GAN[ویرایش]

شبکه های تخاصمی اولیه بر پایه بازی GAN هستند، یک بازی جمع صفر (zero sum) با دو بازیکن: مولد و تفکیک کننده (discriminator). این بازی بر روی یک فضای احتمال به صورت تعریف میشود. مجموعه استراتژی های مولد، مجموعه تمام احتمالات بر روی است و مجموعه استراتژی های تفکیک کننده به صورت تابع است. تابع هدف این بازی به صورت زیر است:

مولد در تلاش برای کمینه کردن تابع فوق و تفکیک کننده به دنبال بیشینه کردن آن است. در بازی GAN یک نظریه پایه می گوید:

نظریه (تفکیک کننده بهینه، واگرایی جیسون-شنون را محاسبه میکند) — برای هر استراتژی ثابت تولیدکننده , بهترین پاسخ را در نظر میگیریم, در این صورت

که مشتق برابر با Radon–Nikodym derivative, و همان Jensen–Shannon divergence است.

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

از آنجایی که ما به نیاز داریم، تابع تفکیک کننده به تنهایی برایمان ارزشی نداشته و فقط نسبت احتمال بین توزیع مولد و توزیع مرجع (Reference) را محاسبه میکند. در حالت تعادل، خروجی تفکیک کننده همواره برابر با است که در واقع انگار تفکیک کننده تسلیم شده است.

در بازی GAN اگر استراتژی مولد را ثابت نگه داریم و مرحله به مرحله تفکیک کننده را بهبود ببخشیم، با داشتن بعنوان حرکت تفکیک کننده در زمان ، آنگاه در حالت ایده آل خواهیم داشت:

که یعنی تفکیک کننده به دنبال حد پایین است.

فاصله واسرستاین (Wasserstein distance)[ویرایش]

همانطور که دیدیم، تفکیک کننده نقش یک منتقد را دارد و به مولد اعلام می‌کند "چقدر از حقیقت دور است" که تعریف "دور" همان واگرایی جیسون-شنون است.

طبیعتا، امکان تعریف معیارهای دیگری از دور بودن مطرح می شود. امروزه معیارهای زیادی برای انتخاب وجود دارد مانند خانواده f-divergence، که به ما f-GAN را می دهد.[۳]

به همین صورت WGAN با استفاده از معیار واسرستاین (Wasserstein metric)، که در قضیه نمایش دوگانه صدق می کند، به دست می آید.

نظریه (دوگانگی کانتوروویچ-روبنشتاین (Kantorovich-Rubenstein duality)) — زمانی که فضای احتمالی یک فضای متریک باشد، آنگاه برای هر ثابت,

که همان Lipschitz norm است.

اثبات این نظریه را می توانید در صفحه اصلی Wasserstein metric مشاهده کنید.

تعریف[ویرایش]

باتوجه به دوگانگی کانتوروویچ-روبنشتاین، تعریف WGAN به صورت زیر است:

یک WGAN به صورت یک فضای احتمال تعریف میشود, که یک فضای متریک است,و یک ثابت.

دو بازیکن به نام های تولید کننده و تفکیک کننده (منتقد) داریم.

مجموعه استراتژی های تولید کننده، مجموعه تمام احتمالات روی است.

مجموعه استراتژی های تفکیک کننده برابر مجموعه توابع قابل اندازه گیری از نوع با Lipschitz-norm محدود شده : .

بازی WGAN یک بازی جمع صفر با تابع هدف:

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

برای هر استراتژی مولد ، جواب بهینه از طرف تفکیک کننده برابر است با بطوری که:

در نتیجه، اگر تفکیک کننده خوب عمل کند، مولد همواره به کمینه کردن ترغیب می شود و همانطور که باید، استراتژی بهینه برای آن است.

مقایسه با GAN[ویرایش]

در WGAN تفکیک کننده گرادیان بهتری نسبت به GAN فراهم می کند.

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

به طور مثال یک بازی بر روی خط اعداد حقیقی داریم، که و توزیع نرمال هستند. در نمودار زیر مولد بهینه و تفکیک کننده بهینه واسرستاین نشان داده شده اند.

برای یک تفکیک کننده ثابت، مولد باید توابع هدف زیر را کمینه کند.

  • برای بازی GAN:
  • برای بازی WGAN:

فرض کنید از پارامترهای تشکیل شده است، این گونه می توانیم با استفاده از تخمین گر نااریب (unbiased estimator) گرادیان، یک گرادیان کاهشی تصادفی اجرا کنیم:

برای به دست آوردن فرمول های بالا از تغییر متغیر (reparameterization trick)

همانطور که مشاهده می شود، در GAN، مولد ترغیب می شود از قله به سمت پایین سقوط کند. مولد WGAN نیز به همین صورت است.

در WGAN، تقریبا همواره گرادیان برابر یک دارد، این در حالیست که در GAN، در میانه گرادیان برابر صفر و سایر نقاط گرادیانی بزرگ دارد. این باعث می شود واریانس تخمین گر در GAN معمولا بسیار بیشتر از WGAN باشد.

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

جزئیات این نظریه را می توانید در اینجا مشاهده کنید.[۴]

آموزش Wasserstein GAN[ویرایش]

آموزش مولد در WGAN و GAN صرفا براساس گرادیان کاهشی است، اما آموزش تفکیک کننده متفاوت است به این دلیل که در WGAN تفکیک کننده یک محدودیت جدید دارد که همان حد Lipschitz norm است. برای انجام این کار روش های مختلفی وجود دارد.

قراردادن حد بالا برای Lipschitz norm[ویرایش]

تابع تفکیک کننده را به صورت یک پرستپترون چندلایه (multilayer perceptron) پیاده سازی میکنیم.

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

اینگونه Lipschitz norm تفکیک کننده حد بالای زیر را دارد:

که همان operator norm یا spectral radius یا بزرگترین مقدار ویژه ماتریس است (این سه مفهوم در ماتریس ها یک معنی را می دهند اما برای دیگر عملگرهای خطی می توانند متفاوت باشند).

از آنجایی که داریم و به همین دلیل حد بالا برابر است با:

بنابراین، اگر بتوانیم بر روی تمام ماتریس ها حد بالایی تعریف کنیم در واقع حد بالایی برای Lipschitz norm تفکیک کننده تعیین کرده ایم.

برش وزن (Weight clipping)[ویرایش]

برای هر ماتریس با ابعاد قرار می دهیم ، آنگاه خواهیم داشت:

با محدود کردن تمام درایه های به بازه ، در واقع را محدود کرده ایم.

این روش برش وزن را می توانید در مقاله اصلی مطالعه کنید.

جریمه بر روی گرادیان (Gradient penalty)[ویرایش]

به جای گذاشتن حد بر روی ، می توانیم برای گرادیان یک جریمه به فرم زیر تعریف کنیم:

ه یک توزیع ثابت برای تخمین زدن مقداری است که تفکیک کننده از حد Lipschitz norm تجاوز کرده است.

تفکیک کننده برای کمینه کردن تابع هزینه جدید، تلاش میکند را به نزدیک کند، این باعث می شود

این روش برش وزن را می توانید در مقاله اصلی مطالعه کنید.[۵]

منابع[ویرایش]

  1. Arjovsky، Martin؛ Chintala، Soumith؛ Bottou، Léon. «Wasserstein Generative Adversarial Networks». International Conference on Machine Learning: ۲۱۴–۲۲۳.
  2. Weng, Lilian (2019-04-18). "From GAN to WGAN". arXiv:1904.08994 [cs.LG].
  3. Nowozin، Sebastian؛ Cseke، Botond؛ Tomioka، Ryota. «f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization». Advances in Neural Information Processing Systems. ۲۹.
  4. Arjovsky، Martin؛ Bottou، Léon. «Towards Principled Methods for Training Generative Adversarial Networks».
  5. Gulrajani، Ishaan؛ Ahmed، Faruk؛ Arjovsky، Martin؛ Dumoulin، Vincent؛ Courville، Aaron C. «Improved Training of Wasserstein GANs». Advances in Neural Information Processing Systems. ۳۰.