مقالات کاربردی در زمینه یادگیری عمیق
رشته بینایی رایانه ای در حال تغییر از روش های آماری به سمت شبکه عصبی یادگیری عمیق است. هنوز هم مشکلات چالش برانگیزی در دید رایانه ای وجود دارد. با این وجود، روش های دیپ لرنینگ در حال دستیابی به نتایج مدرن برای حل برخی از مشکلات خاص هستند. تنها عملکرد مدل های دیپ لرنینگ
در مورد مشکلات نیست که جالب است؛ بلکه این واقعیت که یک مدل واحد می تواند معنی تصاویر را بیاموزد، وظایف بینایی را انجام دهد و نیاز به روش های تخصصی و دستی را برطرف کند نیز جذابیت بسزای ایجاد می کند.
در این مقاله ٨ کاربرد جالب یادگیری عمیق در بینایی رایانه ای را بررسی می کنیم. ما سعی کردیم به مشکلات کاربر نهایی تمرکز کنیم.
١. طبقه بندی تصویر (Image Classification)
طبقه بندی تصویر شامل قرار دادن یک برچسب به کل تصویر یا عکس است. چند مثال از طبقه بندی تصویر شامل موارد زیر است:
• برچسب زدن تصاویر اشعه ایکس که آیا سرطانی هستند یا خیر
• طبقه بندی اعداد دست نویس
• اختصاص دادن نام به یک عکس یا یک چهره
شکل الف: نمونه ای از ارقام دست نویس از مجموعه داده MNIST
یک نمونه محبوب از طبقه بندی تصویر که به عنوان یک معیار مورد استفاده قرار می گیرد مجموعه داده MNIST است. نمونه هایی از طبقه بندی تصویر وجود دارد که شامل عکس اشیاء است. دو نمونه محبوب شامل مجموعه داده های CIFAR-10 و CIFAR-100 است که دارای عکس هایی هستند که به ترتیب در ١٠ و ١٠٠ کلاس طبقه بندی می شوند.
چالش تشخیص تصویری، یک رقابت سالانه است که در آن تیم ها برای بهترین عملکرد در طیف وسیعی از وظایف بینایی رایانه ای بر روی داده های تهیه شده از پایگاه داده ImageNet با یکدیگر رقابت می کنند. بسیاری از پیشرفت های مهم در طبقه بندی تصویر از مقالات منتشر شده حاصل می شود.
شکل ب:نمونه ای از عکس های اشیاء از مجموعه داده CIFAR-10
٢. طبقه بندی تصویر با بخش بندی (Image Classification With Localization)
طبقه بندی تصویر با بخش بندی شامل اختصاص یک برچسب به یک تصویر و نشان دادن محل شی در تصویر توسط یک باکس (کشیدن یک جعبه در اطراف جسم) است. این یک نسخه چالش برانگیز تر از طبقه بندی تصویر است. چند مثال از طبقه بندی تصویر با بخش بندی:
• برچسب زدن تصاویر اشعه ایکس که آیا سرطانی هستند یا خیر و کشیدن باکس در اطراف ناحیه سرطانی
• طبقه بندی عکس حیوانات و کشیدن یک باکس در اطراف حیوان مورد نظر در هر عکس
یک مجموعه داده کلاسیک برای طبقه بندی تصویر با بخش بندی، مجموعه داده های کلاس های بصری PASCAL است.
شکل ت: نمونه ای از طبقه بندی تصویر با بخش بندی یک سگ از VOC 2012
این کار ممکن است شامل اضافه کردن باکس در اطراف نمونه های متعدد از همان شی در یک تصویر باشد. این عمل را به عنوان ” تشخیص شی” می شناسیم. مجموعه داده ILSVRC2016 برای طبقه بندی تصویر با بخش بندی، یک مجموعه داده محبوب است که از ١۵٠٠٠٠ عکس و ١٠٠٠ دسته اشیا تشکیل شده است.
شکل ث: نمونه ای از طبقه بندی تصویر با بخش بندی صندلی های چندگانه از VOC 2012
٣. تشخیص شی (Object Detection)
تشخیص شی طبقه بندی تصویر با بخش بندی است، اگرچه یک تصویر ممکن است شامل چندین شی باشد که نیاز به بخش بندی و طبقه بندی دارند. این یک کار چالش برانگیزتر از طبقه بندی تصویر ساده یا طبقه بندی تصویر با بخش بندی است، زیرا غالبا چندین تصویر در انواع مختلف وجود دارد. غالبا از تکنیک هایی که برای طبقه بندی تصویر با بخش بندی وجود دارد برای شناسایی شی استفاده می شود. مجموعه داده های بصری PASCAL یک مجموعه داده رایج برای تشخیص شی است.
شکل ج: نمونه ای از شناسایی شی در بانک اطلاعات MS COCO
۴. انتقال سبک ( Style Transfer)
انتقال سبک یا انتقال سبک عصبی وظیفه برداشت سبک از یک یا چند تصویر و استفاده از آن سبک بر روی یک تصویر جدید است. این وظیفه را می توان به عنوان نوعی فیلتر عکس یا تبدیل تصور کرد که ممکن است ارزیابی عینی نداشته باشد. به عنوان مثال می توان به استفاده از سبک آثار هنری خاص و معروف (مثل آثار پابلو پیکاسو یا وینسنت ون گوگ) برای عکس های جدید اشاره کرد. مجموعه داده ها معمولا شامل آثار هنری معروفی است که در دسترس عموم قرار دارند و همچنین مجموعه داده های بینایی رایانه ای استاندارد.
شکل ح: نمونه انتقال سبک عصبی از آثار هنری مشهور به یک عکس. برگرفته از “الگوریتم عصبی از سبک هنری”
۵. رنگ آمیزی تصویر (Image Colorization)
رنگ آمیزی تصویر یا رنگ آمیزی عصبی شامل تبدیل تصویر با توناژ خاکستری به یک تصویر کاملا رنگی است. این وظیفه را می توان به عنوان نوعی فیلتر عکس یا تبدیل تصور کرد که ممکن است ارزیابی عینی نداشته باشد. نمونه ها شامل رنگ آمیزی عکس ها و فیلم های سیاه و سفید قدیمی است. مجموعه داده ها معمولا شامل استفاده از مجموعه داده های عکس موجود و ایجاد نسخه های خاکستری عکس است که مدل ها باید رنگ آمیزی را یاد بگیرند.
شکل خ: نمونه هایی از رنگ آمیزی عکس. برگرفته از “رنگ آمیزی تصویر رنگارنگ”
۶. بازسازی تصویر (Image Reconstruction)
بازسازی تصویر عمل پر کردن قسمت های از دست رفته یک تصویر است. این وظیفه را می توان به عنوان نوعی فیلتر عکس یا تبدیل تصور کرد که ممکن است ارزیابی عینی نداشته باشد. نمونه ها شامل بازسازی عکس ها و فیلم های سیاه و سفید قدیمی آسیب دیده است. . مجموعه داده ها معمولا شامل استفاده از مجموعه داده های عکس موجود و ایجاد نسخه های آسیب دیده عکس است که مدل ها باید بازسازی را یاد بگیرند.
شکل د: برگرفته از “تصویر حاوی سوراخ های نامنظم با استفاده از اتصالات جزئی”
٧. تصویر با وضوح فوق العاده (Image Super-Resolution )
تصویر با وضوح فوق العاده وظیفه تولید نسخه جدید یک تصویر با وضوح و جزئیات بالاتر از تصویر اصلی را دارد. داده ها معمولا شامل مجموعه داده های عکس موجود و ایجاد نسخه های کم کیفیت عکس است که مدل ها باید برای ایجاد نسخه های با وضوح فوق العاده آموزش ببینند.
شکل ذ: نمونه ای از نتایج حاصل از تکنیک های مختلف با وضوح فوق العاده
٨. سنتز تصویر (Image Synthesis)
سنتز تصویر وظیفه ایجاد تغییرات هدفمند در تصاویر موجود یا تصاویر کاملا جدید را دارد. این یک حوزه بسیار گسترده است که به سرعت در حال پیشرفت می باشد. این ممکن است شامل تغییرات جزئی در تصویر و فیلم باشد، مانند:
• تغییر سبک یک شی در یک صحنه
• اضافه کردن یک شی به صحنه
• اضافه کردن چهره به صحنه
شکل ر: نمونه ای از استایلینگ گورخر و اسب
همچنین ممکن است شامل ایجاد تصاویر کاملا جدید باشد، مانند:
• ایجاد چهره
• ایجاد اتاق
• ایجاد لباس
موارد مهم و جالب دیگری نیز وجود دارد که ما آنها را پوشش ندادیم زیرا آنها صرفا مربوط به بینایی رایانه ای نیستند.
نمونه هایی از تبدیل تصویر به متن و متن به تصویر:
نوشتن شرح تصاویر: تولید توضیحی متنی از یک تصویر.
توصیف تصویر: تولید توضیحی متنی از هر شی در یک تصویر.
متن به تصویر: تلفیق تصویر بر اساس توضیحات متنی.
روش های مختلف یادگیری عمیق (راهنمای جامع)
در این مقاله مفهوم و ماهیت یادگیری عمیق را مورد بررسی قرار میدهیم. در ادامه مطلب با انواع محتلف روشهای Deep Learning و یا یادگیری عمیق آشنا میشویم.
Deep Learning کلاسی از تکنیکهای یادگیری ماشین است که از لایههای زیادی از پردازش اطلاعات غیر خطی برای استخراج و تبدیل ویژگی تحت نظارت یا بدون نظارت، برای آنالیز الگو و طبقهبندی استفاده میکند. آن شامل لایههای سلسله مراتبی زیادی برای پردازش اطلاعات به شیوهای غیر خطی است که در آن برخی مفاهیم سطح پایینتر به تعریف مفاهیم سطح بالاتر کمک میکنند.
یادگیری عمیق به دنبال هوش مصنوعی پا به عرصه حضور گذاشته است. این یادگیری به یاری هوش مصنوعی آمده است تا به شکلی طبیعی تر به نیاز ها و خواست های بشر واکنش نشان دهد.
شبکههای عصبی مصنوعی سطحی قادر به کنترل مقدار قابلتوجهی از دادههای پیچیده نیستند، که در بسیاری از کاربردهای معمول مانند گفتار طبیعی، تصاویر، بازیابی اطلاعات و دیگر کاربردهای پردازش اطلاعات انسان مانند، آشکار هستند. یادگیری عمیق برای چنین کاربردهایی مناسب است. با یادگیری عمیق، تشخیص، طبقهبندی و طبقهبندی الگوها در دادهها برای یک ماشین با تلاشهای نسبتا کمتر امکان پذیر است. یادگیری عمیق پردازش چند لایهای شبیه انسان را در مقایسه با معماری کمعمق ارائه میدهد. ایده اصلی یادگیری عمیق استفاده از پردازش سلسله مراتبی با استفاده از لایههای زیادی از معماری است. لایههای معماری به صورت سلسله مراتبی مرتب میشوند.
بعد از چند مقدمه آموزش، ورودی هر لایه به لایه مجاور آن میرود. یادگیری عمیق از یک رویکرد توزیعی برای مدیریت دادههای بزرگ پیروی میکند. این روش فرض میکند که دادهها با در نظر گرفتن عوامل متعدد، زمان متفاوت و سطوح مختلف تولید میشوند. یادگیری عمیق ترتیب و پردازش دادهها در لایههای مختلف را با توجه به زمان وقوع، مقیاس یا طبیعت آن تسهیل میکند. یادگیری عمیق اغلب با شبکههای عصبی مصنوعی مرتبط است. در قسمت زیر سه دسته از یادگیری عمیق مورد بررسی قرار میگیرد.
Generative
Discriminative
Hybrid deep learning architectures
معماران از مقولههای کلی بر پیش آموزش یک لایه به روشی بدون نظارت تمرکز دارند. این رویکرد مشکل آموزش معماریهای سطح پایینتر را که بر لایههای قبلی تکیه دارند، از بین میبرد. هر لایه میتواند از پیش آموزشدیده و بعدا برای تنظیم عمومی و یادگیری بیشتر در مدل گنجانده شود. انجام این کار مشکل آموزش معماری شبکه عصبی با لایههای چندگانه را حل میکند و یادگیری عمیق را ممکن میسازد.
معماری شبکه عصبی ممکن است توانایی پردازش متمایز کننده از طریق انباشته کردن خروجی هر لایه با دادههای اصلی یا با ترکیبات اطلاعاتی مختلف و در نتیجه شکلدهی معماری یادگیری عمیق داشته باشد. مدل توصیفی اغلب خروجیهای شبکه عصبی را به عنوان یک توزیع شرطی روی تمام توالیهای برچسب ممکن برای توالی ورودی دادهشده در نظر میگیرد، که بیشتر از طریق یک تابع هدف بهینهسازی خواهد شد. معماری ترکیبی ویژگیهای معماری مولد و متمایز کننده را ترکیب میکند. به طور معمول، فرد میتواند یادگیری عمیق را به صورت زیر انجام دهد.
یک شبکه متشکل از یک لایه ورودی و یک لایه پنهان با گرههای ضروری بسازید. لایه مخفی دیگری را به بالای شبکه که قبلا یاد گرفته اضافه کنید تا یک شبکه جدید ایجاد شود. شبکه را بازیابی کنید. افزودن لایههای بیشتر را تکرار کنید و بعد از هر افزودن، شبکه را مجددا آموزش دهید. افزودن لایههای بیشتر را تکرار کنید و بعد از هر افزودن، شبکه را مجددا ارزیابی کنید.
آنچه در این نوشته خواهیم داشت
انواع مختلف مدلهای یادگیری عمیق
Autoencoders
یک اتوکد یک شبکه عصبی مصنوعی است که قادر به یادگیری الگوهای مختلف کدگذاری است. شکل ساده رمزگذار درست مانند پرسپترون چند لایه است که شامل یک لایه ورودی یا یک لایه پنهان یا یک لایه خروجی است. تفاوت قابلتوجه بین شبکه عصبی پرسپترون چند لایه معمولی و کدگذار خودکار در تعداد نودها در لایه خروجی است. در حالت رمزگذار، لایه خروجی شامل همان مقدار گره در لایه ورودی است. به جای پیشبینی مقادیر هدف طبق بردار خروجی، رمزگذار خودکار باید ورودیهای خود را پیشبینی کند. طرح کلی مکانیزم یادگیری به شرح زیر است.
محاسبه توابع فعالسازی ارائهشده در تمام لایههای پنهان و لایههای خروجی
پیدا کردن انحراف بین مقادیر محاسبهشده با ورودیها با استفاده از تابع خطای مناسب
انتشار خطا برای به روز رسانی وزنها
تکرار خروجی تا رسیدن به نتیجه رضایت بخش
اگر تعداد گرهها در لایههای پنهان کمتر از تعداد گرههای ورودی / خروجی باشد، آنگاه فعالیت آخرین لایه پنهان به عنوان نمایش فشرده ورودیها در نظر گرفته میشود. وقتی گرههای لایه پنهان بیشتر از لایه ورودی باشند، یک رمزگذار میتواند به طور بالقوه عملکرد شناسایی را یاد بگیرد و دراکثر موارد بیفایده شود.
Deep Belief Net
یک شبکه باور عمیق راه حلی برای مشکل کنترل توابع هدف غیر محدب و حداقل های محلی در هنگام استفاده از پرسپترون چند لایه معمولی است. این نوع جایگزین یادگیری عمیق شامل لایههای چندگانه متغیرهای پنهان با اتصال بین لایهها است. شبکه باور عمیق را می توان به عنوان ماشینهای بولتزمن محدود شده (RBM) در نظر گرفت که در آن هر لایه پنهان زیر شبکه به عنوان لایه ورودی قابلمشاهده برای لایه مجاور شبکه عمل میکند. آن پایینترین لایه قابلمشاهده را به یک مجموعه آموزشی برای لایه مجاور شبکه تبدیل میکند. به این ترتیب، هر لایه شبکه به صورت مستقل و حریصانه آموزش داده میشود. متغیرهای پنهان به عنوان متغیرهای مشاهدهشده برای آموزش هر لایه از ساختار عمیق استفاده میشوند. الگوریتم آموزشی برای چنین شبکه باور عمیقی به شرح زیر ارائه شدهاست:
یک بردار ورودی را در نظر بگیرید یک ماشین بولتزمن محدود شده را با استفاده از بردار ورودی آموزش دهید و ماتریس وزن را به دست آورید. دو لایه پایینتر شبکه را با استفاده از این ماتریس وزنی بردار ورودی جدید را با استفاده از شبکه (RBM)از طریق نمونهبرداری یا فعالسازی متوسط واحدهای مخفی تولید کنید. این روند را تکرار کنید تا به دو لایه بالایی شبکه برسید. تنظیم دقیق شبکه باور عمیق بسیار شبیه به شبکه پرسپترون چند لایه است.
شبکههای عصبی کانولوشنال
شبکه عصبی کانولوشنی (CNN) نوع دیگری از شبکه پرسپترون چند لایه است. این نوعی از شبکه عصبی است که در آن نورونهای فردی به روشی مرتب میشوند که به تمام نواحی همپوشانی شده در ناحیه بینایی پاسخ میدهند. سی ان ان عمیق با مدلسازی پشت سر هم قطعات کوچک اطلاعات و ترکیب آنها عمیقتر در شبکه کار میکند. لایههای نهایی یک تصویر ورودی را با تمام قالبها، و پیشبینی نهایی مانند مجموع وزنی همه آنها است. بنابراین، CNN های عمیق میتوانند تغییرات پیچیده و رفتار را مدل کنند و پیشبینیهای بسیار دقیقی ارایه دهند.
چنین شبکهای مکانیسم بصری موجودات زنده را دنبال میکند. سلولهای قشر بینایی به نواحی کوچک میدان بینایی که میدان دریافتی نامیده میشوند، حساس هستند. نواحی فرعی طوری چیده شدهاند که کل ناحیه بصری را پوشش دهند، و سلولها به عنوان فیلترهای محلی بر روی فضای ورودی عمل میکنند. الگوریتمها برای آموزش پارامترهای هر هسته کانولوشن استفاده میشود. علاوه بر این، هر هسته با پارامترهای مشابه در کل تصویر تکرار میشود. عملگرهای کانولوشنی وجود دارند که ویژگیهای منحصر به فرد ورودی را استخراج میکنند. علاوه بر لایه کانولوشنال، شبکه شامل یک لایه واحد خطی تصحیح شده، لایههای ادغام برای محاسبه حداکثر یا مقدار متوسط یک ویژگی در یک ناحیه از تصویر، و یک لایه از دست دادن شامل توابع زیان خاص کاربرد است. تشخیص تصویر و آنالیز تصویری و پردازش زبان طبیعی کاربردهای اصلی چنین شبکه عصبی هستند.
حوزه دید کامپیوتری در چند سال گذشته شاهد پیشرفتهای متعددی بودهاست. یکی از مهمترین پیشرفتها در این زمینه، CNNs است. اکنون، بخش عمیق CNNها هسته پیچیدهترین کاربردهای بینایی کامپیوتری فانتزی مانند ماشینهای خود گردان، تشخیص ژست، برچسب زدن خودکار دوستان در تصاویر فیس بوک، ویژگیهای امنیتی صورت، و تشخیص اتوماتیک شماره پلاک را تشکیل میدهد.
Recurrent Neural Networks
مدل کانولوشنی روی یک تعداد ثابت ورودی کار میکند، و یک بردار ثابت به عنوان خروجی با تعداد مراحل از پیش تعریفشده تولید میکند. شبکههای بازگشتی به ما این امکان را میدهند تا روی توالیهای بردارها در ورودی و خروجی عمل کنیم. در مورد شبکه عصبی بازگشتی، اتصال بین واحدها یک چرخه مستقیم را شکل میدهد. برخلاف شبکه عصبی سنتی، ورودی و خروجی شبکه عصبی بازگشتی مستقل نیستند بلکه مرتبط هستند. علاوه بر این، شبکه عصبی بازگشتی پارامترهای استاندارد را در هر لایه به اشتراک میگذارد. فرد میتواند شبکه بازگشتی را به روشی آموزش دهد که شبیه شبکه عصبی سنتی با استفاده از روش پس انتشار باشد.
در اینجا محاسبه گرادیان نه به گام جریان بلکه به گامهای قبلی نیز بستگی دارد. نوع دیگری به نام شبکه عصبی بازگشتی دوسویه نیز برای بسیاری از کاربردها مورد استفاده قرار میگیرد. شبکه عصبی دو جهته نه تنها خروجی قبلی بلکه خروجی آتی مورد انتظار را نیز در نظر میگیرد. در شبکههای عصبی بازگشتی دو طرفه و مستقیم، یادگیری عمیق را می توان با معرفی لایههای پنهان چندگانه به دست آورد. چنین شبکههای عمیقی ظرفیت یادگیری بالاتری را با تعداد زیادی داده یادگیری فراهم میکنند. گفتار، پردازش تصویر و پردازش زبان طبیعی برخی از حوزههای انتخابی هستند که در آنها شبکههای عصبی بازگشتی میتوانند مورد استفاده قرار گیرند.
یادگیری تقویتی در شبکههای عصبی
یادگیری تقویتی نوعی ترکیب برنامهنویسی پویا و یادگیری تحت نظارت است. مولفههای معمول این رویکرد عبارتند از محیط، عامل، اقدامات، سیاست، و توابع هزینه. عامل به عنوان کنترلکننده سیستم عمل میکند؛ سیاست تعیین میکند که چه اقداماتی باید صورت گیرد و تابع پاداش هدف کلی مساله یادگیری تقویتی را مشخص میکند. یک نماینده که حداکثر پاداش ممکن را دریافت میکند، میتواند به عنوان بهترین عمل برای یک دولت مشخص در نظر گرفته شود.
در اینجا، یک نماینده به یک نهاد انتزاعی، یا یک شی و یا یک موضوع اشاره میکند (اتومبیلهای خود مختار، روباتها، انسانها، حمایت مشتری وغیره)، که اقدامات را انجام میدهد. حالت یک عامل به موقعیت و حالت بودن آن در محیط انتزاعی اشاره دارد؛ برای مثال، یک موقعیت خاص در دنیای واقعیت مجازی، یک ساختمان، یک صفحه شطرنج، یا موقعیت و سرعت در یک مسیر مسابقه. یادگیری تقویتی عمیق، وعده یک روش یادگیری بسیار کلی را دارد که میتواند رفتار مفید را با بازخورد بسیار کمی یاد بگیرد.
مهم ترین مزایای یادگیری عمیق
یادگیری خودکار ویژگی ها
یادگیری چند لایه ویژگی ها
دقت بالا در نتایج
قدرت تعمیم بالا و شناسایی داده های جدید
پشتیبانی گسترده سخت افزاری و نرم افزاری
پتانسیل ایجاد قابلیت ها و کاربردهای بیشتر در آینده
جمعبندی
در این مقاله علاوه بر آشنایی با مفهوم یادگیری عمیق و تکنیکهای مختلف آن مبنی بر شبکههای عصبی و مزایای یادگیری عمیق در حوزه deep learning نیز آشنا شدید. امیدوارم از این مطلب کاربردی استفاده کرده باشید و تا حدودی سوالات شما را در این زمینه پاسخ داده باشیم.