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

 

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

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

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

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

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

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

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

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

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

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

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

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

  بهینه سازها (optimizers) در شبکه عصبی - بخش اول

 

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

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

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

Rating 4.14 from 29 votes

آموزش مکمل

سوالات و مشکلات خود در این جلسه را در قسمت پایین مطرح کنید.

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

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

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

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

زهره احمدی
زهره احمدی
4 ماه قبل

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

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

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

سبد خرید

دوره رایگان یادگیری عمیق و شبکه عصبی

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