خودرمزگذار متغیر

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

با اینکه این مدل در ابتدا برای یادگیری خودران (خودسازمانده) طراحی شده بود، به دلیل اثربخشی بالا عملکرد خود را در یادگیری نیمه‌نظارتی و یادگیری با نظارت اثبات کرده‌است.

## معماری
یک خودرمزگذار متغیر از دو شبکهٔ عصبی مصنوعی به نام‌های رمزگذار  و رمزگشا  طراحی شده‌است. شبکهٔ اول داده‌ها را به صورت خام می‌گیرد و پارامترهای توصیف کنندهٔ ورودی داده شده را به عنوان خروجی بخش اول تولید می‌کند. رمزگذار بخش دوم این مدل است که یک تابع است. وظیفه‌ی رمزگذار نگاشت داده‌ها از فضای نهان به فضای ورودی است; این کار با استفاده از تخمین پارامتر‌های میانگین و واریانس یک توزیع نویز  و سپس نمونه‌گرفتن از آن انجام می‌شود.

برای بهینه‌سازی و آموزش این مدل نیاز به تعریف دو عبارت داریم: "خطای بازسازی" و واگرایی کولبک-لیبلر. تابع ضرر  مشتق‌پذیر نهایی ما ترکیبی از این دو عبارت خواهد بود. واگرایی کولبک-لیبلر سعی در مشابه کردن توزیع پیشین فضای نهان که یک توزیع نرمال چند متغیره با میانگین صفر و ماتریس کوواریانس همانی فرض گرفته می‌شود با توزیع تخمینی‌ای که از بخش رمزنگار مدل ما بدست می‌آید دارد. عبارت خطای بازسازی وظیفه‌ یکسان کردن خروجی مدل با ورودی داده شده را در بردارد.  

## فرمول‌بندی
بندانگشتی|462x462پیکسل|طرح کلی یک خودرمزگذار متغیر. مدل یک <math>x</math> را به عتوان ورودی دریافت می‌کند. رمزگذار این ورودی دریافت شده را از فضای مبدا به فضای نهفته نگاشت می‌کند. رمزگشا با دریافت یک ورودی پس از نمونه‌گیری از توزیع فضای نهفته سعی می‌کند خروجی <math>x^{'}</math> را تولید کند که تا حد ممکن نزدیک ورودی <math>x</math> باشد.

از نگاه مدل‌سازی آماری، مدل سعی در بیشینه کردن احتمال دیدن داده‌ x با انتخاب پارامتر‌های یک توزیع آماری p_{\theta}(x) = p(x|\theta) را دارد. توزیع گفته شده معمولا به دلیل سادگی نمونه‌گیری و بهینه‌کردن در تابع ضرر یک توزیع نرمال N(x|\mu,\sigma) قرار داده می‌شود که توسط میو و سیگما پارامترسازی می‌شود. 

زمانی که یک توزیع پیشین بر روی فضای نهفته z فرض می‌شود، محاسبه‌ و بیشینه‌ کردن احتمال رخداد داده منجر به یک انتگرال غیر قابل حل  می‌شود. می‌توانیم p_{\theta}(x) را با استفاده از توزیع حاشیه‌ای p_{\theta}(x|z) از طریق رابطه‌ی مقابل دست آوریم

p_{\theta}(x) = \int_{z}p_{\theta}(x|z)p_{\theta}(z)dz 

در مدل ابتدایی خودرمزگذار متغیر،‌ z معمولا به صورت یک بردار در فضای متناهی اعداد حقیقی تعریف می‌شود و p_{\theta}(x|z) همانطور که بالاتر نیز به آن اشاره شد یک توزیع نرمال گرفته می‌شود. فرض‌های گفته شده باعث می‌شود p_{\theta}(x) ترکیبی از توزیع‌های گاوسی باشد.

متاسفانه محاسبه‌ی p_{\theta}(x) بسیار هزینه‌بر و اکثر اوقات غیرممکن است. برای محاسبه‌ی توزیع داده‌ها نیاز است توزیع پسین p_{\theta}(z|x) را با استفاده از یک تابع تخمین بزنیم

q_{\phi}(z|x) \approx p_{\theta}(z|x)

با ساده‌سازی بالا مشکل بدست آوردن توزیع داده تبدیل به طراحی یک خودرمزگذار متغیر می‌شود به صورتی که توزیع p_{\theta}(x|z) توسط رمزگشا محاسبه می‌شود و تخمین توزیع پسین که بالاتر آن را به صورت q_{\phi}(z|x) تعریف کردیم،‌ توسط رمزنگار محاسبه می‌شود.

## کاربرد‌ها
بندانگشتی|نمونه‌ای از تصویر تولید شده‌ی یک گربه توسط مدل‌های تولیدی عمیق
* تولید تصاویر جدید
** تولید داده‌های جدید برای دامنه‌های پزشکی که با مشکل کمبود عکس مواجه هستند بسیار کاربردی است.
* طراحی چهره‌های جدید برای انسان‌ها و حیوانات
** طراحان بازی‌های کامپیوتری می‌توانند با الگو گرفتن از این تصاویر چهره‌های جدیدی طراحی کنند.
* ترجمه‌ی عکس به عکس
** عکاسان می‌توانند با صرفه‌جویی در زمان و هزینه تصاویر گرفته شده‌ی خود را به عنوان مثال از روز به شب تبدیل کنند.
* پیشبینی ویدئو و طراحی ادامه‌ی آن
* تبدیل متن به عکس

## جستارهای وابسته

* خودرمزگذار
* شبکه عصبی مصنوعی
* یادگیری ژرف
* شبکه‌های زایای دشمن‌گونه
* افزایش داده
* پس‌انتشار

## منابع

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