شبکه VGG چیست؟ + مزایا، معایب و کاربردهای آن
شبکه VGG اولین بار توسط گروهی از پژوهشگران دانشگاه آکسفورد به نام Visual Geometry Group یا همان گروه هندسه بصری، در یک مقاله مطرح شد. در واقع VGG مختصر و مخفف نام این گروه پژوهشگری است. عنوان مقاله آنها «Very Deep Convolutional Networks for Large-Scale Image Recognition» بود كه چند سال پیش منتشر شد و روی معماری شبکه عصبی کانولوشنی (Convolutional Neural Network یا CNN) تمرکز داشت. پس برای اینکه بدانیم شبکه VGG چیست، ابتدا باید ببینیم CNN چیست. سپس ساختار VGG، مزایا و معایب و کاربردهای آن را مورد بررسی قرار خواهیم داد.
شبکه CNN
CNN در واقع یک شبکه ساده است که میتواند از یک تصویر، جزئیات و اطلاعاتی را یاد بگیرد بدون اینکه لازم باشد بهصورت دستی دادههایی را برایش بنویسیم و تعریف کنیم.
کاربردهای CNN
از این شبکه در مواقع مختلفی استفاده میشود؛ برخی از کاربردهای آن به شرح زیر است:
- تشخیص چهره، پلاک خودروها، دستخط افراد یا تشخیص بیماری و…
- تقسیمبندی تصاویر
- شناسایی اشیاء
- طبقهبندی تصاویر
تعریف VGG و ارتباط آن با CNN
شبکه VGG نوعی از معماری شبکه CNN است. درواقع ساختار کلی شبکه CNN نام دارد و VGG یکی از مدلهای خاص و بسیار معروف این ساختار کلی است.
ساختار و طراحی VGG
این شبکه یک طراحی ساده و منظم دارد. تمام شبکه VGG از تکرار لایههای ساده و یکپارچه تشکیل شده است. برخی از ویژگیهای مهم ساختار آن به شرح زیر هستند:
- فیلترهای کانولوشن ۳*۳
- لایههای پولینگ ۲*۲
- چندلایه fully connected و یک لایه softmax در پایان ساختار برای طبقهبندی
نسخههای مختلف شبکه VGG
شبکه VGG، معماری یکسان اما نسخههای متفاوتی دارد. تفاوت این نسخهها با هم در تعداد لایههایشان است. اسامی و تعداد لایههای نسخههای مختلف شبکه VGG به شرح زیر هستند:
شبکه VGG-11
همانطور که از اسم این نسخه VGG پیداست، ۱۱ لایه دارد که ۸ لایه آن کانولوشن و ۳ لایه آن fully connected است.
شبکه VGG-13
این نسخه از شبکه VGG دارای ۱۰ لایه کانولوشن و ۳ لایه fully connected است.
شبکه VGG-16
پرکاربردترین نسخه شبکه VGG، نسخه ۱۶ آن است. این نسخه ۱۳ لایه کانولوشن دارد، ۱ لایه softmax و ۳ لایه fully connected و ۵ لایه max pooling. دلیل نامگذاری این نسخه VGG با عدد ۱۶، درواقع اشاره به ۱۶ لایه یادگیرنده این نسخه است. این یعنی در نامگذاری این نسخهها فقط لایههای fully connected و کانولوشن حساب میشوند.
نگاهی به ساختار VGG-16
بهعنوان پرکاربردترین نسخه شبکه VGG بد نیست نگاهی به ساختار این نسخه از معماری شبکه VGG بیندازیم:
Input: 224×224×3 (RGB image)
شبکه VGG-19
این نسخه از شبکه VGG، عمیقترین نسخه استاندارد آن است زیرا بیشترین لایههای یادگیرنده را دارد. ساختار آن قابل گسترش است که در حوزههای آموزشی کاربرد بسیار زیادی دارد و مبنای بسیاری از تحقیقات است.
دلایل استفاده از فیلر 3*3 در VGG
قبل تر گفتیم که در معماری شبکه VGG از فیلترهای ۳ در ۳ استفاده شده است، اما انتخاب این فیلترها چند دلیل داشته است:
1- غیرخطی بودن
وقتی شبکه ساختار غیرخطی دارد، ظرفیت آن بالاتر است. هر فیلتر کوچک در این شبکه، بعد از یک تابع خطی قرار میگیرد و به این ترتیب ظرفیت شبکه را بالا میبرد.
2- کاهش پارامتر
وقتی از سه عدد فیلتر ۳ در ۳ استفاده میشود انگار از یک لایه ۷ در ٧ استفاده شده است. این اتفاق باعث کاهش پارامترها میشود.
3- افزایش و بهبود یادگیرندگی
فیلترهای کوچک در استخراج ویژگیهای جزئی تواناتر هستند.
مزایای شبکه VGG
این معماری خاص از شبکه CNN ویژگیها منحصربهفردی دارد که سبب خاص و متفاوتبودن آن شده است. ویژگیهایی که نقاط قوت شبکه VGG را میسازند. برخی از آنها به شرح زیر هستند:
1- معماری ساده
با توجه به آنچه پیشتر گفتیم، شبکه VGG ساختار سادهای دارد که در آن لایهها با یک الگوی مشخص تکرار شدهاند. این موضوع، پیادهسازی شبکه و فهم آن را آسان کردهاست.
2- عملکرد بالا
اگرچه مدلهای عملکردی مختلفی مانند ImageNet در بین شبکههای خوانش تصاویر وجود دارند اما عملکرد شبکه VGG به قدری خوب است که این شبکه بهراحتی میتواند با ImageNet یا سایر مدلها رقابت کند.
3- قابلیت انتقال یادگیری
چون شبکه VGG قدرت بالایی در استخراج داده از تصاویر دارد، بهراحتی میتواند در حوزههایی مثل طبقهبندی تصاویر پزشکی، سامانههای تشخیص چهره، سبکسازی تصاویر و… مورد استفاده قرار بگیرد.
4- پایه و مبنای معماریهای بعدی
بسیاری از معماریهای نسلهای بعدی مثل ResNet از ساختار کلی VGG بهعنوان مبنا و پایه استفاده کردهاند.
معایب شبکه VGG
اگر بخواهیم از شبکه VGG ایراداتی بگیریم یا به نکاتی اشاره کنیم در معماری این شبکه چالشبرانگیز شده است، باید از مواردی به شرح زیر صحبت کنیم:
1- تعداد بالای پارامتر
اگرچه در ساختار شبکه VGG از فیلتر ۳ در ۳ استفاده شده است اما عمیقبودن لایهها در شبکه یادگیرنده با بیش از ۱۳۸ میلیون پارامتر (برای مثال در نسخه ۱۶)، این شبکه را بسیار سنگین کرده است.
اگرچه پیشتر گفتیم که استفاده از فیلترهای ۳ در ۳ نسبت به مدلهایی مثل ResNet مناسبتر است و حتی دیدیم که ۳ فیلتر ۳ در ۳ با ۲۷ پارامتر، معادل یک فیلتر ۷ در ۷ با ۴۹ پارامتر است، اما آنچه سبب شده شبکه VGG همچنان تعداد بالایی پارامتر داشته باشد، تعداد بسیار زیاد لایهها است.
2- نیازمند منابع محاسباتی بالا
شبکه VGG برای آموزش نیاز به GPUهای قوی و قدرتمند و حافظه بالا دارد.
3- طولانی بودن زمان آموزش
چون لایهها عمیق هستند و پارامترها تعداد بالایی دارند، شبکه VGG برای یادگیری و آموزش نسبت به رقبای خود یا سایر مدلها به زمان بیشتری نیاز دارد.
4- کارایی محدودتر
به دلیل پیچیدهبودن عملکرد شبکه VGG و عمق یادگیری آن، این شبکه در حوزههایی با نیازمندی به پیچیدگی بیشتر، مورد استفاده قرار میگیرند و برای حوزههای سادهتر صنعت، از مدلهای دیگری استفاده میشود.
کاربردهای شبکه VGG
با توجه به نقاط مثبت و معایب یا محدودیتهای شبکه VGG، میتوان گفت بیشترین حوزههایی که از آن بهره میبرند موارد زیر هستند:
1- طبقهبندی تصاویر (Image Classification)
با استفاده از شبکه VGG میتوان تصاویر را طبقهبندی کرد. دستهبندیهای مختلف تعریف میشوند و بعد شبکه تشخیص میدهد تصاویری که میبیند هرکدام متعلق به کدام دسته هستند.
2- تشخیص و شناسایی اشیا (Object Detection)
مدل شبکه VGG نمیگوید چه جزئیاتی در تصویر وجود دارد، بلکه میگوید این جزئیات چه هستند و کجا قرار دارند.
3- انتقال سبک (Style Transfer)
این مدل میتواند، محتوای یک تصویر با یک سبک خاص را با محتوای تصویری دیگر با سبکی متمایز ترکیب کند. مثلا میتواند تصویر یک منظره را با سبک نقاشیهای ونگوگ طراحی کند.
4- تشخیص و شناسایی چهره و احساسات
شبکه VGG میتواند چهره افراد مختلف را تشخیص دهد، شناسایی کند و از حالت چهره آنها بگوید که چه عواطف و احساساتی دارند.
5- حوزه پزشکی و علوم زیستی
تصاویر پزشکی را میتوان با شبکه VGG تشخیص داد و طبقهبندی کرد. برای مثال MRI، CT Scan و عکسهای X-ray با استفاده از این شبکه شناسایی و تشخیص داده میشوند.
ارتباط شبکه VGG و GAN
شبکه عصبی GAN در واقع نیازی به VGG ندارد اما در خیلی از پروژههای پیشرفته، از VGG به شکل زیر استفاده می شود:
1- Loss تابع در GAN (Perceptual Loss / VGG Loss)
بعضی وقتها برای اینکه تصاویر ساخته شده کیفیت بصری بهتری پیدا کنند، به جای اینکه فقط پیکسل به پیکسل با تصویر واقعی مقایسه شوند، ویژگیهای سطح بالاتر تصویر را از یک شبکه از پیش آموزش دیده مثل VGG استخراج میکنند. این به Generator کمک میکند که ساختار و جزئیات معنادارتری تولید کند.
2- ارزیابی کیفیت تصاویر GAN
بعد از تولید تصویر توسط GAN، ممکن است از VGG برای گرفتن بردار ویژگی و محاسبه شباهت دو تصویر (مثل SSIM یا LPIPS) استفاده کنند.
3- Style Transfer و GAN
در کارهایی مثل style transfer یا سوپررزولوشن (مثل SRGAN)، معمولاً بخش loss بر اساس VGG تعریف میشود تا سبک و جزئیات تصویر بهتر منتقل شود.
بنابراین می توان گفت:
- VGG → ابزار استخراج ویژگی و فهم محتوای تصویر
- GAN → چارچوب تولید داده جدید
- ارتباط → استفاده از ویژگی های استخراجشده توسط VGG برای تعریف loss بهتر یا ارزیابی خروجی GAN
جمعبندی و نتیجهگیری
شبکه VGG یکی از مهمترین و کاربردیترین مدلهای معماری شبکه CNN است که از آن در حوزههای مختلف استفادههای زیادی میشود. اگرچه در معماری این مدل فیلترهای 3 در 3 استفاده شده است که طبیعتا تعداد پارامتر کمتری دارند، اما بهدلیل زیاد بودن تعداد لایهها، در مجموع تعداد پارامترها بیشتر از مدلهای دیگر است. با اینکه مدلهای هوش مصنوعی موجود در بازار امروز، بسیار متنوع و کاربردی هستند اما هنوز هم از VGG بهعنوان مدل پایه و مبنای توسعه سایر ابزارهای هوش مصنوعی استفاده میشود. همچنین در مطلبی دیگر به معرفی شبکه عصبی MLP پرداخته ایم که می توانید آن مقاله را نیز مطالعه نمایید.








دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.