Variational Autoencoder(VAE) چیست و چه تفاوتی با Autoencoder معمولی دارد؟


در این مقاله می‌خواهیم ساختار Variational autoencoder (VAE) را بررسی کنیم و ببینیم چه تفاوتی با Autoencoder معمولی دارد. مدل های VAE ساده ترین نوع مدل‌های مولد یا Generative modelها هستند که می توانند داده ی جدید تولید کنند.

شبکه های  Autoencoder (AE)

شبکه‌های Variational Autoencoder (VAE) یک نوع بسط یافته از Autoencoderها هستند که نسبت به این شبکه‌ها مزایایی دارند. ابتدا ساختار کلی Autoencoderهای ساده را بررسی می‌کنیم. به شکل زیر دقت کنید.

autoencoder

 

هدف هر AE ساده‌ای آن است که ورودی روی خروجی بازسازی شود و به عبارت دیگر در خروجی، به Reconstructed-inputها دست پیدا کنیم. AE چطور اینکار را انجام می‌دهد؟ ابتدا ورودی را به فرم ساده‌تر فشرده‌سازی می‌کند. سپس آن را به تقریبی از ورودی تبدیل می‌کند. این شبکه تنها زمانی کارایی خوبی دارد که بخواهید ورودی را روی خروجی کپی کنید اما به عنوان یک Generative Model (یا مدل‌ مولد) کارایی ندارد.

شاید این پرسش پیش بیاید که Generative Model چیست؟

مدل های مولد سنگ بنای دنیای هوش مصنوعی (AI) هستند. وظیفه اصلی آنها درک و دستیابی به الگوها یا توزیع های اساسی یک مجموعه داده است. هنگامی که این الگوها آموخته شدند، مدل می تواند داده های جدیدی تولید کند که ویژگی های مشابهی با مجموعه داده اصلی دارد.

اگر در شکل فوق یک بردار U تصادفی تعریف کنیم مثل U=[0.3, 0.7, 0.06, …, 0.9] و آن را به عنوان ورودی به دیکدر بدهیم، ممکن است خروجی مناسبی به ما ندهد و ممکن است از ورودی های قبلی، دور باشد. برای این منظور باید راهی پیدا کنیم که مطمئن شویم اگر هر ورودی به دیکدر بدهیم بالاخره خروجی مناسبی برای ما تولید خواهد کرد و به عبارت دیگر تصاویر باورپذیر از ورودی تولید کند.

برای انجام این کار باید توزیع ورودی را دوباره تعریف کنیم. یعنی توزیع احتمالاتی U را باید بتوانیم مشخص کنیم. معمولاً برای این منظور از standard normal distribution استفاده می‌کنیم. اگر توزیع داده‌ی ورودی را داشته باشیم می‌توانیم به خوبی داده‌ی جدید Reasonable  تولید کنیم.

در AE ساده هر ورودی که داشته باشیم در نهایت به یک ورودی یکسان U تبدیل خواهد شد و به دیکدر داده می‌شود تا تصاویر Reasonable تولید کند.

شبکه‌های Variational Autoencoder (VAE)

به شکل زیر نگاه کنید. این شکل ساختار یک شبکه Variational Autoencoder را نشان می‌دهد.

 

variational autoencoder

شبکه ی فوق VAE باعث می‌شود تمام نمونه داده‌های ورودی که عدد 3 هستند یک PDF (Probability Distribution Function) یا تابع توزیع احتمال تولید کنند که مربوط به عدد 3 است و همین کار را برای سایر اعداد دیتاست MNIST انجام می‌دهد؛ یعنی یک PDF برای عدد 1 با استفاده از تمام نمونه داده‌های ورودی عدد 1، یک PDF برای عدد 2 با استفاده از تمام نمونه داده‌های ورودی عدد 2 و همینطور الی آخر.

این تابع توزیع یک توزیع چندبعدی گاوسین است.

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

پس با تغییر فضای نهان یا Latent Space شبکه ی AE یک قدم به Generative AI نزدیکتر شدیم! 🙂


دیدگاه ها

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

code