在AlexNet论文《 ImageNet Classification with Deep Convolutional Neural Networks》第3节中提到了饱和非线性(saturating nonlinearity)和非饱和非线性(non-saturating nonlinearity)的概念,这里做一个解释。
定义
直观定义:一个饱和的激活函数会将输出结果压缩到有限的区间。
- 如果函数f是非饱和的,那么有:
( ∣ lim z → − ∞ f ( z ) ∣ = + ∞ ) ∨ ( ∣ lim z → + ∞ f ( z ) ∣ = + ∞ ) (|\lim_{z \to −\infty} f(z)|=+\infty) \lor (|\lim_{z \to +\infty} f(z)|=+\infty) (∣z→−∞limf(z)∣=+∞)∨(∣z→+∞limf(z)∣=+∞)
- 反之,即为饱和函数。
示例
ReLU激活函数定义为
f
(
x
)
=
m
a
x
(
0
,
x
)
f(x)=max(0,x)
f(x)=max(0,x),由于
lim
z
→
+
∞
f
(
z
)
=
+
∞
\lim_{z \to +\infty} f(z)=+\infty
limz→+∞f(z)=+∞,因此ReLU不饱和:
sigmoid激活函数定义为
f
(
x
)
=
1
1
+
e
−
x
f(x)=\frac{1}{1+e^{-x}}
f(x)=1+e−x1,由于它将实数压缩到区间
[
0
,
1
]
[0,1]
[0,1]之间,因此sigmoid是饱和的:
tanh激活函数定义为
tanh
(
x
)
=
1
−
e
−
2
x
1
+
e
−
2
x
\tanh(x)=\frac{1-e^{-2x}}{1+e^{-2x}}
tanh(x)=1+e−2x1−e−2x,由于它将实数压缩到区间
[
−
1
,
1
]
[−1,1]
[−1,1]之间,因此tanh是饱和的:
参考
[1] 图片来源:http://cs231n.github.io/neural-networks-1/
[2] https://stats.stackexchange.com/questions/174295/what-does-the-term-saturating-nonlinearities-mean