CBIR: Content Based Image Retrieval

بازیابی تصویر محتوا محور

CBIR: Content Based Image Retrieval

بازیابی تصویر محتوا محور

یادگیری عمیق چیست؟


معمولا یادگیری عمیق اشاره به مجموعه ای از الگوریتم های یادگیری ماشین دارد که معمولا مبتنی بر شبکه های عصبی مصنوعی اند و تلاش دارند تا انتزاعات سطح بالای موجود در داده ها را مدل نماید. از این مدل ها برای توسعه راه هایی جهت بازنمایی داده ها استفاده می شود. داده ها میتوانند شامل یک کلمه، پیکسل، فرکانس و باشند و ممکن است معنای کمی بخودی خود داشته باشند اما ترکیب این داده ها می تواند چیز سودمندی را نمایش دهد.

مدلهای یادگیری عمیق مختلفی در تحقیقات و فعالیت های تجاری مورد استفاده قرار می گیرند. بعضی از این مدلها به قرار زیر اند :

·         شبکه عصبی کانولوشن

·         شبکه باور عمیق

·         شبکه عصبی  feed-forward

بسیاری از مدلهای یادگیری عمیق، الهام گرفته از فرآیند های بیولوژیکی اند.

یادگیری عمیق را میتوان هم در یادگیری با نظارت(supervised)  و هم بدون نظارت(unsupervised)  مورد استفاده قرار داد

یادگیری عمیق چگونه کار میکند؟

الگوریتم BackPropagation الگوریتم محبوبی است که یادگیری را در یادگیری عمیق در بسیاری از مدلها پیاده میکند. ایده این الگوریتم در دهه ۷۰ میلادی مطرح و در سال ۱۹۸۶ در مقاله " Learning representations by back-propagating errors "توسط  Rumelhartو Hinton و Williams به شهرت رسید.

یادگیری عمیق یکی از زیرمجموعه های یادگیری ماشین است وعملا همان شبکه های عصبی قدیمی هست که با پیشرفت های تکنولوژی توسعه یافته است. با عمیق شدن این شبکه ها و سلسله مراتبی که توسط لایه های مختلف ارائه می شود، سطوح انتزاع مختلفی توسط این شبکه ها بدست می آید. این شبکه ها داده محور بوده و بصورت خودکار مهندسی ویژگی در آنها انجام می گردد.

طی چند سال اخیر با پیشرفت سخت افزار و عمیق کردن شبکه ها بحث معماری های عمیق مجدد رونق گرفته است. بنابراین می توان بیان کرد که یادگیری عمیق مجموعه ای از تکنیکهای مبتنی بر شبکه های عصبی هست که اجازه  یادگیری ویژگی ها بصورت خودکار از خود داده های ورودی رو فراهم می کند. امروزه معماری های مختلفی از این نوع وجود دارد. معروف ترین و موفق ترین اونها شبکه های کانولوشنی هستند.

در مقابل یادگیری عمیق، یادگیری کم عمق یا اصطلاحا  shallow learning‌ وجود دارد که قبل از یادگیری عمیق از آن استفاده می شد و در واقع همان support vector machine‌ ها و شبکه های عصبی معمولی و بود.

در یادگیری کم عمق از شبکه عصبی (کم عمق) یا support vector machine‌ها و استفاده می شود و بیشتر برای دسته بندی و تمایز قائل شدن بین کلاسهای مختلفی است که در داده ها وجود دارد (به عنوان مثال برای شناسایی تصاویر سرطان و یا پیش گویی قیمت مسکن که در آن اطلاعات چندین سال اخیر در قالب داده وارد شده و سپس سیستم بر اساس اطلاعات جدید مثلا مقدار زیربنا و... قیمت را محاسبه می کند) اینها نمونه ای از یادگیری هستند. در روش کم عمق می بایست  مهندسی ویژگی انجام و یکسری الگوها و یا معادلات برای کشف ارتباط بین دادها پیدا کرده و بعد با استفاده از آن  مدل را آموزش میدادیم. دریادگیری عمیق خود سیستم مهندسی ویژگی را انجام می دهد. لذا خیلی مورد توجه قرار گرفته و نتایج بسیار عالی ای از آن به دست آمده است. یه نکته مهم در این روش ها عمق می باشد. مثلا شبکه عصبی هم در یادگیری عمیق کاربرد دارد و هم در یادگیری کم عمق! و تفاوت آنها در عمق شبکه می باشد.

 

در اصل یادگیری عمیق در دهه ۸۹ و ۹۰ نیز وجود داشته ولی به خاطر محدودیت سخت افزار و الگوریتم ها عملا تعداد لایه های شبکه عصبی محدود بوده و از سال  ۲۰۱۰ و ۲۰۱۱ و خصوصا ۲۰۱۲ با شدت تمام مطرح شده است. در سال ۲۰۱۲ بود که در اصل الکس کریژوسکی و جف هینتون معروف (یکی از پایه گذاران یادگیری عمیق دنیا) توانستند با استفاده از کارت گرافیک یه شبکه کانولوشنی رو آموزش داده و نتایج حیرت انگیزی بدست آوردند.

 

شبکه های کانولوشنی هم نوعی از شبکه های عصبی هستند و تو این شبکه سعی شده روش مغز در شناسایی تصاویر به نحوی پیاده سازی شود و تقریبا کلیات شبکه  عصبی درمورد آن صادق بوده و دارای یک سری تقاوت ها می باشد. مثلا در شبکه های عصبی ما اتصالات کامل داشتیم ولی اینجا وجود نداشته و فقط اشتراک پارامترها را داریم.

 

در شبکه عصبی لایه ها مثل لیست ویک بعدی هستند. اما در شبکه کانولوشن، لایه کانولوشن چند بعدی است و یکسری لایه ها و عملیاتهای خاص مربوط به خودش را داراست.

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.