常见激活函数介绍

本文详细介绍了多种激活函数,包括阶跃型函数中的sgn函数,Sigmoid型函数如Logistic和Tanh函数,以及Hard-Logistic和Hard-Tanh函数。重点讨论了ReLU家族,包括ReLU、Leaky ReLU和PReLU,还有ELU、Softplus、Swish和GELU等函数。这些函数在神经网络中起到关键作用,影响网络的优化和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阶跃型函数

s g n sgn sgn函数

s g n sgn sgn函数定义为:
s g n ( x ) = { 1 , x ≥ 0 ; 0 , x < 0. sgn(x) = \begin{cases} 1, & x \geq 0; \\ 0, & x< 0. \end{cases} sgn(x)={ 1,0,x0;x<0.
s g n ( x ) sgn(x) sgn(x)通过将输入转换为输出值 0 0 0 1 1 1,来表示神经元的抑制( 0 0 0)和兴奋( 1 1 1)。
在这里插入图片描述

然而,由于 s g n ( x ) sgn(x) sgn(x)具有不连续、不光滑等不太好的性质,因此实际常用 S i g m o i d Sigmoid Sigmoid型函数做为激活函数。

S i g m o i d Sigmoid Sigmoid型函数

S i g m o i d Sigmoid Sigmoid型函数是指一类 S S S型曲线函数,为两端饱和函数。常用的 S i g m o i d Sigmoid Sigmoid型函数有 L o g i s t i c Logistic Logistic函数和 T a n h Tanh Tanh函数。

饱和
对于函数 f ( x ) f(x) f(x),若 x → − ∞ x \rightarrow -\infty x时,其导数 f ′ ( x ) → 0 f^\prime(x) \rightarrow 0 f(x)0,则称其为左饱和
x → + ∞ x \rightarrow +\infty x+时,其导数 f ′ ( x ) → 0 f^\prime(x) \rightarrow 0 f(x)0,则称其为右饱和
当同时满足左、右饱和时,就称为两端饱和。

L o g i s t i c Logistic Logistic函数

L o g i s t i c Logistic Logistic函数定义为:
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+ex1
L o g i s t i c Logistic Logistic函数将输入映射为区间 ( 0 , 1 ) (0,1) (0,1)之间的输出值,当输入值在 0 0 0附近时, S i g m o i d Sigmoid Sigmoid型函数近似为线性函数;当输入值靠近两端时,对输入进行抑制。输入越小,越接近于0;输入越大,越接近于1。这样的特点也和生物神经元类似,对一些输入会产生兴奋(输出为1),对另一些输入产生抑制(输出为0)。和感知器使用的阶跃激活函数相比, L o g i s t i c Logistic Logistic函数是连续可导的,其数学性质更好。
函数图如下:
在这里插入图片描述

T a n h Tanh Tanh函数

T a n h Tanh Tanh函数定义为:
t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex
T a n h ( x ) Tanh(x) Tanh(x)函数将输入映射为区间 ( − 1 , 1 ) (-1,1) (1,1)上的输出值,可以看作是放大并平移的 L o g i s t i c Logistic Logistic函数:
t a n h ( x ) = 2 σ ( 2 x ) − 1 tanh(x)=2\sigma(2x)-1 tanh(x)=2σ(2x)1
函数图如下:
在这里插入图片描述

在这里插入图片描述
T a n h Tanh Tanh函数的输出是零中心化的(Zero-Centered),而 L o g i s t i c Logistic Logistic函数的输出恒大于0. 非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。

H a r d − L o g i s t i c Hard-Logistic HardLogistic函数和 H a r d − T a n h Hard-Tanh HardTanh函数

L o g i s t i c Logistic Logistic函数和 T a n h Tanh Tanh函数都是 S i g m o i d Sigmoid Sigmoid型函数,具有饱和性,但是计算开销较大。因为这两个函数都是在中间(0 附近)近似线性,两端饱和。因此,这两个函数可以通过分段函数来近似。

H a r d − L o g i s t i c Hard-Logistic HardLogistic函数

L o g i s t i c Logistic Logistic函数为例,其导数为 σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma^\prime(x)=\sigma(x)(1-\sigma(x)) σ(x)=σ(x)(1σ(x)) L o g i s t i c Logistic Logistic函数在 0 0 0附近的一阶泰勒展开(Taylor expansion) 为:
g l ( x ) ≈ σ (

### 常见深度学习激活函数介绍及应用场景 #### 一、Sigmoid 函数 Sigmoid 是一种常用的激活函数,其输出范围为 (0,1),适用于二分类问题。该函数能将实数值压缩至(0,1)之间,在早期的神经网络研究中被广泛应用。 公式如下: \[ f(x)=\frac{1}{1+e^{-x}} \] Python 实现 sigmoid 函数的例子: ```python import numpy as np def sigmoid(x): return 1 / (1 + np.exp(-x)) ``` 然而,由于梯度消失等问题,sigmoid 在深层网络中的表现并不理想[^3]。 #### 二、ReLU(Rectified Linear Unit) 作为目前最流行的激活函数之一,ReLU 定义非常简单:当输入大于零时返回原值;小于等于零则输出为零。这种设计有助于缓解梯度消失现象并加速收敛过程。 公式表示为: \[f(x)=max(0,x)\] 对应的 Python 代码实现方式如下所示: ```python def relu(x): return np.maximum(0, x) ``` 对于大多数卷积神经网络而言,ReLU 已经成为默认选项[^4]。 #### 三、Tanh(双曲正切) 与 Sigmoid 类似,tanh 的取值区间位于 (-1,+1), 可以看作是经过平移缩放后的 Sigmoid 曲线版本。相较于后者来说,前者中心化于原点附近这一性质有利于后续层间连接权重更新效率提升。 表达式形式如下: \[f(x)=\frac{(e^{x}-e^{-x})}{(e^{x}+e^{-x})}\] 下面是 tanh 函数的一个简单的 python 版本实现方法: ```python def tanh(x): return np.tanh(x) ``` 尽管如此,同属饱和型非线性变换单元家族成员身份意味着两者都存在潜在缺陷—即容易造成反向传播过程中梯度过早趋近于零从而阻碍参数调整进展的情况发生[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

great-wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值