در این مقاله به بررسی شبکه‌های عصبی عمیق سبک وزن پرداخته و تعدادی از مدل‌های معروف در این زمینه را معرفی میکنیم.

شبکه‌های عصبی عمیق با توجه به ماهیتی که دارند عمدتا مناسب اجرا بر روی دستگا‌ه‌های با منابع محدود نیستند و برای اجرا نیاز به سخت‌افزارهای قدرتمند با پردازشگر‌های گرافیکی قوی دارند. این در حالی است که در بسیاری از کاربردها باید چنین شبکه‌هایی بر روی دستگاه‌های با منابع محدود مانند تلفن‌همراه، بوردهای تعبیه شده، دستگاه‌های لبه و غیره اجرا شوند. از این رو به تکنیک‌هایی برای کاهش اندازه و فشرده‌سازی شبکه‌های عصبی نیاز است تا بتوانند با سرعت مناسب و بدون مشکل بر روی این دستگاه‌ها اجرا شوند. ما در ادامه این تکنیک‌ها را بررسی کرده و به ارائه چندین نمونه مهم می‌پردازیم.

کمی پس از ارائه اولین شبکه‌های عصبی عمیق و با توجه به نیاز به اجرای این مدل‌ها بر روی دستگاه‌های با منابع محدود، محققان سعی در ارائه روش‌هایی برای فشرده‌سازی و کاهش تعداد پارامترها و پیچیدگی آن‌ها داشته‌اند. می‌توان این روش‌ها را در ۶ دسته زیر تقسیم‌بندی کرد:

  • فشرده‌سازی مدل (Model compression): در این روش از راهکارهایی همانند فشرده‌سازی تصویر ورودی، هرس کانال، جستجوی معماری عصبی (NAS) و غیره استفاده می‌شود.
  • کوانتیزاسیون / هرس کردن (Quantization / Pruning): در هرس از روش‌هایی مانند حذف وزن‌ها، نورون‌ها، بلوک‌ها و سایر اجزا از یک شبکه بزرگ استفاده می‌شود. در کوانتیزاسیون وزن‌ها در نمایش‌های پایین‌تر بیتی ذخیره می‌شوند. اکثر روش‌های فشرده‌سازی با استفاده از کوانتیزاسیون و یا هرس غیرقابل برگشت هستند، یعنی بازیابی جزئیات دقیق معماری و وزن شبکه اصلی از یک مدل کوانتیزه یا هرس شده امکان‌پذیر نخواهد بود.
  • تقطیر دانش (Knowledge distillation): تقطیر دانش حداقل به یک مدل معلم بزرگ و یک مدل دانش‌آموز کوچک نیاز دارد که مدل دانش‌آموز بازنمایی‌های مدل معلم را یاد می‌گیرد. همچنین روش‌هایی مانند یادگیری مشارکتی که در آن چندین دانش‌آموز بدون نیاز به معلم یاد می‌گیرند و مدل‌هایی که به پر کردن شکاف دانش بین شبکه معلم بسیار عمیق و شبکه دانش‌آموز بسیار کم عمق کمک می‌کنند، مانند مدل‌های دستیار معلم، نیز در این دسته قرار می‌گیرند.
  • تفکیک عمق (Depth separation): فیلترهای کانولوشنی تفکیک‌پذیر که در معماری شبکه معروف MobileNet نیز از آن‌ها استفاده شده است، می‌توانند به صورت فضایی یا عمقی قابل تفکیک باشند. جداسازی فضایی به سادگی عرض و ارتفاع شبکه را در نظر می‌گیرد، در حالی‌که جداسازی عمقی علاوه بر عرض و ارتفاع، تعداد کانال های شبکه را نیز در نظر می گیرد.
  • کاهش پارامتر (Parameter reduction): به نظر می‌رسد کاهش تعداد پارامترهای مدل ساده‌ترین روش کاهش اندازه مدل باشد. چندین استراتژی برای به حداقل رساندن پارامترهای یک مدل وجود دارد، مانند کاهش تعداد لایه‌ها، انتخاب بُعد ورودی کوچک یا استفاده از شبکه‌های عصبی باینری که محاسبات را با استفاده از عملیات بیتی انجام می‌دهند.
  • سایر رویکردهای ترکیبی: سایر روش‌های ترکیبی که از ترکیب رویکردهای فوق یا روش‌های نوآورانه دیگری استفاده کرده‌اند در این دسته قرار می‌گیرند. در این میان می‌توان به مدل‌های معروف GhostNet ،MnasNet ،ShuffleNet ،SqueezeNet ،EfficientNet و غیره اشاره کرد. همچنین در این دسته می‌توان به مدل‌های ترانسفورمری سبک وزن که در سال‌های اخیر توجه زیادی به آن‌ها شده است مانند LightViT ،EdgeViT ،MobileViT و غیره اشاره کرد.

باید توجه داشت که در این مقاله تمرکز ما بیشتر بر روی شبکه‌های عصبی کانولوشنی و به طور کلی شبکه‌هایی بود که برای پردازش تصاویر استفاده می‌شوند و روش‌های بیان شده نیز برای فشرده‌سازی چنین مدل‌هایی بود، اما بعضی از تکنیک‌های بیان شده می‌توانند برای سایر شبکه‌ها مانند مدل‌های پردازش زبان طبیعی و غیره نیز به کار روند.