تابع فعال‌سازی Swish

از testwiki
پرش به ناوبری پرش به جستجو
تابع swish برای مقادیر مختلف بتا

تابع Swish به شکل زیر تعریف می‌شود:


[۱] swish(x)=xsigmoid(βx)=x1+eβx.

که β می‌تواند ثابت، یا پارامتر قابل یادگیری باشد. اگر β=1 باشد، تابع swish تبدیل به تابع سیگموئید خطی یا SiLU می‌شود.

  • در حالت β+ تابع به ReLU یا max(x,0) تبدیل می‌شود.
  • در حالت β0 تابع حاصل خطی و برابر با x2
  • در حالت β تابع به min(x,0) تبدیل می‌شود.

مشتق

نسبت به x

مشتق تابع swish نسبت به x بدین شکل قابل محاسبه است:

مشتق تابع swish به ازای مقادیر مختلف β

f'(x)=σ(βx)+βxσ(βx)(1σ(βx))=σ(βx)+βxσ(βx)βxσ(βx)2=βxσ(βx)+σ(βx)(1βxσ(βx))=βf(x)+σ(βx)(1βf(x))

نسبت به β

مشتق تابع swish نسبت به β بدین شکل قابل محاسبه است: f(x)β=x2σ(βx)(1σ(βx))

کاربردها

در سال 2017 دانشمندان در Google توانستند با جایگزینی تابع swish به جای ReLU و Sigmoid، نتایج بهتری برای دیتاست ایمیج‌نت بدست آورند. همچنین عملکرد این تابع در سایر مدل‌ها و دیتاست‌های مشهور برابر یا بهتر از دیگر توابع فعال‌سازی رایح بوده است. البته باید توجه داشت که تابع swish نسبت به ReLU از لحاظ محاسبات چه در محاسبه تابع و چه در محاسبه مشتق بسیار پیچیده‌تر است.[۲]

منابع

الگو:پانویس