激活函数

激活函数是用来解决线性不可分问题的一个方法,常用来svm以及神经网络中。

常见的激活函数有sigmoid函数、tanh函数、softmax函数以及ReLU函数,上述方法都可以作为隐层神经元的输出。

1.sigmoid函数


导数为:

图像及导数图像:


图像结果在(0,1)之间,激活函数计算量大,反向传播求误差梯度时,会出现除法;并且在深层次网络中容易产生梯度消失问题(当梯度小于1时,预测值与真实值之间的误差每传播一层会衰减一次),导致训练出现问题,这是由于函数导数导致了软饱和激活函数,导数图像是关于x是对称的,这就在对称线会出现左饱和和右饱和;sigmoid函数的输出不是0均值,将导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

在分类问题中,可以将分类结果映射到0和1之间,可以得到每个类产生结果的可能性,进而完成分类。适用于特征之间相差比较复杂或相差不大的情况。

一般情况下,不建议使用sigmoid函数,如果要用的话可以试着用tanh函数。

2.tanh函数


函数图像为:


图像结果在[-1,1]之间,从图像上看函数的收敛速度会比sigmoid函数收敛快,在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。

tanh是一中改进的sigmoid函数,tanh的输出是0均值的来改善sigmoid非0均值的问题,tanh一样具有软饱和性,容易产生梯度消失问题。

3.softmax函数

该函数是取得所有元素指数和的比值。该函数的计算非常简单、易懂。通过指数的确定,扩大神经的映射。函数多用于多分类问题。

4.ReLU函数


函数图像:


ReLU函数对于SGD的收敛有巨大的加速作用(ImageNet Classification with Deep ConvolutionalNeural Networks论文中提出),这个是线性,非饱和的形式,另外ReLU有效的缓解了梯度消失的问题,而且它提供了神经网络的稀疏表达能力。

当神经元更新参数后,权重无法更新的情况。如果发生这种情况,那么神经元的梯度从这一点开始将永远是0。也就是说,ReLU的神经元在训练中不可逆的死亡了。如果使用ReLU函数,就要小心设置learning rate,注意不要让你网络中出现很多"dead"神经元。

P-ReLU方法、Leaky-ReL、R-ReLU是上述改进方法。

为了方便查看函数图像,引用了文献中的图片。



参考文献:

https://blog.csdn.net/u011584941/article/details/71534828

https://blog.csdn.net/guorongronghe/article/details/70174476

https://blog.csdn.net/zchang81/article/details/70224688

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值