激活函数家族

关键词:sigmoid、relu、tanh、softmax、激活函数、梯度消失、梯度爆炸

激活函数的作用是实现特征空间的非线性转换,这样模型才可以拟合任何训练数据,使训练数据线性可分。

如果一个函数能提供非线性转换(即导数不恒为常数),可导(可导是从梯度下降方面考虑。可以有一两个不可导点, 但不能在一段区间上都不可导)等性质,即可作为激活函数。在不同网络层(隐藏层、输出层)的激活函数关注的重点不一样,隐藏层关注的是计算过程的特性,输出层关注的输出个数及数值范围。

Sigmoid:取值范围在[0,+1]之间

表达式为,梯度就是该表达式的导数,区间是在【0,0.25】,具体曲线如下所示

如果一个网络有多个神经元,假设有a,b,c,d,当求Loss函数对神经元a的偏导时,根据链式法则如下

 

 梯度经过多次相乘后,会趋于一个很小的值,也就是常说的梯度消失问题,此时网络的更新机制失效,梯度爆炸则是相反。

tanh:取值范围在[-1,+1]之间

 

 

 跟sigmoid曲线很相似,只是位置变动,且做了一定的线性变换,一般它的效果是优于sigmoid的。

Relu

ReLU激活函数的提出 就是为了解决梯度消失问题,LSTMs也可用于解决梯度消失问题(但仅限于RNN模型)。ReLU的梯度只可以取两个值:0或1,当输入小于0时,梯度为0;当输入大于0时,梯度为1。

好处就是:ReLU的梯度的连乘不会收敛到0 ,连乘的结果也只可以取两个值:0或1 ,如果值为1 ,梯度保持值不变进行前向传播;如果值为0 ,梯度从该位置停止前向传播。对于隐藏层,选择ReLU作为激活函数,能够保证z大于零时梯度始终为1,从而提高神经网络梯度下降算法运算速度。

Sigmoid和ReLU函数对比如下:

但relu的缺点是存在神经元死亡问题,它在反向传播的过程中很快让一些神经元的导数永远是0,于是这些神经元等于被抛弃了,也就是被“谋杀”了。

Softmax

一般在输出层用作激活函数,也称归一化指数函数,它很自然地输出表示具有 n个可能值的离散型随机变量的概率分布。数学函数式如下,公式引入了指数可以扩大类间的差异。

如果是多分类用这个,二分类用sigmiod效果更佳。

参考资料:

relu激活函数比sigmoid效果好为什么还用sigmoid? - 知乎


一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU) - 知乎


relu激活函数比sigmoid效果好为什么还用sigmoid? - 知乎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值