常用的激活函数总结
常用的激活函数的总结
1. Sigmoid 函数
f
(
z
)
=
1
1
+
e
−
z
f(z)=\cfrac 1{1+e^{-z}}
f(z)=1+e−z1
2. tanh函数
t
a
n
h
(
x
)
=
e
x
−
e
−
x
e
x
+
e
−
x
tanh(x)=\cfrac{e^x-e^{-x}}{e^x+e^{-x}}
tanh(x)=ex+e−xex−e−x
3. ReLU函数
R
e
L
U
=
m
a
x
(
0
,
x
)
ReLU=max(0,x)
ReLU=max(0,x)
ReLU函数可以达到比较快的收敛速度,但是其输出并不是zero-cnetered的,并且有Dead ReLU Problem
ReLU有其变体Leady ReLU
4. ELU(Exponential Linear Uints)函数
f
(
x
)
=
{
x
,
i
f
x
>
0
α
(
e
x
−
1
)
o
t
h
e
r
w
i
s
e
f(x)= \begin{cases} x,&ifx>0\\ \alpha (e^x-1) &otherwise \end{cases}
f(x)={x,α(ex−1)ifx>0otherwise
5. MaxOut 函数
函数可以参考论文《maxout networks》Maxout是深度学习的一层网络。
对于网络中的某一层的输入
X
=
(
x
1
,
x
2
,
⋯
x
d
)
X=(x_1,x_2,\cdots x_d)
X=(x1,x2,⋯xd),Maxout隐藏层中每个神经元的计算公式如下:
KaTeX parse error: Got function '\newline' with no arguments as argument to '\begin{array}' at position 1: \̲n̲e̲w̲l̲i̲n̲e̲
6.GeLU函数
GeLU是drouout,zoneout,Relu的结合体,GeLU对于输入一个乘以0,1组成
m
a
s
k
mask
mask,而该
m
a
s
k
mask
mask的生成则是依据概率随机的依赖输入,假设输入为
X
X
X,
m
a
s
k
mask
mask为
m
m
m那么
m
m
m服从一个伯努利分布(
Φ
(
x
)
=
P
(
X
<
=
x
)
,
X
服从正态分布
\Phi(x)=P(X<=x),X\text{服从正态分布}
Φ(x)=P(X<=x),X服从正态分布),最终的数学表示如下:
G
e
L
U
(
x
)
=
x
P
(
X
<
=
x
)
=
x
Φ
(
x
)
对
于
标
准
正
太
分
布
,
其
近
似
的
计
算
公
式
为
:
G
e
L
U
(
x
)
=
0.5
x
(
1
+
t
a
n
h
)
[
2
/
π
(
x
+
0.044715
x
3
)
]
GeLU(x)=xP(X<=x)=x\Phi(x)\\ 对于标准正太分布,其近似的计算公式为:\\ GeLU(x)=0.5x(1+tanh)\left[\sqrt{2/\pi}(x+0.044715x^3)\right]
GeLU(x)=xP(X<=x)=xΦ(x)对于标准正太分布,其近似的计算公式为:GeLU(x)=0.5x(1+tanh)[2/π(x+0.044715x3)]
#源码可以如下方式表达:
def gelu(input_tensor):
cdf = 0.5*(1.0+torch.erf(input_tensor/torch.sqrt(2.0))
return input_tensor*cdf
7.Mish
M i s h = x ∗ t a n h ( l n ( 1 + e x ) ) Mish=x*tanh(ln(1+e^x)) Mish=x∗tanh(ln(1+ex))