常见激活函数

激活函数

为什么要引入激活函数
如果不用激活函数(其实相当于激活函数是f(x) = x),在这种情况下每一层节点的输入都是上层输出的线性函数,很容易验证,无论神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,那么网络的逼近能力就相当有限。所以引入非线性函数作为激活函数,这样深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任意函数)。

Sigmoid函数
Sigmoid 是常用的非线性激活函数,它的数学形式如下:
在这里插入图片描述
在这里插入图片描述
特点:
能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常小的负数,那么输出就是0;如果是非常大的正数,输出就是1。
缺点:
1、在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大。求取反向梯度时,Sigmoid的梯度在饱和区域非常平缓,很容易造称梯度消失的问题,减缓收敛速度。
2、Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。 产生的一个结果就是在反向传播的过程中局部梯度要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。
3、幂函数运算较慢,激活函数计算量大。

关于0均值,见后文。

Tanh函数
Tanh是一个奇函数,它能够把输入的连续实值变换为-1和1之间的输出,如果输入是特别小的负数,则输出为-1,如果输入是特别大的正数,则输出为1;解决了Sigmoid函数的不是0均值的问题。

在这里插入图片描述
优点:
曲线过渡平滑,处处可导;
具有良好的对称性,解决了Sigmoid函数的不是zero-centered输出问题
缺点:
与Sigmoid类似,幂函数运算较慢,激活函数计算量大;
与Sigmoid类似,求取反向梯度时,Tanh的梯度在饱和区域非常平缓,很容易造称梯度消失的问题,减缓收敛速度。

ReLU函数
线性整流函数(Rectified Linear Unit, ReLU),整个函数可以分为两部分,
在小于0的部分,激活函数的输出为0;
在大于0的部分,激活函数的输出为输入。
在这里插入图片描述
在这里插入图片描述
特点:
解决了gradient vanishing(梯度消失)问题 (在正区间);
计算速度非常快,只需要判断输入是否大于0;
收敛速度远快于sigmoid和tanh;不存在饱和区间,在大于0的部分梯度固定为1,有效解决了Sigmoid中存在的梯度消失的问题;

缺点:
ReLU的输出不是zero-centered;
Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: (1) 非常不幸的参数初始化,这种情况比较少见 (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。

LeakyReLU
Leaky ReLU是ReLU函数的改进版,普通的ReLU是将所有的负值都设为零,Leaky ReLU则是给所有负值赋予一个非零斜率,通常α = 0.01
在这里插入图片描述

在这里插入图片描述
特点:
解决了ReLU函数存在的问题,防止死亡神经元的出现。
缺点:
α参数人工选择,具体的的值仍然需要讨论。

PReLU函数
leaky relu的改进版,参数α由神经网络自适应训练获得。
在这里插入图片描述

https://blog.csdn.net/tyhj_sf/article/details/79932893?spm=1001.2014.3001.5502

0均值
在深度学习中,一般我们会把喂给网络模型的训练图片进行预处理,使用最多的方法就是零均值化(zero-mean) / 中心化,即让所有训练图片中每个位置的像素均值为0,使得像素值范围变为[-128,127],以0为中心,使得在反向传播中加快网络中每一层权重参数的收敛。

以sigmoid函数说明,Sigmoid的值域及其导数恒大于0。

在这里插入图片描述

当x全为正或者全为负时,每次返回的梯度都只会沿着一个方向发生变化,即梯度变化的方向就会向图中红色箭头所示,一会向上太多,一会向下太多。这样就会使得权重收敛效率很低。

但当x正负数量“差不多”时,就能对梯度变化方向进行“修正”,使其接近上图中黑色箭头的方向,加速了权重的收敛。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值