شبکه پیچشی متراکم
آموزش‌های پیشرفته هوش مصنوعیبینایی ماشین

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

    0

    در این نوشتار 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 برای ارتقای انتشار گرادیانی 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 گرفته شده است.

    DenseNet-B (لایه‌های گلوگاهی)
    شبکه پیچشی متراکم

    DenseNet-B

    برای کاهش پیچیدگی و اندازه‌ی مدل، کانولوشن BN-ReLU-1×1 قبل از کانولوشن BN-ReLU-3×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 به صورت مستقیم از نسبت CxC تأثیر می‌پذیرند؛ اما تعداد پارامترهای شبکه پیچشی متراکم تحت تأثیر مستقیم نسبت و مقدار lxkxk هستند.

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

    ویژگی‌های متفاوت‌تر (نامتجانس‌تر)
    شبکه پیچشی متراکم

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

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

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

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

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

    شبکه پیچشی متراکم

    DenseNet

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

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

    کاربرد 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

    جزئیات یافته‌ها
    شبکه پیچشی متراکم

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

    داده‌های دیتاست 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)

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

    BigSleep به زبان ساده ؛ با جدیدترین نمونه هوش مصنوعی مولد آشنا شوید

    مقاله قبلی

    داده افزایی تصویری و چگونگی انجام آن در کتابخانه‌ی OpenCV

    مقاله بعدی

    شما همچنین ممکن است دوست داشته باشید

    نظرات

    پاسخ دهید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *