激活函数:
神经网络中将输入信号的总和转换为输出信号的函数,激活函数将多层感知机输出转换为非线性,使得神经网络可以任意逼近任何非线性函数,使神经网络可以应用到众多的非线性模型中。
常用的激活函数及特点:
1)sigmoid
① 定义:sigmoid函数也叫Logistic函数,用于隐层神经元输出,能将(−∞,+∞)(-\infty,+\infty)(−∞,+∞)的数值映射到(0,1)的区间,可以用来做二分类。表达式为:
f(x)=11+e−x
f(x) = \frac{1}{1+e^{-x}}
f(x)=1+e−x1
② 特点
- 优点:关于(0,0.5)对称,平滑、易于求导
- 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失
2)tanh
①定义:双曲线正切函数,表达式为:
f(x)=1−e−2x1+e−2x
f(x) = \frac{1-e^{-2x}}{1+e^{-2x}}
f(x)=1+e−2x1−e−2x
②特点:
- 优点:关于坐标原点对称,平滑,易于求导,输出均值为0,收敛速度比sigmoid快,从而可以减少迭代次数。
- 缺点:很容易出现梯度消失。
3)Relu
①定义:修正线性单元,其表达式为:
f(x)={x(x>0)0(x<=0)
f(x) = \begin{cases}
x & (x>0)\\
0 & (x<=0)
\end{cases}
f(x)={x0(x>0)(x<=0)
②特点:
- 优点:计算过程简单,避免了梯度爆炸和梯度消失。
- 缺点:小于等于0时无输出。
前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层