40 گام به سوی آینده‌ای هوشمند - مجموعه وبینارهای رایگان در حوزه هوش مصنوعی
Filter by دسته‌ها
chatGTP
آموزش هوش مصنوعی و انواع آن
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
پایتون و ابزارهای یادگیری عمیق
کتابخانه‌ های یادگیری عمیق
یادگیری با نظارت
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
اخبار
تیتر یک
رسانه‌ها
آموزش پردازش زبان طبیعی
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
رویدادها
کاربردهای هوش مصنوعی
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
 شبکه پیچشی متراکم یا DenseNet و مروری بر آن (در مسائل رده‌‎بندی تصویر)

شبکه پیچشی متراکم یا DenseNet و مروری بر آن (در مسائل رده‌‎بندی تصویر)

در این نوشتار DenseNet (شبکه پیچشی متراکم) را با هم مرور خواهیم کرد. شبکه پیچشی متراکم توسط یکی از مقالات ۲۰۱۷ CVPR مطرح شد که با بیش از ۲۰۰۰ ارجاع جایزه‌ی بهترین مقاله را به خود اختصاص داد. این شبکه‌ها حاصل همکاری مشترک دانشگاه کرنول Cornwell University، دانشگاه سینگوا Tsinghua University و تیم تحقیقاتی Facebook AI (FAIR) هستند.

شبکه‌های DenseNet به دلیل داشتن اتصالات متراکم، پارامترهای کمتر و دقت بالاتری نسبت به ResNet و Pre-Activation ResNet دارند.

فهرست مطالب

  1. بلوک متراکم Dense block
  2. معماری DenseNet
  3. مزایای DenseNet
  4. نتایج DenseNet روی دیتاست‌های کوچک CIFAR و SVHN
  5. نتایج DenseNet روی دیتاست بزرگ ImageNet
  6. بررسی دقیق‌تر روش Feature Reuse

۱- بلوک متراکم

مفهوم شبکه استاندارد
مفهوم شبکه استاندارد ConvNet

در شبکه ConvNet استاندارد، تصویر ورودی وارد چندین کانولوشن شده و ویژگی‌های سطح بالا دریافت می‌کند.

ResNet
مفهوم ResNet

در ResNet برای ارتقای انتشار گرادیانی Gradient propagation از تابع نگاشت همانی Identity mapping استفاده می‌شود. عملیات جمع مؤلفه‌ای Element-wise addition به کاررفته را می‌توان به صورت الگوریتم‌هایی در نظر گرفت که حالتی را از یک ماژول ResNet به ماژول دیگر آن منتقل می‌کنند.

یک بلوک متراکم
یک بلوک متراکم از DenseNet

هرکدام از لایه‌های شبکه پیچشی متراکم ورودی‌هایی اضافی از همه‌ی لایه‌های قبلی دریافت و نگاشت‌های ویژگی خود را به لایه‌های بعدی منتقل می‌کند. از روش الحاق Concatenation نیز می‌توان استفاده کرد؛ در این روش، هر لایه دانش جمعی Collective knowledge همه‌ی لایه‌های قبلی را دریافت می‌کند.

یک بلوک دنس
یک بلوک دنس در DenseNet با نرخ رشد k

از آن‌جایی که هر لایه نگاشت‌های ویژگی همه‌ی لایه‌های قبلی را دریافت می‌کند، شبکه می‌تواند باریک‌تر و فشرده‌تر باشد؛ یعنی تعداد کانال‌های کمتری داشته باشد. نرخ رشد Growth rate k معیاری است که تعداد کانال‌های اضافه شده در هر لایه را نشان می‌دهد.

بنابراین می‌توان گفت شبکه پیچشی متراکم از نظر محاسباتی و حافظه کارآیی بیشتری دارد. شکل پایین مفهوم روش الحاق طی انتشار رو به جلو را نشان می‌دهد.

ادغام طی انتشار رو به جلو
فرآیند ادغام طی انتشار رو به جلو

۲- معماری DenseNet

لایه‌ی اصلی تشکیل‌دهنده DenseNet

لایه تشکیل‌دهنده
لایه تشکیل‌دهنده

برای هر لایه‌ی تشکیل‌دهنده، تابع پیش-فعال‌سازی BN (Batch Norm) و ReLU و سپس کانولوشن ۳×۳ را اجرا می‌کنیم؛ خروجی این توابع نگاشت‌های ویژگی از k کانال است که، برای مثال، به منظور تبدیل x۰, x۱, x۲, x۳ به x۴ مورد استفاده قرار می‌گیرند. ایده‌ی زیربنایی این مرحله از Pre-Activation ResNet گرفته شده است.

[irp posts=”۳۰۶۸″]

DenseNet-B (لایه‌های گلوگاهی)

DenseNet-B
DenseNet-B

برای کاهش پیچیدگی و اندازه‌ی مدل، کانولوشن BN-ReLU-1×۱ قبل از کانولوشن BN-ReLU-3×۳ اجرا می‌شود.

چندین بلوک متراکم با لایه‌های گذار

چندین بلوک متراکم
چندین بلوک متراکم

کانولوشن ۱×۱ و تابع میانگین تجمع Average pooling ۲×۲ که بعد از آن می‌آید به عنوان لایه‌های گذار بین دو بلوک متراکم همجوار استفاده می‌شوند.

نگاشت‌های ویژگی درون یک بلوک متراکم هم‌اندازه هستند تا بتوان عملیات الحاق را به راحتی روی آن‌ها اجرا کرد.

در انتهای آخرین بلوک متراکم، یک تابع سراسری میانگین تجمع اجرا می‌شود و سپس یک کلسیفایر softmax به آن متصل می‌شود.

DenseNet-BC (فشرده‌سازی بیشتر)

اگر یک بلوک متراکم m نگاشت ویژگی داشته باشد، لایه‌ی گذار θm نگاشت ویژگی به عنوان خروجی تولید می‌کند؛ θ (۰<θ≤۱ ) به فاکتور فشرده‌سازی Compression factor اشاره دارد.

وقتی θ=۱ ، تعداد نگاشت‌های ویژگی موجود بین لایه‌های گذار بدون تغییر باقی می‌ماند. شبکه پیچشی متراکم که در آن θ<1، یک DenseNet-C است. در آزمایشات θ=۰.۵ بوده است.

زمانی‌که هم لایه‌های گلوگاهی و هم لایه‌های گذاری با θ<1 مورد استفاده قرار می‌گیرند، مدل DenseNet-BC خواهد بود.

همه‌ی شبکه‌های DenseNet صرف نظر از داشتن B/C، تعداد لایه‌های L و یا نرخ رشد k آموزش داده می‌شوند.

۳- مزایای DenseNet

گردش گرادیان قوی

نظارت عمیق ضمنی
نظارت عمیق ضمنی

سیگنال خطا را می‌توان به راحتی و به صورت مستقیم‌تر به لایه‌های قبلی انتشار داد. این عمل یک نظارت عمیق و ضمنی به شمار می‌رود، زیرا لایه‌های قبلی می‌توانند تحت نظارت مستقیم لایه‌ی رده‌بندی نهایی قرار گیرند.

کارآیی محاسباتی و پارامتری

پارامترهای ResNet و DenseNet
تعداد پارامترهای ResNet و DenseNet

تعداد پارامترهای هرکدام از لایه‌های ResNet به صورت مستقیم از نسبت CxC تأثیر می‌پذیرند؛ اما تعداد پارامترهای شبکه پیچشی متراکم تحت تأثیر مستقیم نسبت و مقدار lxkxk هستند.

از آن‌جایی که k<<C ، اندازه‌ی شبکه پیچشی متراکم بسیار کوچک‌تر از ResNet است.

ویژگی‌های متفاوت‌تر (نامتجانس‌تر)

ویژگی‌های متفاوت‌تر در DenseNet
ویژگی‌های متفاوت‌تر در DenseNet

از آن‌جایی که هر لایه‌ی شبکه پیچشی متراکم همه‌ی لایه‌های قبلی را به عنوان ورودی دریافت می‌کند، ویژگی‌های متفاوت‌تر و الگوهای غنی‌تری دارد.

[irp posts=”۳۰۰۳″]

نگهداری ویژگی‌هایی با پیچیدگی کمتر

شبکه استاندارد ConvNet
شبکه استاندارد ConvNet

در شبکه‌ی استاندارد ConvNet، طبقه بند از پیچیده‌ترین ویژگی‌ها استفاده می‌کند.

DenseNet
DenseNet

اما در شبکه پیچشی متراکم، ویژگی‌هایی که طبقه بند استفاده می‌کند سطوح متفاوتی از پیچیدگی دارند. در نتیجه این شبکه مرزهای تصمیم‌گیری Decision boundaries تولید می‌شود که درجه اطمینان بالاتری دارند. این امر می‌تواند توجیه‌کننده‌ی این موضوع باشد که چرا شبکه پیچشی متراکم روی داده‌های آموزشی محدود، همچنان عملکرد خوبی از خود نشان می‌دهد.

۴- نتایج شبکه DenseNet روی دیتاست‌های کوچک CIFAR و SVHN

CIFAR-10

کاربرد Pre-Activation ResNet
کاربرد Pre-Activation ResNet برای مقایسه‌ی دقیق

با داده‌افزایی (C10+)، مقادیر خطای آزمایشی:

  • Small-size ResNet-110: 6.41%
  • Large-size ResNet-1001 (10.2M parameters): 4.62%
  • State-of-the-art (SOTA) 4.2%
  • Small-size DenseNet-BC (L=۱۰۰, k=۱۲) (Only 0.8M parameters): 4.5%
  • Large-size DenseNet (L=۲۵۰, k=۲۴): ۳.۶%

بدون داده‌افزایی (C10)، مقادیر خطای آزمایشی:

  • Small-size ResNet-110: 11.26%
  • Large-size ResNet-1001 (10.2M parameters): 10.56%
  • State-of-the-art (SOTA) 7.3%
  • Small-size DenseNet-BC (L=۱۰۰, k=۱۲) (Only 0.8M parameters): 5.9%
  • Large-size DenseNet (L=۲۵۰, k=۲۴): ۴.۲%

همانطور که مشاهده می‌کنید، در استفاده از Pre-Activation ResNet به بیش‌برازشی شدید برخورد می‌کنیم؛ اما شبکه DenseNet با وجود محدودیت در نوع آموزشی داده ها عملکرد خوبی از خود نشان می‌دهد، زیرا شبکه پیچشی متراکم از انواع ویژگی‌ها با پیچیدگی‌های متفاوت استفاده می‌کند.

شبکه پیچشی متراکم
C10+ چپ: نسخه‌های متفاوت DenseNet؛ این نمودار نشان می‌دهد DenseNet-BC بهترین نتایج را به دست می‌آورد. وسط: مقایسه‌ی DenseNet با ResNet؛ از این نمودار می‌توان دریافت Pre-Activation ResNet پارامترهای کمتری نسبت به AlexNet و VGGNet دارد. با این حال، تعداد پارامترها در شبکه DenseNet-BC (k=12) یک سوم شبکه Pre-Activation ResNet است. راست: آموزش و آزمایش منحنی‌های DenseNet و ResNet؛ با مشاهده این نمودار می‌توان دریافت میزان خطای آزمایشی شبکه DenseNet-BC-100 (با ۰.۸ پارامتر) و شبکه Pre-Activation ResNet-1001 (با ۱۰.۲ پارامتر) یکسان است.

CIFAR-100

همانطور که مشاهده می‌کنید، روند مشابهی در آزمایش روی دیتاست CIFAR-100 نیز اجرا شد:

نتایج CIFAR-100
نتایج CIFAR-100

جزئیات یافته‌ها

نمایش نتایج با جزئیات کامل به همراه میانگین‌های داده‌افزایی
نمایش نتایج با جزئیات کامل به همراه میانگین‌های داده‌افزایی

داده‌های دیتاست SVHN شامل نمای پلاک خانه‌ها از خیابان است. رنگ آبی نشان‌دهنده‌ی بهترین نتایج است. DenseNet-BC نمی‌تواند به نتایجی بهتر از شبکه‌ای اصلی DenseNet دست یابد. نویسندگان مقاله معتقدند SVHN نسبتاً ساده به شمار می‌رود و مدل‌های بسیار عمیق روی چنین دیتاست‌هایی ممکن است به مشکل بیش‌برازش overfitting برخورد کنند.

۵-نتایج شبکه DenseNet روی دیتاست‌ بزرگ ImageNet

مقادیر متفاوت نرخ‌ خطا برای شبکه‌های
مقادیر متفاوت نرخ‌ خطا برای شبکه‌های Top-1 و Top0-5 از DenseNet به همراه نتایج Single-Crop (10-Crop)

 

نتایج مجموعه آزمایشی
نتایج مجموعه آزمایشی ImageNet در مقایسه با ResNet اصلی چپ: طی آزمایش و اعتبارسنجی مشخص شد مقدار خطای DenseNet-201 با ۲۰ میلیون پارامتر شبیه به مقدار خطای ResNet-101 با بیش از ۴۰ میلیون پارامتر بوده است. راست: همین رویه در مورد تعداد محاسبات (GFLOPs) نیز صدق می‌کند. پایین: شبکه DenseNet-246 (k=48) با خطای Top-1= 20.27% و خطای Top-5=5.17% بهترین نتیجه را به دست آورد.

۶- تجزیه و تحلیل روش Feature Reuse

نقشه حرارتی میانگین قدرمطلق
نقشه حرارتی میانگین قدرمطلق مقادیر وزن‌ها و چگونگی استفاده مجدد لایه‌ی منبع (s) توسط لایه‌ی هدف (l)
  • ویژگی‌هایی که توسط هرکدام از لایه‌های قبلی استخراج شده‌اند به صورت مستقیم توسط لایه‌های عمیق‌تر همان بلوک متراکم مورد استفاده قرار می‌گیرند.
  • وزن لایه‌های گذار نیز به لایه‌های پیشین انتشار می‌یابند.
  • لایه‌های داخل بلوک متراکم دوم و سوم به صورت پیوسته، آخرین وزن را به خروجی‌های لایه‌های گذار اختصاص می‌دهند (ردیف اول).
  • به نظر می‌رسد وزن‌های آخرین لایه، الحاقی از نگاشت‌های ویژگی نهایی باشند. چندین ویژگی‌ سطح بالای دیگر در مراحل انتهایی در شبکه تولید می‌شوند.

میانگین امتیاز / ۵. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]