جهت کسب اطلاع در مورد رودمپ عمومی هوش مصنوعی روی لینک رو به رو کلیک کنید.
اتوانکدرها (Autoencoders)
فهرست محتوا:
اتوانکدر چیست؟
اتوانکدرها یا خودرمزگذارها نوعی شبکه عصبی هستند که لایه خروجی و لایه ورودی دارای ابعاد یکسان هستند. به بیان ساده تر، تعداد واحدهای خروجی در لایه خروجی با تعداد واحدهای ورودی در لایه ورودی برابر است. یک اتوانکدر، داده ها را از لایه ورودی به لایه خروجی به روش بدون نظارت همانندسازی میکند و به همین دلیل گاها به عنوان شبکه عصبی همانندساز(replicator) نیز شناخته می شوند.
اتوانکدرها هر بُعد از ورودی را با عبور آن از شبکه، بازسازی می کنند. ممکن است بکارگیری یک شبکه عصبی با هدف همانندسازی و تکرار ورودی بیهوده به نظر برسد. اما توجه به این نکته اهمیت دارد که در طی فرآیند همانندسازی، اندازه ورودی به یک بازنمایی کوچک تر کاهش می یابد. لایه های میانی اتوانکدر در مقایسه با لایه های ورودی یا خروجی، واحدهای کمتری دارند. به همین دلیل، لایه های میانی بازنمایی کاهش یافته ای از ورودی را در خود نگه میدارند. و خروجی از همین بازنمایی کاهش یافته ورودی، بازسازی می شود.
معماری اتوانکدرها
یک اتوانکدر از سه بخش تشکیل می شود:
- رمزگذار: رمزگذار، یک شبکه عصبی پیش خور و کاملا متصل است که ورودی را به یک بازنمایی فضای نهان، فشرده کرده و تصویر ورودی را به عنوان یک بازنمایی فشرده در یک بعد کاهش یافته رمزگذاری میکند. تصویر فشرده شده، نسخه تحریف شده از تصویر اصلی است.
- رمز: این بخش از شبکه شامل بازنمایی کاهش یافته از ورودی است که به رمزگشا داده می شود.
- رمزگشا: رمزگشا نیز همچون رمزگذار یک شبکه پیش خور بوده و ساختاری مشابه رمزگذار دارد. این شبکه مسئولیت بازسازی ورودی به ابعاد اصلی رمز را به عهده دارد.
ابتدا، ورودی از رمزگذار عبور نموده تا توسط آن در لایه رمز، فشرده و ذخیره گردد. سپس رمزگشا، ورودی اصلی را از لایه رمز از حالت فشرده خارج می نماید. هدف اصلی خودرمزگذار یا اتوانکدر، بدست آوردن خروجی مشابه ورودی میباشد.
توجه داشته باشید که معماری رمزگشا معکوس رمزگذار است. این یک الزام نیست اما معمولا بدین صورت است. تنها الزام اینست که ابعاد ورودی و خروجی یکسان باشد.
آموزش اتوانکدرها
پیش از آموزش خودرمزگذار، لازم است ۴ هایپرپارامتر مشخص گردد:
اندازه رمز: اندازه رمز یا اندازه گلوگاه، مهم ترین هایپرپارامتری است که جهت تنظیم اتوانکودر استفاده می شود. اندازه گلوگاه مشخص میکند که داده تا چه اندازه باید فشرده شود.
تعداد لایه ها: مانند تمامی شبکه های عصبی، یک هایپرپارامتر مهم برای تنظیم اتوانکدرها عمق رمزگذار و رمزگشا است. با افزایش عمق، پیچیدگی مدل افزایش می یابد. درحالیکه عمق پایین تر، موجب پردازش سریع تر می گردد.
تعداد نودها در هر لایه: تعداد نودهای(nodes) هر لایه، وزن های مورد استفاده برای هر لایه را مشخص میکند. معمولا تعداد نودها در هر لایه نسبت به لایه قبلی در اتوانکدر کاهش می یابد. در نتیجه ورودی هر یک از این لایه ها با عبور از لایه ها کوچک تر می شود.
هزینه بازسازی: تابع هزینه ای که برای آموزش اتوانکدر استفاده می شود وابستگی زیادی به نوع ورودی و خروجی دارد که میخواهیم اتوانکدر، خود را با آن تطبیق دهد. در صورت کار با تصاویر، MSE Loss و L1 Loss رایج ترین توابع هزینه برای بازسازی هستند. چنانچه ورودی ها و خروجی ها در بازه [0,1] باشند، مانند دیتاست MNIST، میتوان از Binary Cross Entropy نیز به عنوان هزینه بازسازی استفاده نمود.
انواع اتوانکدرها
انواع زیادی از اتوانکدرها وجود دارند که برخی از آنها را در ادامه به طور مختصر شرح می دهیم.
اتوانکدر کانولوشن(Convolutional Autoencoder):
اتوانکدرهای کانولوشن(CAE)، یاد میگیرند که ورودی را در مجموعه ای از سیگنال های ساده رمزگذاری کرده و سپس، ورودی را از آنها بازسازی نمایند. علاوه براین، ما میتوانیم ساختار را تغییر داده یا انعکاس تصویر را با استفاده از CAE ایجاد نماییم. در این نوع از خودرمزگذار، لایه های رمزگذار به عنوان لایه های کانولوشن شناخته می شوند و لایه های رمزگشا تحت عنوان لایه های deconvolutional شناخته می شوند. بخش deconvolution را کانولوشن upsampling یا transpose هم میگویند.
اتوانکدرهای متغیر(Variational Autoencoders):
این نوع از خودرمزگذار می تواند دقیقا مانند GANها تصاویر جدیدی ایجاد نماید. مدل های اتوانکدرهای متغیر، فرضیات قدرتمندی در مورد توزیع متغیرهای نهان ارائه میدهند. آنها از یک رویکرد متغیر (variational) برای یادگیری بازنمایی نهان استفاده می نمایند که نتیجه آن یک بخش loss اضافی و یک تخمین گر مشخص تحت عنوان Stochastic Gradient Variational Bayes estimator برای الگوریتم آموزش میباشد.
توزیع احتمال بردار نهان اتوانکدر متغیر معمولا نسبت به اتوانکدر استاندارد، هماهنگی بیشتری با داده های آموزش دارد. چراکه اتوانکدرهای متغیر(VAE) از نظر generation bahavior نسبت به GANها بسیار انعطاف پذیرتر هستند و قابلیت سفارشی سازی بیشتری دارند. و میتوانند برای تولید انواع مختلف آثار هنری بسیار مناسب باشند.
اتوانکدرهای حذف نویز(Denoising autoencoders):
خودرمزگذارهای حذف نویز، مقداری نویز به تصویر ورودی اضافه نموده و یاد میگیرند که چگونه آن را حذف نمایند. بنابراین کپی کردن ورودی به خروجی را بدون یادگیری ویژگی های داده ها انجام نمیدهند. این خودرمزگذارها، یک ورودی حدودا خراب شده را گرفته و آن را برای بازیابی ورودی سالم اصلی آموزش می دهند. مدل یک میدان برداری را برای نگاشت داده های ورودی به سمت یک منیفولد با ابعاد پایین تر می آموزد که داده های طبیعی را برای حذف نویز اضافه شده توصیف می کند. به این ترتیب، رمزگذار مهم ترین ویژگی ها را استخراج می کند و نمایش قوی تری از داده ها را یاد می گیرد.
اتوانکدرهای عمیق(Deep autoencoders):
خودرمزگذار عمیق از دو شبکه متقارن باور عمیق (deep-belief networks) تشکیل شده است که دارای چهار تا پنج لایه کم عمق است. یکی از شبکه ها رمزگذاری نیمه شبکه را نشان می دهد و شبکه دوم رمزگشایی نیمه را تشکیل می دهد. آنها لایه های بیشتری نسبت به یک خودرمزگذار ساده دارند و بنابراین می توانند ویژگی های پیچیده تری را بیاموزند. این لایهها، ماشینهای محدود بولتزمن، بلوکهای سازنده شبکههای باور عمیق هستند.
جمع بندی
اتوانکدر یا خودرمزگذار یک شبکه عصبی است که قادر به تشخیص ساختار درونی داده ها به منظور ایجاد یک بازنمایی فشرده از ورودی است. انواع مختلفی از معماری اتوانکدر وجود دارد با این هدف که بازنمایی فشرده، ویژگی های معناداری از داده های ورودی اصلی را شامل شود. معمولا بزرگترین چالش هنگام کار با Autoencoder ها، آنست که مدل شما قابلیت یادگیری یک بازنمایی تعمیم پذیر و معنی دار از فضای نهان (latent space) را داشته باشد.
به دلیل آنکه اتوانکدرها یاد میگیرند چگونه داده ها را بر اساس ویژگی های شناسایی شده از داده ها در طی آموزش (برای مثال همبستگی های میان بردار ویژگی ورودی) فشرده سازی نمایند، این مدل ها معمولا تنها قادر به بازسازی داده های مشابه با دسته مشاهدات هستند که مدل در طی آموزش مشاهده نموده است.
کاربردهای اتوانکدرها شامل موارد زیر است:
- فشرده سازی داده ها
- حذف نویز تصاویر
- کاهش ابعاد
- استخراج ویژگی
- تولید تصویر
- رنگ کردن تصاویر
- تشخیص ناهنجاری