در شبکههای عصبی، توابع فعالسازی نقش مهمی در تبدیل سیگنالهای ورودی به سیگنالهای خروجی دارند. آنها توابع ریاضی هستند که غیرخطی بودن را وارد شبکه می کنند و تعیین می کنند که آیا نورون باید بر اساس مجموع وزنی ورودی هایش فعال شود یا نه. در این پست وبلاگ، برخی از توابع فعال سازی محبوب مورد استفاده در شبکه های عصبی و پیاده سازی آنها در پایتون را مورد بحث قرار خواهیم داد.
تابع فعال سازی سیگموئید
تابع سیگموئید یک تابع فعال سازی رایج است که در شبکه های عصبی استفاده می شود و هر مقدار ورودی را به مقداری بین 0 و 1 نگاشت می کند.
import numpy as np def sigmoid(x): return 1 / (1 + np.exp(-x))
عملکرد فعال سازی ReLU
ReLU مخفف Rectified Linear Unit است و یک تابع فعال سازی پرکاربرد است که هر مقدار ورودی منفی را صفر می کند و مقادیر ورودی مثبت را بدون تغییر می گذارد.
def relu(x): return np.maximum(0, x)
تابع فعال سازی Tanh
تابع مماس هذلولی یا Tanh یکی دیگر از تابع های فعال سازی محبوب است که هر مقدار ورودی را به مقداری بین -1 و 1 ترسیم می کند.
def tanh(x): return np.tanh(x)
تابع فعال سازی سافت مکس
تابع softmax یک تابع فعال سازی پرکاربرد است که هر مقدار ورودی را به مقداری بین 0 و 1 نگاشت می کند و مجموع همه خروجی ها برابر با 1 است. معمولاً در مسائل طبقه بندی چند کلاسه استفاده می شود.
def softmax(x): exp_x = np.exp(x) return exp_x / np.sum(exp_x, axis=1, keepdims=True)
نتیجه
توابع فعال سازی نقش مهمی در شبکه های عصبی دارند و انتخاب تابع فعال سازی مناسب می تواند عملکرد شبکه عصبی را به طور قابل توجهی تحت تاثیر قرار دهد. در این آموزش، برخی از توابع فعال سازی محبوب مورد استفاده در شبکه های عصبی و پیاده سازی آنها در پایتون را مورد بحث قرار دادیم. ما نحوه پیادهسازی توابع فعالسازی sigmoid، ReLU، Tanh و softmax را با استفاده از پایتون نشان دادیم. این توابع فعالسازی متداولترین مواردی هستند که استفاده میشوند، و بسیاری از توابع فعالسازی وجود دارند که میتوانید با آنها آزمایش کنید. به یاد داشته باشید که تابع فعال سازی مناسب را بر اساس نوع مشکلی که می خواهید حل کنید و ویژگی های مجموعه داده خود انتخاب کنید.