激活函数篇

Sigmoid函数

Sigmoid函数也叫Logistic函数,可将输入为为实数的样本映射到(0,1)区间之内:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1

在这里插入图片描述
sigmoid函数的导数函数示意图:
在这里插入图片描述

缺点:

  1. 容易导致梯度消失
    由反向传播算法可知,梯度从后向前传时,sigmoid的梯度如图最大为0.25倍,没传递一层都会减小相应的倍数,随着网络的加深,在传播过程中梯度将会趋近于0,产生梯度消失的现象。
  2. 输出不是0均值(zero-centered)
    后一层神经元将得到上一层输出的非0均值的信号作为输入。如果输入的数据 x > 0 x>0 x>0,在反向传播的过程中,对于某一层的某个神经元来说,根据链式法则,上层传来的梯度 L L L对权值 w w w的梯度为:
    ∂ L ∂ w = ∂ L ∂ f ⋅ ∂ f ∂ w \frac{\partial L}{\partial w} = \frac{\partial L}{\partial f}\cdot \frac{\partial f}{\partial w} wL=fLwf
    其中对于上层传来的梯度是一样的,激活函数也都是sigmoid函数,所以 ∂ L ∂ f \frac{\partial L}{\partial f} fL对于所有的神经元的 w w w都是相同的,对于数 f f f为sigmoid函数:
    f = s i g m o i d ( w T x + b ) f=sigmoid(w^{T}x+b) f=sigmoid(wTx+b)
    ∂ f ∂ w \frac{\partial f}{\partial w} wf为sigmoid 函数对 w w w求导:
    ∂ f ∂ w = f ( w T x ) ⋅ ( 1 − f ( w T x ) ) ⋅ x \frac{\partial f}{\partial w}=f(w^{T}x)\cdot (1-f(w^{T}x)) \cdot x wf=f(wTx)(1f(wTx))x
    由于sigmoid函数的域值为 ( 0 , 1 ) (0,1) (0,1),故 ∂ f ∂ w \frac{\partial f}{\partial w} wf值的正负将取决于 x x x的正负,输入 x > 0 x>0 x>0,所以梯度的符号取决于 ∂ L ∂ f \frac{\partial L}{\partial f} fL的值,且对该层所有的神经元来说,关于 w w w的梯度的符号全部相同,要么都为正要么都为负,故 w w w都会往同一个方向更新。假设有二维情况下 w 1 w_{1} w1 w 2 w_{2} w2,要么 w 1 w_{1} w1 w 1 w_{1} w1符号均为正,方向指向第一象限,要么均为负,方向指向第三象限,若此时最优解在第四象限方向,则收敛速度会变得很慢。如下图所示:
    在这里插入图片描述
  3. 式中存在幂函数预算
    式中的幂运算计算时较为耗时,增加训练时间

Tanh函数

Tanh函数是一种双曲函数,可将输入为实数的样本映射到(-1,1)区间之内,因此其输出是0均值的。Tanh函数的函数图像如下图所示。Tanh函数的表达式为:
g ( z ) = e z − e − z e z + e − z g(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}} g(z)=ez+ezezez
在这里插入图片描述
优点:
解决了非零均值输出的问题
缺点:
梯度消失和式中幂函数耗时的问题存在

ReLU函数

ReLU函数又被称作修正线性单元,其函数图像如图下图所示,其函数表达式为:
g ( z ) = m a x ( 0 , z ) g(z)=max(0,z) g(z)=max(0,z)
在这里插入图片描述
优点:

  1. 解决了梯度消失的问题
  2. 运算速度提升,只需进行max判断
  3. 收敛速度提高,ReLU的最大梯度为1,高于sigmoid和tanh的0.25

缺点:

  1. 输出不是零均值输出
  2. Dead ReLu problem,某些神经元可能不会激活,产生该问题的原因有:(1)神经元因为初始化后可能 w w w全部为负值,导致其训练结果为0。(2)学习率太高导致训练过程中参数更新太大。

Leaky ReLu函数

Leaky ReLU函数是在ReLU函数的基础上的改进,当输入小于0时,输出为一个斜率较小的线性函数,解决了ReLU函数会导致神经元无法响应的问题。Leaky ReLU函数的函数图像如下图所示,其函数表达式为:
g ( z ) = m a x ⁡ ( 0 , α z ) g(z)=max⁡(0,αz) g(z)=max(0,αz)
其中α为斜率且一般选择较小的值作为斜率。
在这里插入图片描述
参考链接
https://blog.csdn.net/GreatXiang888/article/details/99296607
https://blog.csdn.net/wtrnash/article/details/87893725
https://blog.csdn.net/weixin_43835911/article/details/89294613

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值