مقدمه ای بر خودرمزگذارها (Autoencoder)
معرفی:
اتوانکدرها مدل های یادگیری بدون ساختار هستند. از قدرت شبکه های عصبی برای انجام وظیفه یادگیری بازنمایی استفاده می کنند. در واقع از شبکه عصبی به منظور یادگیری یک بازنمایی فشرده از داده های خام استفاده می شود. در زمینه یادگیری ماشین، یادگیری بازنمایی به معنای قرار دادن اجزا و ویژگی های داده های اصلی در ساختارهایی با ابعاد کم برای درک بهتر و استخراج اطلاعات معنی دار است.
امروزه داده های فراوانی در دسترس ما قرار دارند. الگوریتم های یادگیری ماشین از مجموعه داده های دارای برچسب استفاده میکنند که کمیاب و پرهزینه هستند. اکثر داده ها بدون ساختار و بدون برچسب هستند، بنابراین زمان آن فرا رسیده است که جامعه یادگیری ماشین علاوه بر الگوریتم های با نظارت بر الگوریتم های یادگیری بدون نظارت متمرکز شود.
یان لکان:
” اگر هوش را یک کیک در نظر بگیرید، یادگیری بدون نظارت کیک، یادگیری با نظارت رویه کیک و یادگیری تقویتی گیلاس روی کیک خواهد بود”
پس چرا کل کیک را نمی خورید؟
یادگیری با داده های بدون برچسب:
اگر داشته باشیم x ∈ X و تابع f: X → Z را برای برخی از داده های Z داشته باشیم، f یک بازنمایی است. نقطه جدید f (x) = z ∈ Z بازنمایی x نامیده می شود.
آشنایی با رمزگذارهای خودکار:
رمزگذارهای خودکار همچنین به عنوان خود رمزگذارها شناخته می شوند. شبکه هایی هستند که برای بازتولید ورودی های خود، آموزش دیده اند. اتوانکدرها در قالب الگوریتم های یادگیری بدون نظارت دسته بندی می شوند، در واقع، برخی از محققان رمزگذارهای خودکار را به عنوان الگوریتم های خود نظارتی پیشنهاد می کنند، برای مثال آموزش x، برچسب خود x است. به طور کلی، آنها بدون نظارت در نظر گرفته می شوند، زیرا برچسبی برای توصیف داده ها وجود ندارد.
رمزگذار خودکار به عنوان یک ساختار دو بخشی ، شامل انکدر (رمزگذار) و دیکدر (رمزگشا) طراحی شده است. در این شبکه به جای آموزش شبکه و پیشبینی مقدار تابع هدف یک رمزگذار خودکار آموزش میبیند که ورودی خود را بازسازی کند. منظور از بازسازی، کشف الگوها و ویژگیهای ذاتی توزیع دادههای ورودی به منظور تولید دادههای مشاهده نشده و مشابه با همان توزیع داده ورودی است. بنابراین بردار خروجی همان ابعاد بردار ورودی X را خواهد داشت.
AE = Decoder(Encoder(x))
آموزش مدل با استفاده از reconstruction loss بهینه میشود که هدف آن به حداقل رساندن تفاوت بین x و x’ است. اگر ورودی ها یک مقدار واقعی باشند، می توانیم reconstruction loss را چیزی شبیه به MSE(x, x’) تعریف کنیم. ابعاد z معمولاً کمتر از x است، به همین دلیل رمزگذارهای خودکار شبکه های عصبی گلوگاه نیز نامیده می شوند.
داده ها در لایه encoder فشرده شده و به داده هایی با ابعاد کمتر، z تبدیل می شوند.فضای نشان داده شده با ابعاد کمتر “فضای پنهان” و نقطه حداکثر فشرده سازی “گلوگاه” نامیده می شود. که این فرایند ، “رمزگذاری” ورودی خوانده می شوند. برای یک بازنمایی مناسب نباید هیچ اطلاعات مهمی در طول فشردهسازی از بین رود. خودرمزگذارها مانند تجزیه و تحلیل مؤلفه های اصلی (PCA) که یک الگوریتم کاهش ابعاد است، هستند. PCA ماهیت خطی دارد اما خودرمزگذارها به دلیل معماری مبتنی بر شبکه عصبی، ماهیت غیرخطی دارند. برای درک بهتر فضای پنهان، میتوانیم از مثالی استفاده کنیم که در آن متغیر مشاهدهشده x ، تعداد افراد در ساحل، فروش بستنی، دمای روزانه باشد، در حالی که فضای پنهان z میتواند فصل سال باشد. با استفاده از اطلاعات فصل تقریباً می توانیم تعداد بازدیدکنندگان در ساحل، فروش بستنی و غیره را پیش بینی کنیم.
تاریخچه رمزگذارهای خودکار در مقالات:
اولین مقالاتی که AE ها را در دنیای یادگیری ماشین معرفی می کنند:
.A learning algorithm for Boltzmann machines, DH Ackley, GEHinton, TJ Sejnowski. Cognitive science, 1985
یک شبکه عصبی ساده را توصیف می کند که توسط self-supervision آموزش داده شده است.
.Learning representations by back-propagating errors, D. Rumelhart, Geoffrey E. Hinton, R. J. Williams. Nature, 1986
یک روش یادگیری جدید، پس انتشار، برای شبکه های واحدهای نورون مانند را توصیف می کند.
Connectionist learning procedures, GE Hinton. Machine learning, 1990.
شبکه عصبی گلوگاه “خود نظارت” را توصیف می کند.
مقدمه ای بر خود رمزگذارهای متغیر:
خود رمزگذارهای متغیر، رمزگذارهای خودکاری هستند که از روش نمونهگیری و منظمسازی(Regularisation) Kullback-Leiber استفاده میکنند. خود رمزگذارهای متغیر قصد دارند فضای پنهان را هموارتر کنند، یعنی تغییر کوچک در x منجر به تغییر کوچکی در فضای پنهان z و یک تغییر کوچک در z منجر به تغییر کوچکی در x شود. در VAE، رمزگذار نه تنها z، بلکه μ و σ را خروجی می دهد. پس از آن عملیات نمونه برداری z را از بین این پارامترها انتخاب می کند و رمزگشا z را مانند قبل می گیرد.
یک تکنیک نمونهگیری خوب، بازسازی خوبی از نقاط داده و همچنین از نقاط نزدیک به نقاط داده را فراهم میکند. دو نقطه نزدیک بهم در فضای پنهان، تصاویر بسیار مشابه را رمزگشایی می کند. پیوستگی، همراه با ابعاد کم فضای پنهان، هر جهتی را در فضای پنهان مجبور میکند تا یک محور معنیدار تغییر دادهها را رمزگذاری کند، و فضای نهفته را بسیار ساختار یافته و بنابراین برای دستکاری از طریق بردارهای مفهومی بسیار مناسب میسازد. شبه کد برای نمونه گیری در زیر شناسایی می شود:
z_mean, z_log_variance = encoder(x) z = z_mean + exp(z_log_variance) * epsilon x_hat = decoder(z) model = Model(x, x_hat)
شبکه عصبی خود رمزگذار متغیر در مقایسه با شبکه عصبی خود رمزگذار، احتمالات را به جای ویژگیها فشرده میکند.در VAE، میخواهیم دادهها به صورت عادی توزیع شوند. در واقع یک توزیع استاندارد چند متغیره، ?(0,1).
منظم سازی (regularization):
پارامترهای یک VAE از طریق دو تابع زیان (loss functions) آموزش داده میشوند:
“reconstruction loss” نمونههای رمزگشایی شده را وادار میکند تا با ورودیهای اولیه مطابقت داشته باشند.
” regularization loss” به یادگیری فضاهای نهفته و کاهش بیش برازش دادههای آموزشی کمک میکند.
regularisation loss از رمزگذار میخواهد که دادهها را در یک توزیع عادی در فضای پنهان قرار دهد.
واگرایی کولبک-لایبلر (Kullback-Leibler divergence):
در آمار از واگرایی کولبک-لیبلر به عنوان معیاری برای اندازهگیری واگرایی یک توزیع احتمال از یک توزیع احتمال ثانویه، یاد میشود. واگرایی Kullback-Leibler توزیع Q نسبت به P اغلب به صورت (DKL(P‖Q نوشته میشود. یک معیار آماری برای عدم تشابه بین یک جفت توزیع، ? و ? است. بنابراین،زمانی که ? و ? غیرمشابه باشند عددی بزرگ و وقتی مشابه باشند نزدیک به صفر است.
کاربردهای خود رمزگذار:
- حذف نویز تصاویر (Conv AE)
- تشخیص ناهنجاری در سری های زمانی (1D Conv AE)
- تشخیص نفوذ شبکه با تشخیص ناهنجاری (VAE Encoder only)
- تولید موسیقی بازی های ویدیویی (Conv VAE Decoder only).
نتیجه:
خود رمزگذارو خود رمزگذار متغیر، از قویترین تکنیکهای یادگیری بدون نظارت هستند که هر data scientist باید از آن آگاه باشد. اگرچه این مدلها محدودیتهای خاص خود را دارند، مثلا به مجموعه دادههای نسبتاً بزرگی برای آموزش و…نیاز دارند.
دیدگاهتان را بنویسید