激活函数总结
目录
sigmoid
公式:
\(f(x) = \frac{1}{1 + e^{-x}}\)
图像:
Tanh
公式:
\(f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}\)
图像:
softplus
公式:
\(f(x) = log(1+e^x)\)
图像:
ReLU(Rectifier Linear Unit)系列
ReLU
公式:
\[f(x) = \begin{cases}
0, & x \leq 0
\\ x, & x > 0
\end{cases}\]
图像:
Leaky ReLU/ PReLU/ RReLU
公式:
\[f(x) = \begin{cases}
\alpha x, & x \leq 0
\\ x, & x > 0
\end{cases}\]
- Leaky Relu: 通过设定一个\(\alpha\)来解决当\(x\)为负值的时候
Relu
为0的情况,通常\(\alpha\)设定为0.01 - Parameter Relue: Leaky Relu的改进, PReLU的出发点是不将\(\alpha\)设置为0.01,而是根据数据来定,这样就可以自适应地从数据中学习参数
- Randomized Relu: 是对Leaky ReLU的另一种改进。在训练时,\(\alpha\)是给定范围内取样的随机变量,而测试时\(\alpha\)变为固定值。其表达式如下所示。这里\(\alpha\)服从均匀分布,且满足0≤a<1。
BReLU(Bounded ReLU)
公式:
\[f(x) = \begin{cases}
0, & x \leq 0
\\ x, & 0 \leq x \leq n
\\ n, & x > n
\end{cases}\]
- ReLU6 就是将
n
设置为6, 此时的ReLU6
的图像如下图所示:
ELU
公式:
\[f(x) = \begin{cases}
\alpha (e^x - 1), & x \leq 0
\\ x, & x > 0
\end{cases}\]
图像:
SELU
公式:
\[f(x) = \lambda \begin{cases}
\alpha (e^x - 1), & x \leq 0
\\ x, & x > 0
\end{cases} = \lambda * ELU(x)\]
图像:
GELU
公式:
\(f(x) = 0.5x (1 + tanh(\sqrt{2 / \pi} (x + 0.044715x^3)))\)
图像:
Swish
公式:
\(f(x) = x\frac{1}{1 + e^{-\beta x}} = x * sigmoid(\beta x)\)
Hard-Swish
公式:
\(f(x) = x\frac{Relu6(x + 3)}{6}\)
图像:
Mish
公式:
\(f(x) = x * tanh(ln(1+e^x))\)
图像:
Maxout
公式:
\(f(x) = max(w^T_{1}x + b_1, w^T_{2}x + b_2, ···, w^T_{n}x + b_n)\)
- maxout激活函数并不是一个固定的函数,它是一个可以学习的函数,因为W参数是学习变化的,它是一个分段的线性函数.
- 然而任何一个凸函数,都可以由线性分段函数进行逼近近似。其实我们可以把以前所学到的激活函数:relu、abs激活函数,看成是分成两段的线性函数,如下示意图所示:
Reference
https://blog.csdn.net/bqw18744018044/article/details/81193241
http://www.360doc.com/content/20/0323/23/99071_901255748.shtml
https://blog.csdn.net/weixin_39107928/article/details/102807920
https://blog.csdn.net/weixin_44106928/article/details/103072722
https://baijiahao.baidu.com/s?id=1653421414340022957&wfr=spider&for=pc