常用激活函数- Sigmoid - Tanh - ReLU - Softmax
sigmoid
表达式
$S(x)= \frac{1}{1+ e^{-x}}$
$S\prime (x)= \frac{e^{-x}}{(1+e^{-x})^2} = S(x)(1-S(x))$
曲线
1 | import numpy as np |
优缺点
优点
- 求导容易
- 输出范围有限(0,1), 所以数据在传递的过程中不容易发散.
缺点
- 函数饱和使得梯度消失, 从而无法有效更新参数.
- 函数输出为非零对称的(输出恒大于0), 从而导致梯度在反向传播中全部为正或者全部为负, 使得更新呈现”Z”字型.
- 复杂的幂运算耗时严重.
tanh
表达式
$tanh(x)= \frac{sinh(x)}{cosh(x)} = \frac{e^x - e^{-x}}{e^x + e^{-x}}$
$tanh\prime (x) = 1- tanh^2(x)$
曲线
1 | import numpy as np |
优缺点
优点
- 收敛速度快(相对于sigmoid)
- 不存在非零对称问题
缺点
- 函数饱和使得梯度消失, 从而无法有效更新参数.
- 复杂的幂运算耗时严重.
ReLU
ReLU(Rectified Linear Unit), 整流线性单位函数, 也称修正线性单元. 通常指以斜坡函数及其变种为代表的非线性函数.
表达式
$$f(x) = max(0,x)$$
$$
f(x)=
\begin{cases}
1 & if \quad x>0 \\
0 & otherwise
\end{cases}
$$
曲线
1 | import numpy as np |
优缺点
优点
- 没有饱和区, 不存在梯度消失问题.
- 没有复杂的指数运算, 计算简单、效率提高.
- 实际收敛速度较快, 大约是 Sigmoid/tanh 的 6 倍.
- 比 Sigmoid 更符合生物学神经激活机制.
缺点
- 函数输出为非零对称
- Dead ReLU Problem(神经元坏死问题): 某些神经元可能永远不会被激活, 导致相应参数永远不会被更新(当x小于0时, 梯度为0). 产生这种现象的两个原因: 参数初始化问题; learning rate太高导致在训练过程中参数更新太大. 解决方法: 采用Xavier初始化方法, 以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法.
- ReLU不会对数据做幅度压缩, 所以数据的幅度会随着模型层数的增加不断扩张.
ReLU的变种版
之所以叫变种而不是升级, 是因为在某些情况下可以超越ReLU, 但是在有些情况下则无效.
Leaky ReLU
表达式
$f(x) = max(0.01x,x)$
为了解决Dead ReLU Problem, 将ReLU的前半段设为$0.01x$.
ELU(Exponential Linear Units)
表达式
$$
f(x)=
\begin{cases}
x & if \quad x>0 \\
\alpha(e^x -1) & otherwise
\end{cases}
$$
softmax
softmax 函数, 可以称之为归一化指数函数, 其一般应用于多分类问题(输出层激励函数)
它能将一个含人鱼实数的$K$维向量$Z$”压缩”到另一维实向量$\sigma(Z)$中, 使得每个元素的范围都在$(0,1)$之间, 并且所有元素和为1.
$\sigma (z)_j = \frac{e^{z_j}}{\sum _{k=1}^K e^{z_k}} \quad for j=1,2, \cdots, K$
基本概念
函数饱和
假设$f(x)$为在实数域上的函数
当$x$趋近于正无穷, 函数$f(x)$趋近于0, 那么将其称之为右饱和. $\lim \limits_{x \rightarrow +\infty} {f\prime(x) } = 0$
当$x$趋近于负无穷, 函数$f(x)$趋近于0, 那么将其称之为左饱和. $\lim \limits_{x \rightarrow -\infty} {f\prime(x) } = 0$
当一个函数既满足左饱和又满足右饱和的时候我们就称之为饱和, 典型的函数有Sigmoid, Tanh函数.
对于任意的$x$, 如果存在常数$c$, 当$x>c$时, $f(x) \equiv 0$, 则称其为右硬饱和. 相反的, 如果存在常数$c$, 当$x<c$时, $f(x) \equiv 0$, 则称其为左硬饱和. 既满足左硬饱和又满足右硬饱和的我们称这种函数为硬饱和.
对于任意的$x$, 如果存在常数$c$, 当$x>c$时, 恒有$f\prime (x)$趋近于0, 则称其为右软饱和, 相反的, 如果存在常数$c$, 当$x<c$时, 恒有$f\prime (x)$趋近于0,则称其为左软饱和. 既满足左软饱和又满足右软饱和的我们称这种函数为软饱和.
线性关系(函数) & 非线性关系(函数)
在现代学术界中, 线性关系一词存在2种不同的含义.
若某数学函数或数量关系的函数图形呈现为一条直线或线段, 那么这种关系就是一种线性的关系.
定义: $f(x)$是个只拥有一个变数的一阶多项式函数, 即是可以表示为 $ f(x)=kx+b $的形式(其中$k,b$为常数).在代数学和数学分析学中, 如果一种运算同时满足特定的”加性”和”齐性”, 则称这种运算是线性的.
定义: $f(x)$具有两个性质: 可加性 $f(x+t) = f(x) + f(t)$, 一次齐次性 $f(mx) = mf(x)$
非线性关系(函数)是指除了线性关系(函数)以为的其他函数, 指数函数, 对数函数, 幂函数, 多项式函数等.