شبکه عصبی کانولوشنی در دنیای یادگیری عمیق-قسمت اول
یادگیری عمیق توانایی بالایی در مدیریت حجم زیادی از داده ها دارد. به همین دلیل در چند دهه گذشته به یک ابزار بسیار قدرتمند تبدیل شده است. یکی از محبوب ترین شبکه های عصبی عمیق شبکه های عصبی کانولوشنی میباشد. در این مطلب به بررسی و تفسیر این شبکه میپردازیم.
شبکه کانولوشنی برای اولین بار در حدود دهه 1980 توسعه و مورد استفاده قرار گرفتند. اولین مسائلی که با کمک این شبکه حل شد، تشخیص ارقام دستنویس بود. و بیشتر در بخشهای پستی و خواندن پین کدها مورد استفاده قرار میگرفت. امروزه این شبکه بیشتر برای تجزیه و تحلیل بصری تصاویر مورد استقاده قرار میگیرد. این شبکه ها از تکنیک خاصی به نام کانولوشن استفاده میکنند. که بار اصلی عملکرد شبکه را برعهده میگیرد. نکته اصلی در رابطه با شبکه عصبی کانولوشنی این است که تصاویر را به فرمی تبدیل میکند که پردازش آن آسانتر شود. و از جمله مزایای این شبکه عدم میتوان به عدم از دست دادن اطلاعات اشاره کرد. ساختار این شبکه را میتوان در شکل بالا ببینیم.
نحوه عملکرد شبکه عصبی کانولوشنی به چه صورت می باشد؟
در ابتدا به تصویر و یک سری توضیحات مرتبط با آن میپردازیم. تصاویر یا به صورت رنگی و سه کاناله هستند. در حالی که تصاویر مقیاس خاکستری دارای تنها یک کانال هستند. برای درک بهتر تصویر زیر را نگاه کنید. این تصویر بیان کننده یک تصویر رنگی با سه کانال ( طول،عرض و ارتفاع) میباشد.
در این مطلب برای درک بهتر و سادگی عملکرد شبکه عصبی کانولوشنی را با کمک تصویر مقیاس خاکستری ارائه میدهیم. همانطور که پیشتر گفته شود اصلیترین عملکرد این شبکه کانولوشن میباشد. شکل زیر بیان کننده عمل کانولوشن است. برای انجام این کار از یک فیلتر 3*3 استفاده کردیم. و با اعمال این فیلتر روی تصویر به استخراج ویژگیهای پیچیده تصویر میپردازیم.
برای انجام این عمل کرنل کانولوشنی که همان فیلتر ما میباشد را بر روی تصویر ورودی اعمال میکنیم. در هنگام این عمل کرنل بر روی یکایک پیکسلهای تصویر اعمال و در آن ضرب میشود. و در نهایت مقادیر حاصل شده با یکدیگر جمع میشوند. برای درک بهتر به نحوه عملکرد شکل زیر دقت کنید.
حال اگر تصویر ورودی یک تصویر رنگی یا سه کاناله باشد کافیست این عمل را در ازای یکایک کانالهای تصویر (R_G_B) تکرار کنیم. شکل زیر گویای بیان فوق است.
شبکههای عصبی کانولوشنی از چندین لایه تشکیل شده است. لایه کانولوشنی، لایه ادغام و لایه اتصال کامل بخشهای این شبکه را تشکیل میدهند. لایه کانولوشن و نحوه عملکرد آن تا اینجای مطلب به تفضیل شرح و بررسی شد.
لایه ادغام چیست؟
این لایه در شبکه عصبی کانولوشنی وظیفه کاهش ابعاد فیچرهای استخراج شده در لایه کانولوشن را دارد. در واقع با کاهش ابعاد سبب کاهش بار محاسباتی میشود. لایه ادغام به دو صورت ادغام میانگین و ادغام بیشینه تقسیمبندی میشود.
شکل فوق نشاندهنده ادغام بیشینه است. با انجام این کار بیشترین مقدار پیکسل را که توسط فیلتر پوشانده شده است،پیدا میکنیم. از این روش برای کاهش نویز استفاده میشود. ادغام میانگین نیز شبیه به مکانیزم ادغام بیشینه عمل میکند. با این تفاوت که در هر قسمت پوشیده شده توسط فیلتر مقدار میانگین پیکسل ها را بدست میآورد. برای درک بهتر مطلب به شکل زیر توجه کنید. فیلتر استفاده شده در مثال زیر 2*2 میباشد.
لایه اتصال کامل چیست؟
این لایه شامل نورونهایی است که به طور مستقیم به سلولهای عصبی در دو لایه مجاور متصل هستند،بدون اینکه به هیچ لایهای در داخل آنها متصل شوند. عملکرد این لایه شبیه به نورونها در شبکههای عصبی سنتی میباشد.
لایه اتصال کامل در انتهاترین لایه شبکه عصبی کانولوشنی عمیق مفید است. پس از لایههای کانولوشن و ادغام خروجی فعلی شامل بازنماییهای توزیع شده از تصویر ورودی میباشد برای انتخاب ویژگیهای قدرتمندتر، ادغام این خروجیهای حاصله ما را به نتیجه مطلوبتری میرساند و این کار به وسیله لایه اتصال کامل صورت میگیرد.
دیدگاهتان را بنویسید