什么是激活函数
在神经网络中,对所有输入进行加权相加,然后对结果应用函数。 这个函数被称为激活函数。 如下图所示。
使用为什么使用激活函数激活函数并不实际激活任何内容。 这是一个抽象的概念,可以处理更复杂的问题,以便在使用激活函数时使中间输出多样化。
在不应用结果函数的情况下,每一层最后输出的是前一层输入的线性函数,无论增加多少神经网络,我们最后的输出都只是最初输入的数据的线性组合。 激活函数在神经元中引入非线性因素,加入多层神经网络后,可以将线性函数和非线性函数拟合到神经网络中,使得神经网络不仅适用于线性问题,而且可以应用于更多的非线性问题。
有论文将激活函数定义为几乎处处可微函数f: R-R
对于有哪些激活函数神经网络,第一版使用三种激活函数: Sigmoid函数、Tanh函数和ReLU函数。
基本概念:
饱和
如果函数f(x )满足以下条件:
的,右饱和;
如果函数f(x )满足以下条件:
时,称为左饱和。
f(x )满足左饱和和右饱和两者的情况称为饱和。
软包和与硬包和
基于饱和的定义,如果存在常数c1且在xc1时总是满足,则将其称为右硬饱和; 类似地,存在c2并且在xc2时永久充满被称为左硬饱和。 如果同时满足左饱和,又满足右饱和,则称为硬包。 相比之下,如果只有在x趋向极值时才能满足F(X )的倒数为0,则为软饱和。
1. Sigmoid 函数sigmoid曾风靡一时,但由于sigmoid有自身的缺陷,目前已很少使用。
函数的公式如下。
相应的
函数曲线如下所示。
优点:
1Sigmoid的取值范围为(0,1 ),而且是单调增加,所以容易最优化
2Sigmoid求导比较容易,可以直接推导。
坏处:
1 Sigmoid函数的收敛比较慢
2Sigmoid是软饱和的,容易出现梯度消失,不太适合深度网络训练(从图中sigmoid的导数可以看出,当x无限大时导数也变为0 ) ) )。
3 Sigmoid函数并不是以0,0为中心点
2. Tanh函数tanh是双正切曲线,通过(0,0 )点。 与Sigmoid函数相比,更倾向于使用tanh函数
函数表达式:
相应的
函数曲线如下所示。
优点:
1函数输出以(0,0 )为中学
相对于Sigmoid收敛速度快
坏处:
1 tanh没有解决sigmoid坡度消失的问题
3. ReLU函数这几年常用的激活函数。
公式如下。
图形图像:
优点:
在SGD中,收敛速度比Sigmoid和tanh快很多
2有效地缓解了梯度消失问题
3可以对神经网络使用稀疏表示
4对于无监督学习,也能取得较好的效果
坏处:
1训练中容易出现神经元失望,随后梯度永远为0的情况。 例如,在非常大的梯度结果神经元之后,当调整权重参数时,这个ReLU神经元对于以后的输入永远不被激活,这个神经元的梯度永远为0,导致不可逆的死亡。
参考: http://www.cn blogs.com/rgvb 178/p/6055213.html