在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。
比如在下面的这个问题中:
如上图(图片来源),在最简单的情况下,数据是线性可分的,只需要一条直线就已经能够对样本进行很好地分类。
但如果情况变得复杂了一点呢?在上图中(图片来源),数据就变成了线性不可分的情况。在这种情况下,简单的一条直线就已经不能够对样本进行很好地分类了。
于是我们尝试引入非线性的因素,对样本进行分类。
在神经网络中也类似,我们需要引入一些非线性的因素,来更好地解决复杂的问题。而激活函数恰好能够帮助我们引入非线性因素,它使得我们的神经网络能够更好地解决较为复杂的问题。
激活函数的定义及其相关概念
在ICML2016的一篇论文Noisy Activation Functions中,作者将激活函数定义为一个几乎处处可微的 h : R → R 。
在实际应用中,我们还会涉及到以下的一些概念:
a.饱和
当一个激活函数h(x)满足
limn→+∞h′(x)=0
时我们称之为右饱和。
当一个激活函数h(x)满足
limn→−∞h′(x)=0
时我们称之为左饱和。当一个激活函数,既满足左饱和又满足又饱和时,我们称之为饱和。
b.硬饱和与软饱和
对任意的x,如果存在常数c,当x>c时恒有 h′(x)=0则称其为右硬饱和,当x
激活函数的一些可取的属性包括:
非线性:当激活函数是非线性的,然后一个两层神经网络可以证明是一个通用函数近似值.而identity激活函数不满足这个属性.当多层网络使用identity激活函数,整个网络就相当于一个单层模型.
连续可微的:这个属性对基于梯度优化方法是必要的.二进制激活函数在0点没有可微性,它在其他值上全部可导为0,基于梯度优化方法对于它毫无进展.
范围:当激活函数的范围是有限的,基于梯度的训练方法往往更稳定,因为模式显著影响几个有限权重.当范围是无限的,训练通常更有效率,因为模式显著影响大部分权重.在后一种情况下,较小的学习利率通常是必要的.
单调:当激活函数是单调时,与单层模型相关的错误表面是凸的.
平滑性:有单调导数的平滑函数已经被证明在某些情况下推广地更好.这些属性表明这些激活函数和Occam's razor更一致.
原点附近近似identity:当激活函数有这个属性,对于小的随机值初始化权重,神经网络将有效地学习.当激活函数没有这个属性,在初始化权值必须使用特殊例子.在下面的表中,激活函数,表明有该属性.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。