در این پست مقاله MnasNet را بررسی می‌کنیم و با ایده‌های مطرح شده در آن آشنا می‌شویم.

عنوان کامل این مقاله MnasNet: Platform-Aware Neural Architecture Search for Mobile می‌باشد و همانطور که از نام آن پیداست هدف این مقاله یافتن مدل‌های بهینه برای سخت‌افزارهای موبایل متفاوت با استفاده از جستجوی معماری عصبی می‌باشد. در روش ارائه شده به طور مستقیم تاخیر مدل بر روی دستگاه هدف اندازه‌گیری می‌شود و در تابع هدف وارد می‌شود و بنابراین در عملیات جستجو شبکه‌ای یافت خواهد شد که به بهترین مصالحه بین دقت و تاخیر دست یابد. بر خلاف روش‌های قبلی که از معیارهای نادقیق مانند FLOPS برای اندازه‌گیری تاخیر مدل استفاده می‌شد، در MnasNet تاخیر به طور مستقیم از اجرای مدل بر روی تلفن همراه هدف بدست می‌آید.

فضای جستجو سلسله مراتبی فاکتوریزه شده

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

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

شکل ۱ ساختار پایه فضای جستجوی MnasNet را نشان می‌دهد. همانطور که گفته شد، یک مدل CNN به دنباله‌ای از بلوک‌های از پیش تعریف شده تقسیم می‌شود. همانطور که در بسیاری از مدل های CNN معمول است، رزولوشن تصویر ورودی به تدریج کاهش یافته و اندازه (عمق) فیلتر افزایش می‌یابد. هر بلوک دارای لیستی از لایه‌های یکسان است که عملیات و اتصالات آن‌ها توسط فضای جستجوی فرعی هر بلوک تعیین می‌شود. به طور خاص، یک فضای جستجوی فرعی برای بلوک i شامل گزینه‌های زیر است:

  • عملگرهای کانولوشن (ConvOp): کانولوشن معمولی (conv)، کانولوشن عمقی (dconv) و کانولوشن گلوگاه معکوس (موجود در MobileNetV2)
  • انداره کرنل کانولوشن (KernelSize): 3×3، 5×5
  • نسبت فشار و برانگیختگی (SERatio): 0.25
  • عملگرهای پرش (SkipOp): ادغام (pooling)، identity residual یا بدون پرش
  • اندازه فیلتر خروجی (Fi)
  • تعداد لایه‌ها در هر بلوک (Ni)
Factorized Hierarchical Search Space
شکل ۱: فضای جستجو سلسله مراتبی فاکتوریزه شده در MnasNet

ConvOp، KernelSize، SERatio، SkipOp و Fi معماری یک لایه را تعیین می‌کنند، در حالی که Ni تعیین کننده تعداد تکرار لایه در هر بلوک است. لایه‌های داخل یک بلوک مشابه یک‌دیگرند اما لایه‌های بلوک‌های مختلف می‌توانند با یک‌دیگر متفاوت باشند. به طور مثال در شکل ۱ بلوک چهارم از N4 لایه مشابه تشکیل شده است که ساختار هر لایه شامل یک گلوگاه معکوس با کانولوشن 5×5 و فشار و برانگیختگی با نسبت 0.25 است. اما بلوک اول از N2 لایه مشابه تشکیل شده است که ساختار هر لایه آن تنها شامل یک کانولوشن ساده 3×3 است.

معماری MnasNet

با استفاده از عملیات جستجوی معماری عصبی توضیح داده شده، سه معماری متفاوت با سایزهای گوناگون (A1 تا A3) توسط نویسندگان مقاله یافت شده و در مقاله آورده شده است. معماری A1 در شکل ۲ آورده شده است.

MnasNet-A1
شکل ۲: معماری MnasNet-A1

همانطور که در شکل ۲ نشان داده شده است در این شبکه از معماری لایه‌های متفاوت و گوناگون استفاده شده است که این امر به لطف فضای جستجو سلسله مراتبی فاکتوریزه شده MnasNet فراهم می‌شود. همانطور که مشاهده می‌شود از بلوک‌ها و لایه‌های گوناگونی مانند کانولوشن‌های تفکیک پذیر عمقی و گلوگاه‌های معکوس موجود در MobileNetV2 و همچنین از کرنل‌ها با سایزهای مختلف (3×3 و 5×5) استفاده شده است. همچنین در بعضی بلوک‌ها از فشار و برانگیختگی (SE) نیز استفاده شده است. این تنوع در معماری باعث می‌شود تا شبکه به مصالحه‌ای مناسب بین تاخیر و دقت دست یابد، بر خلاف روش‌های قبلی مبتنی بر NAS که تنها تعدادی خاص از معماری‌ها را جستجو می‌کردند و بنابراین شبکه ارائه شده توسط آن‌ها چنین کارایی را نداشت.

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