深度学习笔记(六):激活函数常见问题总结
【摘要】
文章目录
1、为什么需要激活函数2、激活函数有哪些性质3、如何选择激活函数4、ReLU激活函数的优缺点5、为什么tanh收敛速度比sigmoid快
理论系列:
深度学习笔记(一):卷积层+激活函数+池化层+全连接层
深度学习笔记(二):激活函数的前世今生
深度学习笔记(三):BatchNorm(BN)层
深度学习笔记(四):梯度下降...
理论系列:
实战系列:
1、为什么需要激活函数
深度学习中,通常使用的激活函数是非线性的,比如Sigmoid、Tanh、ReLU等。引入激活函数,主要有以下几个作用:
- 可以引入非线性因素,对于理解复杂和非线性的函数具有重要作用。如果不使用激活函数,则输出信号只是一个简单的线性函数,神经网络就无法学习和模拟其他复杂类型的数据,比如图像、视频、语音等;
- 使用非线性激活函数,可以使网络更加强大,学习到复杂的任务,能够在输入和输出之间生成复杂的非线性映射;
- 可以把当前特征空间通过一定的线性映射转换到另一个空间。
2、激活函数有哪些性质
激活函数一般具有以下性质:
- 非线性:当激活函数是非线性的,一个两层的神经网络就基本上可以逼近所有的函数。
- 可微性:处处可导,可以继续反向传播训练
- 单调性:当激活函数是单调的时候,单层网络能够保证是凸函数
- f’(x)=x:当满足此条件,如果参数的初始化是随机的较小值,网络的训练将会很高效
- 当输出值有限制时:比如Sigmoid、Tanh,基于梯度的优化方法会更加稳定
- 当输出值无限制时:比如ReLU、Leaky ReLU、Softplus等,模型的训练会更加高效,不过在这种情况下,一般需要更小的学习率
3、如何选择激活函数
选择一个合适的激活函数需要考虑很多因素。通常的做法是,如果不确定哪一个激活函数效果会更好,可以逐一尝试,然后在验证集或测试集上进行评价。
以下是常见的选择建议:
- 对于二分类问题(输出值是0、1),则输出层选择sigmoid激活函数,其他的所有层选择relu
- 对于多分类问题,一般输出层选择softmax激活函数
- Tanh:它非常优秀,几乎适合所有场合
- ReLU:最常用的激活函数,如果不确定用哪个激活函数,就先使用ReLU或者Leaky ReLU,再尝试其他激活函数
4、ReLU激活函数的优缺点
relu函数的优点如下:
- 训练更快:使用ReLU或者Leaky ReLU的神经网络通常会比使用sigmoid或tanh的神经网络学习得更快
- 避免了梯度弥散:当输入无穷大或无穷小时,sigmoid或tanh的梯度接近0,这会造成梯度弥散现象。而ReLU或者Leaky ReLU在输入大于0的部分,导数均为一个常数,避免了梯度弥散。
- 单侧抑制,稀疏性:当输入小于0时,ReLU的梯度为0,神经元不会训练。模拟神经元的激活率是很低的这一特性,对输入信号的少部分进行选择性相应,正是这样的稀疏性提高了网络的性能。
relu函数的缺点如下:
- 在输入小于0的时候,即使有很大的梯度传播过来也会戛然而止。
5、为什么tanh收敛速度比sigmoid快
这与激活函数的求导有关:
t a n h ′ ( x ) = 1 − t a n h ( x ) 2 tanh'(x)=1-tanh(x)^2 tanh′(x)=1−tanh(x)2,导数范围在(0,1)
s i g m o i d ′ ( x ) = s ( x ) ( 1 − s ( x ) ) sigmoid '(x)=s(x)(1-s(x)) sigmoid′(x)=s(x)(1−s(x)),导数范围在(0,1/4)
由此可见,tanh(x)梯度消失的问题比sigmoid(x)轻,所以tanh收敛速度比较快。
最好的关系是互相成就,各位的「三连」就是【AI 菌】创作的最大动力,我们下期见!
文章来源: ai-wx.blog.csdn.net,作者:AI 菌,版权归原作者所有,如需转载,请联系作者。
原文链接:ai-wx.blog.csdn.net/article/details/118914829
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)