您现在的位置是:首页 >技术杂谈 >理解神经网络的数学原理(三)激活函数的作用网站首页技术杂谈
理解神经网络的数学原理(三)激活函数的作用
概述
理解激活函数的作用能更好的解释神经网络的运行逻辑,在以前的章节中只简单概述了激活函数的作用,但是其实结论是比较草率的,这篇文章希望能谨慎的证明这些结论。
sign 激活函数
一般我们都直接在分类的全连接层,而不是隐藏层去加
s
i
g
n
sign
sign函数作为分类的的激活,带线性层与
s
i
g
n
sign
sign激活函数的节点为
y
=
s
i
g
n
(
w
T
x
+
b
)
=
{
1
,
w
T
x
+
b
>
0
−
1
,
w
T
x
+
b
⩽
0
y = sign(w^Tx+b) =left{egin{matrix} 1&,w^Tx+b>0 \ -1&,w^Tx+bleqslant 0 end{matrix}
ight.
y=sign(wTx+b)={1−1,wTx+b>0,wTx+b⩽0通过其公式,我们会很容易的看到超平面
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0},但是它是否是
s
i
g
n
sign
sign函数所构造出来的超平面呢?
我们先假设
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0}是其构造的超平面,根据超平面的特性,当
w
T
x
+
b
>
0
w^Tx+b>0
wTx+b>0时,
x
x
x 一定在超平面所划分的正半空间
x
+
x^+
x+中,同理
w
T
x
+
b
<
0
w^Tx+b< 0
wTx+b<0,
x
x
x 一定在超平面所划分的负半空间
x
−
x^-
x−中。我们将
x
+
x^+
x+设置为标签1,而将
x
−
x^-
x−及超平面上的点共同设置为标签-1。这个时候我们可以使用任意函数
f
(
x
)
f(x)
f(x)来表示该划分
y
=
f
(
w
T
x
+
b
)
=
{
1
,
w
T
x
+
b
>
0
−
1
,
w
T
x
+
b
⩽
0
y = f(w^Tx+b) =left{egin{matrix} 1&,w^Tx+b>0 \ -1&,w^Tx+bleqslant 0 end{matrix}
ight.
y=f(wTx+b)={1−1,wTx+b>0,wTx+b⩽0所以我们可以看到,两者形式是等价的,意味着只要拥有这种形式的函数其所构造的超平面都是
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0},而且标签是什么是不重要的可以用其他数值任意替换。
所以,
s
i
g
n
sign
sign构造出了超平面
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0},或者可以这样说由
s
i
g
n
sign
sign的定义构造出了超平面
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0},我们可以设置
y
=
s
i
g
n
(
w
T
x
+
b
)
=
{
1
,
w
T
x
+
b
>
c
−
1
,
w
T
x
+
b
⩽
c
y = sign(w^Tx+b) =left{egin{matrix} 1&,w^Tx+b>c \ -1&,w^Tx+bleqslant c end{matrix}
ight.
y=sign(wTx+b)={1−1,wTx+b>c,wTx+b⩽c这时超平面发生了位移,即超平面变为了
H
=
{
x
∣
w
T
x
+
b
−
c
=
0
}
H={x mid w^Tx+b -c = 0}
H={x∣wTx+b−c=0},所以超平面是依定义构造出来的。
ReLU激活函数
带线性层与
R
e
L
U
ReLU
ReLU激活函数的节点可以用数学公式表示为如下形式
y
=
R
e
L
U
(
w
T
x
+
b
)
=
{
w
T
x
+
b
,
w
T
x
+
b
>
0
0
,
w
T
x
+
b
⩽
0
y = ReLU(w^Tx+b) =left{egin{matrix} w^Tx+b&,w^Tx+b>0 \ 0&,w^Tx+bleqslant 0 end{matrix}
ight.
y=ReLU(wTx+b)={wTx+b0,wTx+b>0,wTx+b⩽0这个和上面的
s
i
g
n
sign
sign激活函数有一些区别,但是其实也是和上面等价的形式。既然我们有疑问,那么可以通过其他方式来证明
R
e
L
U
ReLU
ReLU 所构造的超平面也是
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0}
我们可以假设,其构造的超平面为 H = { x ∣ w T x + b − c = 0 } H={x mid w^Tx+b - c= 0} H={x∣wTx+b−c=0},其中 c c c为任意的实数,这里 c c c前面的负号只是为了形式的整洁。
显然,当 R e L U ReLU ReLU 节点有大于0的输出时 y = w T x + b y=w^Tx+b y=wTx+b 此时 w T x + b > 0 w^Tx+b>0 wTx+b>0,而其在超平面的一侧,所以 w T x + b − c > 0 w^Tx+b - c> 0 wTx+b−c>0,可以推导出 w T x + b > c w^Tx+b>c wTx+b>c,所以 c ⩾ 0 cgeqslant0 c⩾0;
同理 R e L U ReLU ReLU 节点输出为0时 y = 0 y=0 y=0此时 w T x + b < 0 w^Tx+b< 0 wTx+b<0或 w T x + b = 0 w^Tx+b = 0 wTx+b=0;
当 w T x + b < 0 w^Tx+b< 0 wTx+b<0时,其在超平面的另一侧,所以 w T x + b − c < 0 w^Tx+b - c< 0 wTx+b−c<0,可以推导出 w T x + b < c w^Tx+b<c wTx+b<c,所以 c ⩽ 0 cleqslant 0 c⩽0;
当 w T x + b = 0 w^Tx+b= 0 wTx+b=0时,其在超平面的一侧或在超平面上,所以 w T x + b − c ⩽ 0 w^Tx+b - cleqslant 0 wTx+b−c⩽0 或 w T x + b − c ⩾ 0 w^Tx+b - cgeqslant 0 wTx+b−c⩾0 ,可以推导出 w T x + b ⩽ c w^Tx+bleqslant c wTx+b⩽c 或 w T x + b ⩾ c w^Tx+bgeqslant c wTx+b⩾c,所以推出 c ⩽ 0 c leqslant 0 c⩽0或 c ⩾ 0 c geqslant 0 c⩾0;
综上,当且仅当 c = 0 c= 0 c=0时,以上条件全部满足;所以 R e L U ReLU ReLU 构造的超平面是 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={x∣wTx+b=0}。而 R e L U ReLU ReLU的这一特性在神经网络的分析中有重要作用,即其构造的超平面是确定的。 这个特性也说明了 R e L U ReLU ReLU输出为非0时,其数据全部来自超平面的一侧,且输出数据经过了 w , b w,b w,b的线性变换。
证明的一些细节的解释
为什么 w T x + b < 0 w^Tx+b< 0 wTx+b<0或 w T x + b > 0 w^Tx+b> 0 wTx+b>0时,一定在超平面的一侧?因为根据超平面的的定义,在超平面的一侧必然要求其值只能为正或者为负,不能两者都存在,所以这两者只能各自在超平面的一侧。
细心的读者也发现了,可以将 w T x + b > 0 w^Tx+b> 0 wTx+b>0的数据放到 w T x + b − c < 0 w^Tx+b - c< 0 wTx+b−c<0的一侧,这样会推出 w T x + b < c w^Tx+b < c wTx+b<c,此时 c > 0 c>0 c>0且 c ≠ 0 c e 0 c=0;同理将 w T x + b < 0 w^Tx+b< 0 wTx+b<0的数据放到 w T x + b − c > 0 w^Tx+b - c> 0 wTx+b−c>0的一侧,推出 c < 0 c<0 c<0且 c ≠ 0 c e 0 c=0;所以 c c c 值是发散的,即不存在这样的 c c c 值同时满足 c > 0 c>0 c>0 且 c < 0 c<0 c<0;所以该逻辑不成立。
线性变换的另一个视角
我们知道点到分离超平面
H
=
{
x
∣
w
T
x
+
b
=
0
}
H={x mid w^Tx+b = 0}
H={x∣wTx+b=0}的距离公式为:
d
=
∣
w
T
x
+
b
∣
∥
w
∥
d = frac{mid w^Tx+bmid }{parallel wparallel }
d=∥w∥∣wTx+b∣可以推出
∣
w
T
x
+
b
∣
=
d
∥
w
∥
mid w^Tx+bmid=dparallel wparallel
∣wTx+b∣=d∥w∥而经过
R
e
L
U
ReLU
ReLU输出的数据必然大于0,所以
w
T
x
+
b
=
d
∥
w
∥
w^Tx+b=dparallel wparallel
wTx+b=d∥w∥所以我们可以说,经过线性变换与
R
e
L
U
ReLU
ReLU后的输出,只与点到超平面的距离及范数相关;对同一节点,其差异只与点到超平面的距离相关。
多节点的作用
由多个带线性层与 R e L U ReLU ReLU激活函数的节点,不再是单个节点这种简单的得到一个超平面的逻辑了,而是组合逻辑,即使构造的超平面编排(Hyperplane Arrangement)或超平面组合,将输入空间划分为多个线性区域(Linear Regions)及区域切片与映射了,可以查看本系列的其他文章,或者查看参考文献中的文章。
sigmoid激活函数
带线性层与
s
i
g
m
o
i
d
sigmoid
sigmoid激活函数的节点可以用数学公式表示为如下形式
y
=
σ
(
w
T
x
+
b
)
=
1
1
+
e
x
p
(
−
(
w
T
x
+
b
)
)
y = sigma(w^Tx+b) =frac{1}{1+exp(-(w^Tx+b))}
y=σ(wTx+b)=1+exp(−(wTx+b))1事实上在神经网络的隐藏节点,我们无法像
R
e
L
U
ReLU
ReLU那样,确切的说其构造的超平面是什么。虽然我们可以这样构造,如
y
=
σ
(
w
T
x
+
b
)
=
{
σ
(
w
T
x
+
b
)
,
w
T
x
+
b
>
0
σ
(
w
T
x
+
b
)
,
w
T
x
+
b
⩽
0
y = sigma(w^Tx+b) = left{egin{matrix} sigma(w^Tx+b) &,w^Tx+b>0 \ sigma(w^Tx+b) &,w^Tx+bleqslant 0 end{matrix}
ight.
y=σ(wTx+b)={σ(wTx+b)σ(wTx+b),wTx+b>0,wTx+b⩽0但是实际上是没有意义的,因为其为同胚映射,或者简单的说在其定义域与值域都是连续的,所以也可以这样构造
y
=
σ
(
w
T
x
+
b
)
=
{
σ
(
w
T
x
+
b
)
,
w
T
x
+
b
−
c
>
0
σ
(
w
T
x
+
b
)
,
w
T
x
+
b
−
c
⩽
0
y = sigma(w^Tx+b) = left{egin{matrix} sigma(w^Tx+b) &,w^Tx+b-c>0 \ sigma(w^Tx+b) &,w^Tx+b-cleqslant 0 end{matrix}
ight.
y=σ(wTx+b)={σ(wTx+b)σ(wTx+b),wTx+b−c>0,wTx+b−c⩽0这个
c
c
c值是多少是无法直接确定的,虽然我们知道
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0是sigmoid值域的一个对称超平面。
但是说一个现象,用BCELoss训练的带sigmoid激活函数的分类网络,其标签定义为{0,1},在分类层这里其构造的超平面是 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={x∣wTx+b=0}或者是非常接近 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={x∣wTx+b=0}的。
但是在隐藏层中目前没有检查过是否也是如此, t a n h tanh tanh激活函数和sigmoid差不多,也基本是这种情况。
输出数据的范围限制与非线性变换这种sigmoid自带的作用就不必说了,都是比较平凡的解释。
先写后改,后续看是否有其他结论,如果你证明了可以分享到评论区。
参考
- 开源代码 DNNexp
- On the Number of Linear Regions of Deep Neural Networks
- On the number of response regions of deep feed forward networks with piece- wise linear activations
- On the Expressive Power of Deep Neural Networks
- On the Number of Linear Regions of Convolutional Neural Networks
- Bounding and Counting Linear Regions of Deep Neural Networks
- Facing up to arrangements: face-count formulas for partitions of space by hyperplanes
- An Introduction to Hyperplane Arrangements
- Combinatorial Theory: Hyperplane Arrangements
- Partern Recognition and Machine Learning