AI人工智能学习之激活函数
因为数据的分布绝大多数是非线性的,一般神经网络的计算是线性的,那么引入激活函数,是在神经网络中引入非线性,就强化网络的学习能力。所以激活函数的最大特点就是非线性。而且能够使输出映射到有限区间之内,便于计算。能够使网络快速地收敛,计算效率高。
激活函数
激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。
激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
常用的激活函数
Sigmoid激活函数
sigmoid函数也叫Logistic函数,用于隐藏层的输出,输出在(0,1)之间,它可以将一个实数映射到(0,1)的范围内,可以用来做二分类。常用于:在特征相差比较复杂或是相差不是特别大的时候效果比较好。该函数将大的负数转换成0,将大的正数转换为1。函数公式如下:
函数曲线及求导曲线:

sigmod函数的取值范围在(0, 1)之间,可以将网络的输出映射在这一范围,方便分析。
优点:平滑、易于求导。
缺点:
- 梯度消失:Sigmoid 函数趋近 0 和 1 的时候变化率会变得平坦,也就是说,Sigmoid 的梯度趋近于 0。神经网络使用 Sigmoid 激活函数进行反向传播时,输出接近 0 或 1 的神经元其梯度趋近于 0。
- 不以零为中心:Sigmoid 输出不以零为中心的。
- 计算成本高昂:exp() 函数与其他非线性激活函数相比,计算成本高昂。
Tanh激活函数
Tanh激活函数又叫作双曲正切激活函数,是双曲函数中的一个,Tanh()为双曲正切。在数学中,双曲正切“Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。函数公式如下:
tanh(x) = 2sigmoid(2x)-1
函数曲线及求导曲线:

Tanh 函数将数据压缩至-1 到 1 的区间内。Tanh 函数的输出以零为中心,因为区间在-1 到 1 之间。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值。
优点:它解决了Sigmoid函数的不是zero-centered输出问题。
缺点:梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。
Relu激活函数
Relu函数是修正线性单元函数,函数形式比较简单,函数公式如下:
f(x)=max(0, x)
Relu函数曲线及求导曲线:

优点:当输入 x<0 时,输出为 0,当 x> 0 时,输出为 x。该激活函数使网络更快速地收敛。在正区域(x> 0 时)它可以对抗梯度消失问题。由于使用了简单的阈值化,ReLU 计算效率很高。
缺点:不以零为中心。前向传导过程中,如果 x < 0,则神经元保持非激活状态,且在后向传导中「杀死」梯度。
Leaky Relu激活函数
为了解决 ReLU 激活函数中的梯度消失问题,当 x < 0 时,使用 Leaky ReLU——该函数试图修复 dead ReLU 问题。
Leaky Relu激活函数公式:LeakyRelu = max(0.01,x)
Leaky Relu函数及求导曲线:

Leaky ReLU函数:当 x < 0 时,它得到 0.01 的正梯度。
优点:该函数一定程度上缓解了 dead ReLU 问题。
缺点:使用该函数的结果并不连贯。尽管它具备 ReLU 激活函数的所有特征,如计算高效、快速收敛、在正区域内不会饱和。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)