盘点当前最流行的激活函数及选择经验
前言
在阅读DarkNet源码的时候发现作者定义了大量从古至今流行的损失函数,本着科普的态度我打算做一个全面的总结,所以就有了这篇文章。
激活函数有什么用?
提到激活函数,最想问的一个问题肯定是它是干什么用的?激活函数的主要作用是提供网络的非线性表达建模能力,想象一下如果没有激活函数,那么只能表达线性映射,此刻即便是有再多的隐藏层,其整个网络和单层的神经网络都是等价的。因此正式由于激活函数的存在,深度神经网络才具有了强大的非线性学习能力。接下来我们就来盘点一下当前有哪些流行的激活函数吧,这是一件非常有意义的事,希望你能接着读下去。
1. Sigmoid激活函数
Sigmoid激活函数
2. TanH
优点:与Sigmoid相比,它的输出均值是0,使得其收敛速度要比Sigmoid快,减少迭代次数。
缺点:该导数在正负饱和区的梯度都会接近于0值(仍然具有软饱和性),会造成梯度消失。还有其更复杂的幂运算。
3. ReLU
ReLU激活函数
优点:ReLU的全称是Rectified Linear Units,是一种AlexNet时期才出现的激活函数。可以看到,当x<0时,ReLU硬饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。这让我们能够直接以监督的方式训练深度神经网络,而无需依赖无监督的逐层预训练。
缺点:随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。与Sigmoid类似,ReLU的输出均值也大于0,偏移现象和神经元死亡会共同影响网络的收敛性。
4. Leaky ReLU & PReLU
函数表达式和导数:
Leaky ReLU
函数图像:
Leaky ReLU激活函数
5. ReLU6
特点:ReLU6就是普通的ReLU但是限制较大输出值为6(对输出值做clip),这是为了在移动端设备float16的低精度的时候,也能有很好的数值分辨率,如果对ReLU的激活范围不加限制,输出范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的float16无法很好地较精确描述如此大范围的数值,带来精度损失。
6. ELU
函数表达式:
ELU表达式
函数图像:
ELU激活函数
特点:融合了sigmoid和ReLU,左侧具有软饱和性,右侧无饱和性。右侧线性部分使得ELU能够缓解梯度消失,而左侧软饱能够让ELU对输入变化或噪声更鲁棒。ELU的输出均值接近于零,所以收敛速度更快。在 ImageNet上,不加Batch Normalization 30层以上的ReLU网络会无法收敛,PReLU网络在MSRA的Fan-in (caffe )初始化下会发散,而 ELU 网络在Fan-in/Fan-out下都能收敛。关于Fan-in/Fan-out初始化请看附录的参考2链接。
7. SoftSign
特点:Softsign是tanh激活函数的另一个替代选择,从图中可以看到它和tanh的曲线极其相似,不过相比于tanh,Softsign的曲线更平坦,导数下降的更慢一点,这个特性使得它可以缓解梯度消失问题,可以更高效的学习。
8. SoftPlus
SoftPlus激活函数及导数
10. Swish
函数图像:
Swish激活函数
Swish激活函数导数
11. Maxout
12. Mish
MisH激活函数
特点:这个激活函数是的SOTA激活函数,我还没具体使用和了解过这个激活函数,就暂时不总结这一个了。不过论文中提到,以上无边界(即正值可以达到任何高度)避免了由于封顶而导致的饱和,理论上对负值的轻微允许更好的梯度流,而不是像ReLU中那样的硬零边界,并且整个损失函数仍然保持了平滑性。
论文名为:Mish: A Self Regularized Non-Monotonic Neural Activation Function
激活函数尝试经验
首先使用ReLU,速度最快,然后观察模型的表现。
如果ReLU效果不是很好,可以尝试Leaky ReLU或Maxout等变种。
尝试tanh正切函数(以零点为中心,零点处梯度为1)。
在深度不是特别深的CNN中,激活函数的影响一般不会太大。
Kaggle比赛,试试Mish?
附录
参考1:https://www.cnblogs.com/missidiot/p/9378079.html
参考2:https://keras-cn.readthedocs.io/en/latest/other/initializations/
参考3:https://zhuanlan.zhihu.com/p/70810466
参考4:https://www.cnblogs.com/makefile/p/activation-function.html
参考5:https://www.cnblogs.com/missidiot/p/9378079.html
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
时间:2020-08-26 10:08 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [机器学习]盘点近期大热对比学习模型:MoCo/SimCLR/BYOL/SimSi
- [机器学习]盘点近期大热对比学习模型:MoCo/SimCLR/BYOL/SimSi
- [机器学习]从GPT-3到DETR,一起来盘点2020有哪些突破?
- [机器学习]ResNet、Faster RCNN、Mask RCNN是专利算法吗?盘点何恺
- [机器学习]重磅盘点:过去8年中深度学习最重要的想法汇总
- [机器学习]盘点当前最流行的激活函数及选择经验
- [机器学习]CVPR 2020 论文大盘点-实例分割篇
- [机器学习]CVPR 2020 论文大盘点-实例分割篇
- [机器学习]CVPR 2020 论文大盘点-目标检测篇
- [机器学习]超详细的语义分割中Loss盘点
相关推荐:
网友评论:
最新文章
热门文章