توابع فعالسازی (activation function) در شبکه عصبی

در این جلسه چه می گذرد؟

✔️ بررسی دقیق تر توابع فعالساز (activation function)

✔️ انواع توابع فعالسازی و کاربردهای این توابع

✔️ توابع

✔️ محوشدگی گرادیان vanishing gradient

✔️ تاثیر توابع فعالساز در محوشدگی گرادیان

توضیحات مکمل این جلسه

در جلسه ششم از آموزش رایگان شبکه عصبی می خواهیم به توابع فعالسازی (activation function) در شبکه عصبی بپردازیم. با ما همراه باشید.

 

بررسی دقیق تر توابع فعالساز

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

انواع توابع فعالساز و کاربردهای این توابع

در ادامه ویژگی های تعدادی از پرکاربردترین توابع فعالسازی را بررسی می کنیم. در سمت چپ هر کدام از تصاویر زیر، نمودار خود تابع فعالسازی و در سمت راست مشتق آن نشان داده شده است.
 
 

۱- تابع فعالسازی خطی

معادله کلی و نمودار این تابع و مشتق آن را می توان به فرم کلی زیر نشان داد:
 
به عنوان مثال در مسأله بهینه سازی، اگر خود جمع وزنی را بدون دخالت هیچ تابع غیرخطی بهینه کنیم، مانند این است که از تابع فعالسازی خطی f(z) = z استفاده کرده ایم.
 

۲- تابع فعالسازی سیگموید

درباره این تابع پیش تر صحبت کردیم. معادله کلی و نمودار این تابع و مشتق آن به شکل زیر است:
 
 
مهم ترین ویژگی های این تابع عبارتند از:
  • در نقطه x=0 مقدار این تابع برابر 0.5  است.
  • مقدار این تابع همواره بین 0 و 1 است.
  • به ازای مقادیر خیلی کوچک و خیلی بزرگ x، مقدار تابع به ترتیب به 0 و 1 میل می کند.
  • مشتق این تابع به ازای مقادیر خیلی کوچک و خیلی بزرگ x، به 0 میل می کند. این می تواند موجب ایجاد محوشدگی گرادیان شود که در ادامه به آن خواهیم پرداخت.
  نحوه آپدیت وزن و بایاس در شبکه عصبی

محدود بودن این تابع بین صفر و یک باعث می شود بتوان از خروجی این تابع تعبیر احتمالی داشت. مثلا اگر مسأله ما دسته بندی تصاویر به دو کلاس سگ و گربه باشد، می توانیم به هر کدام از کلاس ها مانند زیر، یک عدد نسبت دهیم:

سپس خروجی مدل را از تابع فعالسازی سیگموید عبور می دهیم تا در نهایت عددی بین صفر و یک به عنوان خروجی نهایی مدل داشته باشیم. در این صورت می توانیم این خروجی را به این شکل به صورت احتمالی تفسیر کنیم:

البته انتخاب 0.5 به عنوان آستانه اختیاری است. نکته مهم این است که در این حالت هر چه عدد خروجی به 1 نزدیک تر باشد، احتمال گربه بودن ببیشتر است و کمتر شدن عدد خروجی، به این معناست که مدل احتمال بیشتری می دهد که تصویر مربوطه تصویر یک سگ باشد.

در نتیجه با استفاده از سیگموید به عنوان تابع فعالسازی لایه خروجی مدل، می توانیم مسأله دسته بندی دو کلاسه را حل کنیم.

  شبکه عصبی چیست؟ (بخش دوم)

 

۳- تابع فعالسازی تانژانت هایپربولیک

معادله کلی و نمودار این تابع و مشتق آن به این صورت است:
 
مهم ترین ویژگی های این تابع عبارتند از:
  • خروجی این تابع همواره بین -1 و 1  است.
  • به ازای مقادیر خیلی کوچک و خیلی بزرگ x، مقدار تابع به ترتیب به –

به این آموزش چند ستاره می دهید؟

Rating 4.38 from 26 votes

آموزش پیشنهادی و مکمل

سوالات و مشکلات خود در این جلسه را اینجا بنویسید.

guest
4 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
هد هد
هد هد
7 ماه قبل

محتوای دوره عالیه، ممنون از آموزش خوبتون

سید محمد باقرپور
سید محمد باقرپور
پاسخ به  هد هد
7 ماه قبل

خداروشکر، خوشحالم که می پسندی، ممنونم که بازخورد میدی

زهره احمدی
زهره احمدی
7 روز قبل

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

صابر کلاگر
صابر کلاگر
پاسخ به  زهره احمدی
6 روز قبل

سلام
اگر از google colab استفاده کنید، نیاز به نصب ابزارها و پکیج ها ندارید و از این نظر ساده تر هست.
برای پیاده سازی شبکه های عصبی در محیط گوگل کولب، یکی از ساده ترین ابزارها keras هست.
آموزش هردوی اینها رو در یوتیوب گذاشتم،
آدرس کانال یوتیوب: https://www.youtube.com/@saberkolagar

سبد خرید

دوره جامع متخصص علم داده و یادگیری ماشین

برای دیدن نوشته هایی که دنبال آن هستید تایپ کنید.
×