بررسی معماری های شناخته شده شبکه های عصبی کانولوشنی عمیق(قسمت اول)

بررسی معماری های شناخته شده شبکه های عصبی کانولوشنی عمیق(قسمت اول)

نگارنده: حسین نیکدل
معماری AlexNet
اولین شبکه عصبی کانولوشن که در چالش ILSVRC-2012 اعمال شد AlexNet بود ، این معماری داده های پایگاه داده ImageNet که در ۱۰۰۰ گروه طبقه بندی شده بودند را با خطای ۱۵ درصد طبقه بندی کرد. این معماری شامل ۵ لایه کانولوشن ادغام شده با لایه های max-pooling و سه لایه تماما متصل است.

 

نکات اصلی:

  • این معماری توسط دادهای پایگاه داده ImageNet آموزش داده شد این دیتا بیس شامل ۱۵ میلیون عکس در ۲۲ هزار گروه است.
  • از تابع فعال سازReLU استفاده شد.(برای کاهش زمان آموزش) این تابع چندین برابر از توابع فعال ساز  tanh و sigmoid سریعتر است.
  • از تکنیکdata augmentation استفاده شد. شامل: image translations، horizontal reflectionsو patch extractions
  • پیاده سازی لایهDroupout برای مبارزه با بیش برارزش شدن نمونه های آموزشی
  • ازmini-batch stochastic gradient descent با مقادیر مشخص momentum و weight decay برای آموزش شبکه استفاده شد.
  • این معماری توسط دو کارت گرافیکGTX 580 برای ۵ تا ۶ روز آموزش داده شد. این اولین بار بود که یک مدل خیلی خوب بر روی این پایگاه داده عمل کرد و امروزه هنوز از تکنیک هایی مثل data augmentation و dropout به صورت وسیع استفاده می شود.

معماری ZF Net

سال ۲۰۱۳ بعد از ارائه معماری AlexNet تعدادی زیادی مدل برای رقابت ILSVRC2013 ارائه شد. برنده رقابت این سال معماری ای بود که توسط Zeiler و همکاران ارائه شد . نام این معماری ZF Net بود که به خطای ۱۱٫۲ درصد دست پیدا کرد. این معماری در واقع بیشتر مدل تنظیم شده معماری AlexNet بود اما تعدادی ایده اساسی جهت افزایش کارایی معرفی شد. دلیل دیگری که این مقاله را به یک مقاله عالی تبدیل کرد باز کردن پنجره های جدید به سوی هر چه بهتر درک کردن فرآیند یادگیری شبکه های کانولوشن بود. نویسنده این مقاله زمانی زیادی را صرف چگونگی عملکرد شبکه های عصبی کانولوشن،  چگونگی نمایش فیلتر ها و وزن ها کرد. این بصری سازی باعث شد تا درک بهتری از درون این شبکه ها ایجاد شود ؛ مواردی از قبیل اینکه نورون ها در هر لایه چه ویژگی هایی را یاد می گیرند.

نکات اصلی:

  • مشابه معماری AlexNet ، با تغییرات جزیی کم.
  • AlexNet توسط ۱۵ میلیون عکس آموزش داده شد ، در صورتی که این معماری فقط توسط ۱٫۳ میلیون عکس آموزش داده شد.
  • به جای استفاده از فیلترهایی با اندازه ۱۱×۱۱ در اولین لایه (استفاده شده در AlexNet) ، این معماری از فیلتر هایی با اندازه ۷×۷ و اندازه گام کمتر استفاده کرد . دلیل این تغییرات این است که فیلتر با اندازه کوچکتر کمک میکند که اطلاعات بیشتری از پیکسل های اصلی تصاویر ورودی حفظ شوند. به عنوان مثال با استفاده از یک فیلتر با اندازه ۱۱×۱۱ اطلاعات زیادی از تصاویر مخصوصا در اولین لایه از بین می روند.
  • با رشد شبکه تعداد فیلتر ها افزایش پیدا میکنند.
  • استفاده از تابع فعال سازی ReLU ،cross-entropy برای محاسبه میزان خطا و batch stochastic gradient descent برای آموزش
  • این معماری توسط یک کارت گرافیک GTX 580 برای ۱۲ روز آموزش داده شد.
  • یک تکنیک به نامDeconvolutional Network برای تصویر سازی پیشنهاد شد . این تکنیک به این علت deconvnet نامیده می شود که ویژگی های استخراج شده را به پیکسل های تصویر نگاشت می دهد ، مخالف آنچه که یک لایه کانولوشن انجام می دهد. (البته عبارت Deconvolutional یک نام بحث بر انگیز است و در واقع بایستی transposed convolution نامیده شود)

 

معماری VGG

Simonyan و همکارانش در رقابت ILSVRC 2014 با این دیدگاه که معماری عمیق تر باعث افزایش دقت میشود معماری VGGرا ارائه دادند که به خطای ۷٫۳ درصدی دست یافت. این معماری ۱۹ لایه ای از فیلتر هایی با اندازه ۳×۳ با گام ۱ به همراه maxpooling 2×۲ و گام ۲ استفاده شد.

نکات اصلی:

  • استفاده از فیلترهای با اندازه ۳×۳ ، اما شیوه استفاده این فیلتر ها نیز نسبت به فیلتر های ۱۱×۱۱ AlexNet و فیلتر های ۷×۷ ZF netمتفاوت است. دلیل نویسنده این است که ترکیب دو لایه کانولوشن ۳×۳ ، همانند میدان تاثیر یک فیلتر ۵×۵ است . این تکنیک به نوبه خود یک فیلتر با اندازه بزرگتر را شبیه سازی میکند در حالیکه از مزایای فیلتر با سایر کوچکتر نیز بهره مند میشویم. یکی از تاثیرات این تکنیک کاهش تعداد پارامتر ها است.همچنین با استفاده از دو لایه کانولوشن میتوان از دو لایه ReLU استفاده کرد.
  • سه لایه کانولوشن پشت سر هم یک میدان تاثیر ۷×۷ را دارد.
  • از لایه های ReLU بعد از هر لایه کانولوشن استفاده شد و مدل توسط الگوریتم batch gradient descent آموزش داده شد.
  • نکته جالب این است که تعداد فیلتر ها یعد از هر لایه maxpool دو برابر می شود. این باعث می شود که بعد فضایی کاهش و عمق رشد کند.
  • از scale jittering به عنوان یکی از متد های افزایش مصنوعی داده ها در طول آموزش استفاده کرد.
  • این شبکه توسط چهار کارت گرافیکNvidia Titan Black برای دو تا سه هفته آموزش داده شد.
  • این مقاله تاثیر گذارترین مقاله منتشر شده در این رقابت است و دو مفهوم اساسی سادگی و عمق را معرفی کرد.
بدون دیدگاه

ارسال یک نظر

نظر
نام
ایمیل
وبسایت