تانگما: تابع فعال‌سازی جدید و باحال با تنظیم خودش!

Fall Back

خب بیا راحت و خودمونی در مورد یه موضوع بزرگ توی دنیای هوش مصنوعی صحبت کنیم: تابع فعال‌سازی جدیدی به اسم «تانگما» (Tangma) که کلی سر و صدا کرده! اگه تابحال با شبکه‌ عصبی (همون سیستم‌هایی که مثل مغز آدم تصمیم می‌گیرن و یاد می‌گیرن) کار کرده باشی، حتماً می‌دونی «تابع فعال‌سازی» چقدر حیاتی و مهمه. این تابع همون چیزیه که باعث میشه شبکه‌ بتونه چیزای پیچیده رو یاد بگیره و داده‌ها رو پردازش کنه. یه جوری نقش “جرقه ذهن” نورون رو بازی میکنه!

حالا تو مقاله‌ای که تازه اومده و حسابی تازه‌س (همین امسال روی arXiv منتشر شده)، یه تیم خفن اومدن تانگما رو معرفی کردن؛ یه تابع فعال‌سازی که ترکیبیه از فرم صاف و جذاب تانژانت هیپربولیک (tanh) — یعنی همون تابعی که خروجیاش بین منفی یک و یک محدود میشه و انحناش اصولیه — با دو تا پارامتر یادگیری‌شونده.

اصلاً این پارامترهای یادگیری‌شونده چی‌ان؟

خب اجازه بده واضح بگم: تو تانگما دو تا عدد خیلی مهم هست:

  • آلفا ($\alpha$): این یکی مسئول جابجا کردن نقطه عطف منحنیه. یعنی می‌تونه مشخص کنه نورون دقیقاً کجا باید فعال شه یا نشه. با این ترفند، شبکه می‌تونه انعطاف بیشتری داشته باشه و به داده‌های مختلف بهتر واکنش نشون بده!
  • گاما ($\gamma$): اینم نقشش اینه که به تابع، خاصیت خطی تزریق کنه تا وقتی سیگنال‌ها خیلی ضعیف هم هستن، وزنا هنوز به‌روز رسانی بشن. به‌قول دانشمندها، میاد “گرادیان ضعیف” رو حفظ می‌کنه و آموزش شبکه رو پایدارتر میکنه. (گرادیان یعنی همون شیب تابع که شبکه باهاش یاد می‌گیره).

این دو تا پارامتر برخلاف تابع‌های معمولی، توسط خود شبکه توی فرآیند یادگیری تنظیم می‌شن (یعنی به اصطلاح، “learnable” یا قابل یادگیری هستن).

توی چه کارایی تستش کردن؟

پژوهشگرا اومدن تانگما رو روی دو تا دیتاست معروف آزمایش کردن:

  • MNIST (که شامل کلی عکس دست‌خط عدد انگلیسیه، یه جورایی Hello World بین داده‌های بینایی کامپیوتریه!)
  • CIFAR-10 (یه مجموعه تصویر کوچولو و متنوع شامل ۱۰ نوع شی و حیوان مختلف)

این تابع فعال‌سازی جدید رو با چند تا حریف سرسختش مقایسه کردن: ReLU (تابع فعال‌سازی کلاسیک و محبوب، تقریبا تو همه مدل‌ها هست)، Swish و GELU (این دو تا هم جدیدترن و ادعا دارن بهتر از ReLU کار می‌کنن).

چیا پیدا کردن؟

روی دیتاست MNIST:

  • تانگما تونسته بالاترین دقت اعتبارسنجی رو بیاره: ۹۹.۰۹٪! یعنی تقریباً هیچ عددی رو اشتباه تشخیص نداده.
  • کمترین مقدار ضرر (loss) هم ثبت کرده، یعنی کارایی بهتر و اشتباه کمتر تو تشخیص اعداد.
  • سرعت یادگیریش هم بالاتر بوده و زودتر به جواب درست رسیده. یعنی اگر بخوای شبکه رو با تانگما آموزش بدی، هم زودتر به نتیجه می‌رسی و هم با کیفیت بهتر.

روی CIFAR-10:

  • بالاترین دقت اعتبارسنجی رو داشته: ۷۸.۱۵٪ (اینجا کار سخت‌تره چون تصاویر متنوع‌تر و کیفیت پایین‌تری دارن).
  • عملکردش نسبت به بقیه تو ضرر (loss) هم رقابتی بوده. یعنی نه تنها دقتش خوبه، بلکه روند یادگیریش هم مثل آدم نصیحت‌پذیر از بقیه بهتره!
  • از لحاظ بازده آموزش (همون مدت زمان لازم برای یادگیری تو هر دور یا epoch)، تانگما نسبت به Swish و GELU سریع‌تر بوده. یعنی زمستون طولانی آموزش نداری!

خلاصه داستان

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

ایده جالب پشت تانگما اینه که میشه بسته به پروژه یا مدل (مثلاً اگر شما بخوای با تصویر یا حتی متن سر و کله بزنی، مثل مدل‌های زبانی بزرگ) عملکرد و تنظیماتش رو بهینه کنی و نتیجه بهتری بگیری.

در کل، اگر عاشق شبکه عصبی و هوش مصنوعی باشی، دونستن این ایده‌ها بهت کمک می‌کنه که هم علمت رو به روز نگه داری، هم شاید یه روز خودت از تانگما تو پروژه‌هات استفاده کنی و نمرۀ امتحانت رو ببری بالا 😉

پس دفعه دیگه اسم Tangma رو شنیدی، بدون یه راه جدید واسه بهترکردن یادگیری ماشین به جمع ما اضافه شده و قطعاً ارزش امتحان کردن رو داره!

منبع: +