اگه دوست داری بدونی چطوری شبکههای عصبی (همون مدلهای هوش مصنوعی که این روزا همه جا ازش حرف میزنن) میتونن بهتر و سریعتر یاد بگیرن، این مقاله برات خیلی باحاله! بیام ساده توضیح بدم چی شده:
خب، یک بخشی توی این مدلهای عمیق هوش مصنوعی هست به اسم Activation Function یا تابع فعالسازی. کار اصلیش اینه که تصمیم بگیره نورون (اون بخش کوچیک از شبکه) چقدر فعال بشه و چه عددی رو از خودش رد کنه. همین چیز کوچیک، تاثیر وحشتناکی روی اینکه مدل چقدر خوب یاد میگیره و چقدر سریع آموزش میگیره میذاره.
الان سالهاست سه تا تابع فعالسازی معروف داریم: ReLU، سیگموید (Sigmoid)، و تاناچ (Tanh). اما هرکدومشون یه مشکلی دارن! مثلاً ReLU (این همونیه که تا عدد مثبت باشه همون عدد رو برمیگردونه وگرنه صفر میده) یه بدی داره به اسم dead neuron problem. یعنی بعضی نورونهاشون دیگه کلاً از کار میافتن – بهشون میگن مرده! سیگموید یا تاناچ هم مشکل vanishing gradient دارن؛ یعنی وقتی شبکه عمیق میشه، تو پسانتشار یا backpropagation سیگنال آموزش خیلی ضعیف و کوچیک میشه و یادگیری خیلی سخت میشه!
خب حالا تو همین مقاله (که واقعاً خلاقانه نوشته شده) اومدن دو تا تابع فعالسازی جدید معرفی کردن به اسم S3 و S4. S3 یعنی Sigmoid-Softsign، و S4 هم نسخه جدید و بهتر شده S3 هست! بیام برات بگم این دوتا دقیقاً چی کار میکنن:
تو S3 برای ورودیهای منفی از سیگموید استفاده میشه (همون تابع معروف که بین صفر و یک خروجی میده و کارش خیلی تو دستهبندی خوبه)، و برای ورودیهای مثبت، تابع Softsign استفاده میشه. Softsign یه تابع نرم و صافه که کمک میکنه دغدغه یادگیری بهتر حل بشه. خلاصه S3 اینطوریه: اگه ورودی منفیه، سیگموید، اگه مثبته، سافتساین.
ولی اینجا تموم نمیشه. اون بهترش S4 هست که خیلی هوشمندانهتره! توی S4، این تغییر بین سیگموید و سافتساین به صورت نرم و اسموث انجام میشه، یعنی دیگه تغییر ناگهانی نداره و با یه پارامتر به اسم k (که میزان تندی یا شیب تغییر رو کنترل میکنه) میتونی تنظیمش کنی که چقدر سریع از یکیه بره به اون یکی. این باعث میشه برای مدلها و دادههای مختلف، S4 رو بهینهتر کنن و واقعاً اونجور که دلمون میخواد رفتار کنه!
حالا بیخیال تعریف! بریم سراغ نتایج باحال و عملی. تیم نویسندهها با کلی آزمایش روی ۳ جور مسئله مختلف (دستهبندی دوتایی، دستهبندی چندتایی یا multi-class، و کارهای رگرسیون که همون پیشبینی عددیه) با ۳ مدل شبکه مختلف نشون دادن که S4 عملاً بهتر از ۹ تا تابع فعالسازی معروف دیگه جواب میده! مثلاً تو دیتاست MNIST (همون دیتای معروف دستخط که عددای دستنویس رو داریم)، S4 تونسته ۹۷.۴ درصد دقت بگیره! تو دیتا Iris هم که دستهبندی گلهاست، ۹۶ درصد دقت گرفته. حتی تو Boston Housing که کار رگرسیون و پیشبینی قیمته، عدد میانگین مربعات خطا (MSE) رو تا ۱۸.۷ رسونده – که خیلی خوبه!
یه چیز خفن دیگه اینکه با S4 سرعت یادگیری (یعنی روی محور اپوکها چندتا بالا پایین میره تا به جواب برسه) سریعتر بوده و تعداد نورونهای مرده (dead neuron) تو شبکههای عمیق واقعاً کم شده. مثلاً تو روش کلاسیک ReLU حدود ۱۸ درصد نورونها تو شبکههای عمیق میمیرن و اصلاً آموزش نمیبینن! تو S4 تقریباً دیگه چند درصد بیشتر نیست و آموزش کاملاً پایدار میمونه.
خلاصه اینکه S4 با اینکه فقط یه تغییر کوچیک توی تابع فعالسازیه ولی با اون مکانیزم ناب انتقال نرم و قابل تنظیم بودنش، هم تو شبکههای سطحی هم عمیق جواب داده. به خاطر همینم میگن هیبریدی: ترکیب دو تا تابع تا از خوبیهای هر دوتا استفاده بشه! واقعاً S4 میتونه انتخاب خیلی خوبی برای دانشجوها و مهندسای یادگیری عمیق باشه چون میتونه متناسب با عمق شبکه و نوع کار، تنظیم بشه.
آخرش هم این مقاله پیشبینی میکنه که توابع فعالسازی هیبریدی (یعنی همین مدل ترکیبیها)، آیندهی خیلی خوبی تو آموزش بهتر و سریعتر شبکههای عصبی دارن. اگه تو هم دنبال اینی که مدلهای هوش مصنوعی سریعتر و بهتر یاد بگیرن، حتماً یه بار S3 یا S4 رو امتحان کن – شاید کلی پیشرفت بکنی!
پس خلاصهی حرف مقاله: با یه ذره خلاقیت و ترکیب توابع، میتونی از پس مشکلات سخت آموزش شبکه عصبی بربیای و به کسایی که تو این حوزه کار میکنن، پیشنهاد میده یه نگاهی به این روشهای جدید بندازن!
منبع: +