به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

+1 امتیاز

سلام و عرض ادب
من منوجه Inception module در معماری GoogLeNet نشدم میشه به زبون ساده یه توضیحی بدید
ممنون

توسط (211 امتیاز)

1 پاسخ

+3 امتیاز

سلام
Inception Module اسمی هست که گوگل روی این بلاک گذاشته :
enter image description here
و ورژن بعدی :
enter image description here
و بصورت خیلی خلاصه یعنی یه لایه ای متشکل از چند لایه که هر کدوم با اندازه فیلتر های مختلف سعی میکنن اطلاعات مختلفی رو بدست بیارن و بصورت هم زمان این اطلاعات رو در اختیار لایه بعدی برای پردازش بزارن . باز ایده اینجا این بوده که تا جایی که امکان داره اطلاعات غنی از هر سطح بدست بیاد بقول خودمون یه حوضچه غنی از اطلاعات مختلف !

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

خب تا اینجا این شد ایده اولیه . اما یه مشکلی هم داشتن اینا اونم اینه که اگه شما بیایی و چندتا از این ماجولها رو پشت سر هم ردیف کنید میبینید که تعداد خروجی خیلی زیاد میشه . اینا برای اینکه این مشکل رو هم برطرف کنن از ایده Network in Network استفاده کردن و اینطوری کاهش ابعاد دادن . این کار البته یه مشکل دیگه هم بوجود میاره و اونم اینه که بعد این کاهش ابعاد داده شدن چیزی که بدست میاد یه بازنمایی از داده به فرم غیر تنک و در اصل کمپرس شده اس و این ناقض اون ایده اصلی برای تقریب ساختار تنک هست. پبرای همین تو ورژن های بعدی اینطور عمل کردن که عمل کاهش ابعاد فقط زمانی انجام بشه که نیاز به حفظ بازنمایی های تنک تا حد ممکن باشه . در عمل هم اینا اومدن قبل از هرچیزی یه لایه کانولوشن 1 در 1 زدن (که در تصویر دوم مشخصه )
یه خوبی این ماجول اینه که میشه تعداد زیادی از اونها رو استفاده کرد و اون بار پردازشی بصورت متناسب افزایش پیدا کنه .
با این ایده که اطلاعات دیداری باید در مقیاس های مختلف پردازش بشن و بعد با هم ترکیب و به مرحله بعد ارسال شده تا مرحله بعدی به اطلاعات غنی از ویژگی های انتزاعی در مقیاس های مختلف بصورت هم زمان دسترسی داشته باشه همخونی داره .
استفاده از این ماجول ها میتونه باعث افزایش سرعت 2 تا 3 برابر نسبت به شبکه ای که فاقد این ماجول ها هست بشه .
معماری های مختلفی از این معماری اقتباس کردن و معماری های خودشونو ساختن مثل ResNet مثل Squeezenet و...

توسط (4.3k امتیاز)
ممنون از توضیحات کاملتون
مفهومNetwork in Network  رو متوجه نمیشم.یعنی شبکه ای از Inception module ایجاد میشه؟
ممنون
سلام . Network in Network یا به اختصار NIN اسم یک مقاله خیلی معروفه که سال 2014 منتشر شد . این ایده لایه کانولوشن 1x1 رو Global Average Pooling (یک نوع لایه پولینگ) رو اولین بار تو این مقاله ارائه دادن و بعد بقیه از اون تو معماری هاشون استفاده کردن.
ضمنا هر وقت جواب گرفتید . جواب صحیح رو با زدن علامت تیک انتخاب کنید تا مشخص بشه این سوال به جوابش رسیده.
...