حتماً lately اسم شبکههای عصبی اسپایکی یا همون SNN رو شنیدی – اینا نسل جدید شبکههای عصبی هستن که الهام از نورونهای مغز گرفتن، و معمولاً با مصرف خیلی کمتر انرژی میتونن کارهای باحالی انجام بدن. اما یه مشکل گنده اینه که این شبکهها هنوز برای اجرای روی سختافزارهای کمتوان (مثلاً چیپهایی که تو دستگاههای کوچک یا موبایل کار میکنن) یه کم زیادی بزرگ و پرمصرف هستن. به زبون ساده، جا نمیشن و اجراشون هزینهبر میشه!
حالا یکی از راههایی که این مشکل رو حل میکنن، چیزی به اسم “Pruning” هست. Pruning یعنی آرومآروم شبکه رو سبُک کنن: بعضی از نورونها یا اتصالهای اضافیش رو حذف کنن تا شبکه کوچیکتر بشه ولی هنوز هم خوب کار کنه. این کار کمک میکنه هم پارامترها (یعنی اطلاعات ذخیره شده تو شبکه) و هم SynOps کم بشه. SynOps همون تعداد عملیات سیناپسی هست؛ یعنی تعداد باری که سیگنالها از یه نورون به نورون دیگه رد و بدل میشه — تو شبکههای عصبی اهمیت زیادی داره چون هرچی کمتر باشه شبکه سریعتر و کممصرفتره.
یه جور خاص Pruning به اسم Search-Based Pruning هست، که توش ساختار شبکه رو بعد از سبُک کردن دوباره میگردن و بهترش میکنن. اما یه خورده دردسر داره! اغلب این روشها نمیتونن SynOps رو مستقیم و دقیق به عنوان محدودیت بذارن وسط کار جستجو. چون SynOps تو فرآیند پیدا کردن ساختار جدید تغییر میکنه، آخرش ممکنه شبکهای که پیدا میشه، با محدودیت SynOps هدفمون یه جور نشه و بیشتر یا کمتر بشه — یه جورایی حرف گوش نمیکنه!
حالا اگه برات سؤال شده که “چه جوری مستقیم خود SynOps رو کنترل کنیم؟” اینجاست که مقالهی جدید SPEAR وارده ماجرا میشه! بچهها اومدن تو SPEAR از یادگیری تقویتی (Reinforcement Learning یا RL – روشی که مدل رو به جای آموزش عادی، هی تشویق و تنبیه میکنیم تا خودش یاد بگیره بهترین کار رو انجام بده) استفاده کردن تا مستقیماً خود SynOps رو بذارن وسط قاعده بازی و هر ساختاری که تست میکنن SynOpsش رو کنترل کنن.
اما یه چالش اساسی وجود داره: SynOps تو روند جستجو هی تغییر میکنه و نمیتونن موقع هر قدم دقیق حسابش کنن که آیا شبکه داره تو محدودهی درست حرکت میکنه یا نه. واسه همین یه مکانیسم خاص به اسم LRE طراحی کردن – LRE یعنی یه روش پیشبینی SynOps نهایی! این واحد پیشبینی بهشون کمک میکنه حدس بزنن وقتی روند pruning یا همون سبُکسازی تموم شد، SynOps شبکه واقعاً چقدره.
جالبیش اینه که چون نمیتونستن SynOps رو مستقیم تو محدودیتهای تصمیمگیری RL بذارن، اومدن یه جایزه (Reward) جدید به اسم TAR هم تعریف کردن — این کمک میکنه فرآیند جستجو واسه پیدا کردن ساختار بهینه با SynOps درست سریعتر و استیبلتر باشه. Reward تو RL همون انگیزهایه که به مدل میدیم تا بفهمه مسیرش درسته یا نه.
وقتی این روش (SPEAR) رو تست کردن، نتیجهها خیلی خوب بوده! تونستن شبکه عصبی اسپایکیشون رو حسابی جمع و جور کنن، بدون اینکه محدودیت SynOps رو رد کنه — یعنی هم شبکه سبک شد، هم از لحاظ کارایی پایین نیومد، هم تو سختافزارهای محدود اجرا شدنیتر شد.
جمعبندی: مقاله SPEAR یه جور روش جدید برای pruning شبکههای عصبی اسپایکیه که تقریباً تمامی مشکلات مربوط به کنترل دقیق SynOps تو جستجو رو با هوشمندی با روش یادگیری تقویتی و یه سیستم پیشبینی مخصوص، حل کرده. باعث میشه شبکههات آماده استفاده تو دستگاههای کوچک و کممصرف باشن، بدون اینکه لازم باشه کلی تست و خطا و تنظیم دستی بکنی. خلاصه، اگه با شبکههای عصبی اسپایکی سر و کار داری و میخوای مدلها رو سبک و جمع و جور کنی، پیشنهاد میدم حتماً یه نگاهی به SPEAR بندازی!
منبع: +