13 KiB
خودرمزگذارها
هنگام آموزش شبکههای عصبی کانولوشنی (CNN)، یکی از مشکلات این است که به دادههای برچسبدار زیادی نیاز داریم. در مورد دستهبندی تصاویر، باید تصاویر را به کلاسهای مختلف تقسیم کنیم که این کار به صورت دستی انجام میشود.
پیشآزمون
با این حال، ممکن است بخواهیم از دادههای خام (بدون برچسب) برای آموزش استخراجکنندههای ویژگی CNN استفاده کنیم، که به آن یادگیری خودنظارتی گفته میشود. به جای برچسبها، از تصاویر آموزشی به عنوان ورودی و خروجی شبکه استفاده خواهیم کرد. ایده اصلی خودرمزگذار این است که یک شبکه رمزگذار داشته باشیم که تصویر ورودی را به یک فضای نهان تبدیل کند (معمولاً فقط یک بردار با اندازه کوچکتر است)، سپس یک شبکه رمزگشا که هدف آن بازسازی تصویر اصلی باشد.
✅ یک خودرمزگذار نوعی شبکه عصبی مصنوعی است که برای یادگیری کدگذاریهای کارآمد از دادههای بدون برچسب استفاده میشود.
از آنجا که ما خودرمزگذار را برای گرفتن اطلاعات بیشتر از تصویر اصلی به منظور بازسازی دقیق آموزش میدهیم، شبکه تلاش میکند بهترین تعبیر از تصاویر ورودی را برای درک معنا پیدا کند.
تصویر از وبلاگ Keras
سناریوهای استفاده از خودرمزگذارها
در حالی که بازسازی تصاویر اصلی به خودی خود ممکن است مفید به نظر نرسد، چند سناریو وجود دارد که خودرمزگذارها به طور خاص مفید هستند:
- کاهش ابعاد تصاویر برای مصورسازی یا آموزش تعبیههای تصویری. معمولاً خودرمزگذارها نتایج بهتری نسبت به PCA ارائه میدهند، زیرا ماهیت فضایی تصاویر و ویژگیهای سلسلهمراتبی را در نظر میگیرند.
- حذف نویز، یعنی حذف نویز از تصویر. از آنجا که نویز اطلاعات بیفایده زیادی را حمل میکند، خودرمزگذار نمیتواند همه آن را در فضای نهان نسبتاً کوچک جای دهد و بنابراین فقط بخش مهم تصویر را ثبت میکند. هنگام آموزش حذفکنندههای نویز، با تصاویر اصلی شروع میکنیم و از تصاویر با نویز مصنوعی اضافه شده به عنوان ورودی برای خودرمزگذار استفاده میکنیم.
- افزایش وضوح تصویر، افزایش وضوح تصویر. با تصاویر با وضوح بالا شروع میکنیم و از تصویر با وضوح پایینتر به عنوان ورودی خودرمزگذار استفاده میکنیم.
- مدلهای مولد. پس از آموزش خودرمزگذار، بخش رمزگشا میتواند برای ایجاد اشیاء جدید از بردارهای نهان تصادفی استفاده شود.
خودرمزگذارهای تنوعی (VAE)
خودرمزگذارهای سنتی به نوعی ابعاد دادههای ورودی را کاهش میدهند و ویژگیهای مهم تصاویر ورودی را شناسایی میکنند. با این حال، بردارهای نهان اغلب معنای خاصی ندارند. به عبارت دیگر، اگر مجموعه داده MNIST را به عنوان مثال در نظر بگیریم، شناسایی اینکه کدام ارقام به بردارهای نهان مختلف مربوط میشوند کار آسانی نیست، زیرا بردارهای نهان نزدیک لزوماً به همان ارقام مربوط نمیشوند.
از سوی دیگر، برای آموزش مدلهای مولد بهتر است درک بیشتری از فضای نهان داشته باشیم. این ایده ما را به خودرمزگذار تنوعی (VAE) هدایت میکند.
VAE نوعی خودرمزگذار است که یاد میگیرد توزیع آماری پارامترهای نهان، به اصطلاح توزیع نهان را پیشبینی کند. به عنوان مثال، ممکن است بخواهیم بردارهای نهان به طور نرمال با میانگین zmean و انحراف معیار zsigma توزیع شوند (هر دو میانگین و انحراف معیار بردارهایی با ابعاد مشخص هستند). رمزگذار در VAE یاد میگیرد این پارامترها را پیشبینی کند و سپس رمزگشا یک بردار تصادفی از این توزیع را برای بازسازی شیء میگیرد.
به طور خلاصه:
- از بردار ورودی،
z_meanوz_log_sigmaرا پیشبینی میکنیم (به جای پیشبینی انحراف معیار، لگاریتم آن را پیشبینی میکنیم) - یک بردار
sampleاز توزیع N(zmean,exp(zlog_sigma)) نمونهبرداری میکنیم - رمزگشا تلاش میکند تصویر اصلی را با استفاده از
sampleبه عنوان بردار ورودی رمزگشایی کند
تصویر از این پست وبلاگ توسط Isaak Dykeman
خودرمزگذارهای تنوعی از یک تابع هزینه پیچیده استفاده میکنند که شامل دو بخش است:
- هزینه بازسازی، تابع هزینهای که نشان میدهد تصویر بازسازی شده چقدر به هدف نزدیک است (میتواند خطای میانگین مربعات یا MSE باشد). این همان تابع هزینهای است که در خودرمزگذارهای معمولی استفاده میشود.
- هزینه KL، که تضمین میکند توزیع متغیرهای نهان به توزیع نرمال نزدیک بماند. این هزینه بر اساس مفهوم واگرایی کولبک-لیبلر است - معیاری برای تخمین شباهت دو توزیع آماری.
یکی از مزایای مهم VAE این است که به ما امکان میدهد تصاویر جدید را نسبتاً آسان تولید کنیم، زیرا میدانیم از کدام توزیع باید بردارهای نهان نمونهبرداری کنیم. به عنوان مثال، اگر VAE را با بردار نهان دوبعدی روی MNIST آموزش دهیم، میتوانیم سپس اجزای بردار نهان را تغییر دهیم تا ارقام مختلفی به دست آوریم:
تصویر توسط Dmitry Soshnikov
مشاهده کنید که چگونه تصاویر به یکدیگر تبدیل میشوند، زیرا شروع به گرفتن بردارهای نهان از بخشهای مختلف فضای پارامتر نهان میکنیم. همچنین میتوانیم این فضا را در دوبعد مصورسازی کنیم:
تصویر توسط Dmitry Soshnikov
✍️ تمرینها: خودرمزگذارها
اطلاعات بیشتری درباره خودرمزگذارها در این نوتبوکها بیاموزید:
ویژگیهای خودرمزگذارها
- دادهمحور - آنها فقط با نوع تصاویری که آموزش دیدهاند خوب کار میکنند. به عنوان مثال، اگر یک شبکه افزایش وضوح تصویر را روی گلها آموزش دهیم، روی پرترهها خوب کار نخواهد کرد. این به این دلیل است که شبکه میتواند تصویر با وضوح بالاتر را با گرفتن جزئیات دقیق از ویژگیهای یادگرفته شده از مجموعه داده آموزشی تولید کند.
- دارای افت کیفیت - تصویر بازسازی شده همان تصویر اصلی نیست. ماهیت افت کیفیت توسط تابع هزینه استفاده شده در طول آموزش تعریف میشود.
- کار با دادههای بدون برچسب
پسآزمون
نتیجهگیری
در این درس، شما با انواع مختلف خودرمزگذارها که در دسترس دانشمند هوش مصنوعی هستند آشنا شدید. یاد گرفتید چگونه آنها را بسازید و چگونه از آنها برای بازسازی تصاویر استفاده کنید. همچنین با VAE آشنا شدید و یاد گرفتید چگونه از آن برای تولید تصاویر جدید استفاده کنید.
🚀 چالش
در این درس، شما درباره استفاده از خودرمزگذارها برای تصاویر یاد گرفتید. اما آنها میتوانند برای موسیقی نیز استفاده شوند! پروژه Magenta MusicVAE از خودرمزگذارها برای یادگیری بازسازی موسیقی استفاده میکند. با این کتابخانه آزمایش کنید تا ببینید چه چیزی میتوانید خلق کنید.
پسآزمون
مرور و مطالعه خودآموز
برای مرجع، اطلاعات بیشتری درباره خودرمزگذارها در این منابع بخوانید:
- ساخت خودرمزگذارها در Keras
- پست وبلاگ در NeuroHive
- توضیح خودرمزگذارهای تنوعی
- خودرمزگذارهای تنوعی شرطی
تکلیف
در انتهای این نوتبوک با استفاده از TensorFlow، یک "وظیفه" پیدا خواهید کرد - از این به عنوان تکلیف خود استفاده کنید.
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه حرفهای انسانی استفاده کنید. ما هیچ مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
