شبکه عصبی عمیق VGG
مقدمه
شبکه عصبی عمیق VGG یا به اصطلاح لاتین VGG Deep Neural Network یک شبکه عصبی کانولوشنی است که توسط محققانی بنام K. Simonyan و A. Zisserman از دانشگاه آکسفورد در مقاله “Very Deep Convolutional Networks for Large-Scale Image Recognition“ پیشنهاد شد. این شبکه جزو اولین شبکههای عصبی کانولوشنی است که توانست دقت بالایی در مسابقه معروف ImageNet بدست بیاورد. پایگاه داده ImageNet شامل حدود 16 میلیون تصویر در 1000 کلاس مختلف است و مسابقات آن هرساله برگزار میشود و تبدیل به جامجهانی بینایی کامپیوتر شده است!
باتوجه به پیشرفتهای اخیرِ شبکههای عصبی عمیق، شاید دیگر نتوان شبکه VGG را یک شبکه مدرن دانست، اما به دلیل ساختار خوب، سادگی، تعداد لایههای نهچندان زیاد هنوز در بسیاری از زمینههای بینایی کامپیوتر از این شبکه استفاده میشود. بعضی از محققان ممکن است شبکه از پیش آموزش دیده VGG را برای کاربرد مدنظر خود بازتنظیم (Fine Tune) کنند و یا اینکه تغییراتی در معماری این شبکه محبوب ایجاد نمایند و از ابتدا (Scratch) آن را آموزش دهند. درهرصورت، چه برای افراد حرفهای در زمینه شبکههای عصبی و یادگیری ماشین و چه برای افراد تازهوارد، شناخت معماری شبکه VGG بسیار کارآمد خواهد بود. در ادامه در مورد معماری شبکه عصبی عمیق VGG توضیح خواهیم داد.
معماری شبکه عصبی عمیق VGG 16
شبکه VGG در دو معماری مختلف با عنوانهای VGG 16 و VGG 19 ارائه شده است. ابتدا شبکه VGG 16 پیشنهاد شد و بعدها با تغییراتی جزئی در شبکه VGG 16، شبکه VGG 19 مطرح گردید. شبکه VGG 16 همانطور که در شکل زیر نشان داده شده، شامل 16 لایه کانولوشنی یا 16 لایه پارامتری است. شبکه VGG 16، شامل دو لایه کانولوشنی با 64 فیلتر 3×3 هست که پشت سر هم قرار گرفتهاند. سپس، یک لایه ماکسپولینگ 2×2 با پرش (Stride) به اندازه 2 قرار گرفته است. این لایه ماکسپولینگ علاوه بر نمونهبرداری، وظیفه کاهش بعد ویژگیها به نصف را هم دارد. در ادامه، دو لایه کانولوشنی دیگر با 128 فیلتر 3×3 و یک لایه ماکسپولینگ 2×2 و پرش 2 قرار گرفتهاند. بهطور مشابه، سه لایه کانولوشنی با 256 فیلتر 3×3 و یک لایه ماکسپولینگ 2×2 با پرش 2 قرار گرفتهاند. 3 لایه کانولوشنی با 512 فیلتر 3×3 و یک لایه ماکسپولینگ ادامه این شبکه هست که البته دو بار تکرار میشود. درنهایت، ویژگیها تبدیل به یک بردار ویژگی میشوند تا در اختیار لایههای نورونی یا تماماتصال یا Fully Connected قرار گیرند. دو لایه نورونی به ابعاد 4096 پشت سر هم قرار گرفتهاند. درنهایت، یک لایه نورونی به ابعاد 1000 که متناظر با تعداد کلاسهای کاربرد ما هست، در نظر گرفته شده است. باتوجه به اینکه پایگاه داده ImageNet شامل 1000 کلاس هست، در اینجا هم لایه خروجی شامل 1000 نورون است. در تمامی لایههای کانولوشنی و لایههای نورونی از تابع فعالساز یا Activation Function بنام RELU استفاده شده است.
بهصورت خلاصه، معماری شبکه VGG 16 شامل لایههای زیر هست:
- لایه کانولوشنی با 64 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 64 فیلتر 3×3 و تابع RELU
- لایه ماکس پولینگ 2×2 با پرش 2 در جهتهای افقی و عمودی
- لایه کانولوشنی با 128 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 128 فیلتر 3×3 و تابع RELU
- لایه ماکس پولینگ 2×2 با پرش 2 در جهتهای افقی و عمودی
- لایه کانولوشنی با 256 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 256 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 256 فیلتر 3×3 و تابع RELU
- لایه ماکس پولینگ 2×2 با پرش 2 در جهتهای افقی و عمودی
- لایه کانولوشنی با 512 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 512 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 512 فیلتر 3×3 و تابع RELU
- لایه ماکس پولینگ 2×2 با پرش 2 در جهتهای افقی و عمودی
- لایه کانولوشنی با 512 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 512 فیلتر 3×3 و تابع RELU
- لایه کانولوشنی با 512 فیلتر 3×3 و تابع RELU
- لایه ماکس پولینگ 2×2 با پرش 2 در جهتهای افقی و عمودی
- لایه فولیکانکت به ابعاد 4096
- لایه فولیکانکت به ابعاد 4096
- لایه فولیکانکت به ابعاد 1000 (لایه خروجی)
توجه: اگرچه معماری شبکه در قالب 21 مرحله در بالا گفته شد، اما منظور از 16 در VGG 16، شانزده لایه بدون نظر گرفتن لایههای ماکسپولینگ است.
همانطور که گفته شد، شما میتوانید در این شبکه تغییراتی بهوجود بیاورید، به عنوان مثال، تعدادی از لایههای آن را کم کنید و یا تعدادی لایه به آن بیفزایید. شبکه عصبی عمیق VGG 16 بسیار مورد توجه محققان و دانشجویان قرار گرفته و در زمینههای مختلفی از بینایی کامپیوتر از آن استفاده شده است. اما در مورد شبکه VGG 19 توضیحی ندادیم، چون تنها سه لایه نسبت به لایه VGG 16 بیشتر دارد. پیشنهاد هوسم به شما این است که اگر معماری شبکه VGG 16 را متوجه شدید، با جستجو در منابع لاتین ببینید سه لایه اضافه در VGG 19 چه ویژگیهایی دارد و در کدامیک از قسمتهای VGG 16 قرار میگیرد.
دیدگاهتان را بنویسید