تابع فعال سازی در شبکه های عصبیتابع فعال سازی (Activation Function) اهمیت بسیار زیادی در شبکه های عصبی دارپ و معمولا به صورت توابع ریاضی غیر خطای (Non-linear) هستند. به زبان ساده و بر اساس نورون های زیستی (نورون های مغز)، تابع فعال سازی تصمیم می گیرد که آیا یک نورون باید فعال شود یا نه؟ توابع فعال سازی برای یادگیری (Learning) و درک چیزهایی واقعا پیچیده درون یک شبکه عصبی مصنوعی (Artificia Neural Network) بسیار مهم و ضروری هستند.

هر تابع فعال سازی (Activation Function) در شبکه های عصبی یک عدد را دریافت می کند و سپس یک عملیات ریاضی را بر روی این عدد انجام می دهد. خروجی تابع فعال ساز عددی است که میان بازه صفر تا ۱ یا بین بازه ۱ تا ۱- قرار می گیرد.  شکل زیر نمایی از یک نورون به همراه تابع فعال سازی f را نشان می دهد. همانطور که می بینید تابع فعال سازی یک عدد را به عنوان ورودی دریافت می کند که این عدد همان نتیجه محاسبه تابع زیگما ∑ بعلاوه بایاس (b) است.

اصولا توابع فعال سازی به صورت غیر خطی (Non-Linear) هستند ولی به طور کلی می توانیم توابع فعال سازی را به دو دسته زیر تقسیم کنیم:

۱ – توابع فعال سازی خطی یا Linear Activation Function

۲ – توابع فعال سازی غیر خطی یا Non-linear Activation Functions

تابع خطی

ساده ترین شکل توابع فعال سازی، از نوع تابع خطی f(x) = mx + b است. که در آن m شیب خط یا ضریب زاویه ای خط می گویند.b را عرض از مبدا می گویند که محل تقاطع خط با محور عمودی یا محور y ها را مشخص می کند. نمودار توابع خطی به صورت یک خط است.

شکل زیر نمودار تابع خطی f(x) = x را نشان می دهد. چون در آن b = 0 است پس محل تقاطع خط با محور عمودی در نقطه صفر است. توجه کنید در معادله خطی درجه x برابر با یک است. خروجی تابع بر اساس ورودی تابع قابل تشخیص است و میان بازه منفی بی نهایت تا مثبت بی نهایت (−∞,+∞) خواهد بود.

چرا تابع فعال سازی اهمیت دارد و چرا باید غیر خطی باشد

اگر فرض کنیم که از تابع فعال سازی استفاده نکنیم، در این حالت وزن و بایاس یک نگاشت خطی (Linear Transformation) ساده را انجام می دهند. حل یک معادله خطی (Linear Equation) بسیار ساده است ولی این معادله خطی قابلیت حل مسئله های پیچیده را ندارد.

بنابراین اگر فرض کنیم که اگر تابع فعال سازی وجود ندارد و تنها یک ورودی داشته باشیم، پس یک معادله خطی به صورت زیر وجود خواهد داشت که در واقع می توانیم آن را یک مدل رگرسیون خطی (Linear Regression) در نظر بگیریم.

اما به یاد داشته باشید درون شبکه های عصبی مصنوعی برای افزودن قابلیت و توانایی یادگیری و حل مسئله های پیچیده، تابع فعال سازی باید به صورت غیر خطی (Non-Linear) باشد. به طور مثال می خواهیم مسئله هایی دسته بندی تصویرها (Image Classification) و یا تشخص اعداد نوشته شده با دست (Handwriten Digit) را انجام دهیم. این گونه مسئله های پیچیده را هرگز نمی توان با تبدیل های خطی حل کرد و نیاز است تا از تبدیل های غیر خطی (Non-Linear Transformation) استفاده شود.

انواه توابع غیر خطی مورد استفاده برای تابع فعال سازی

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

۱ – تابع سیگموئید

تابع سیگموئید، که همچنین به نام تابع لجستیک (Logestic Function) نامیده می شود، منحنی به شکل S دارد که می تواند هر مقدار را به یک مقدار میان بازه  0 و 1 نگاشت دهد. اگر منحنی به سمت مثبت بی نهایت برود، پیش بینی به عدد 1 نگاشت داده می شود و اگر منحنی به سمت منفی بی نهایت برود، پیش بینی به عدد 0 نگاشت داده خواهد شد.

اگر خروجی عملکرد sigmoid بیش از یک آستانه عددی مانند 0.5 باشد، می توان نتیجه را به صورت 1 یا YES طبقه بندی کرد، و اگر آن کمتر از این استانه عددی مثلا همان عدد 0.5 باشد، می توان آن را به صورت 0 یا نه مثلا خروجی cannotFor example: اگر خروجی 0.75 باشد، ما می توانیم از نظر احتمال: بله 75 درصد احتمال دارد که بیمار از سرطان رنج می برد.

کاربرد تابع سیگوئید در الگوریتم (مدل) رگرسیون لوجستیک در یادگیری ماشین