深度学习的激励函数
深度学习的理论基础是神经网络,其中,激励函数是神经网络中的重要组成部分。
神经元
有了激励函数之后,才能将多个线性输入(如上图的∑wx+b)转换为非线性的输出。也就是说,如果不使用激励函数的话,神经网络的每层计算都只是在做线性变换,而通过激励函数引入非线性因素后,才能使神经网络的表示能力更强了。
那么深度学习中常用的激励函数有哪些呢?一起来看看吧。
sigmoid 函数
这是经典神经网络中使用最频繁的激励函数。它把一个实数压缩至0到1之间,当输入的数字非常大的时候,结果会接近1,当输入非常大的负数时,则会得到接近0的结果。在早期的神经网络中使用得非常多,不过近几年在深度学习的应用中比较少见到它的身影,因为使用sigmoid函数容易出现梯度弥散或者梯度饱和。
tanh 函数
tanh函数将输入值压缩至-1到1之间。该函数与Sigmoid类似,也存在着梯度弥散或梯度饱和的缺点。
ReLU 函数
ReLU是修正线性单元(The Rectified Linear Unit)的简称,近些年来在深度学习中使用得很多,可以解决梯度弥散问题,因为它的导数等于1或者就是0。相对于sigmoid和tanh激励函数,对ReLU求梯度非常简单,计算也很简单,可以非常大程度地提升随机梯度下降的收敛速度。(因为ReLU是线性的,而sigmoid和tanh是非线性的)。
Leaky ReLU 函数
Leaky ReLU主要是为了避免梯度消失,当神经元处于非激活状态时,允许一个非0的梯度存在,这样不会出现梯度消失,收敛速度快。它的优缺点跟ReLU类似。
ELU 函数
ELU在正值区间的值为x本身,这样减轻了梯度弥散问题(x>0区间导数处处为1),这点跟ReLU、Leaky ReLU相似。而在负值区间,ELU在输入取较小值时具有软饱和的特性,提升了对噪声的鲁棒性。
这么多的激励函数,它们之间的比较如何呢,请看下面这张函数曲线图:
激励函数比较曲线图
关注本头条号,私信回复获取更多内容
留言与评论(共有 0 条评论) |