赞
踩
无意中看到一本用数学分析神经网络的书,里面用各种数学工具来分析神经网络(如数学分析、线性代数、流形、信息论、概率论、优化等),书的信息如下:
Ovidiu Calin, Deep Learning Architectures - A Mathematical Approach, Springer, 2020.
我看了用流形解释神经网络那一章的前面几页,觉得写的还不错,记录一下。
考虑一个神经元,输入是
x
∈
R
n
\textbf{x}\in \mathbb{R}^n
x∈Rn,输出是
y
=
σ
(
w
T
x
+
b
)
∈
R
y=\sigma(w^T\textbf{x}+b )\in \mathbb{R}
y=σ(wTx+b)∈R。不妨取
σ
\sigma
σ 是 logistic function。则集合
S
=
{
σ
(
w
T
x
+
b
)
;
w
∈
R
n
,
b
∈
R
}
S=\{\sigma(w^T\textbf{x}+b );w\in\mathbb{R}^n,b\in \mathbb{R} \}
S={σ(wTx+b);w∈Rn,b∈R}
是一个
n
+
1
n+1
n+1 维的流形。它可以看成是
R
n
\mathbb{R}^n
Rn上全体连续函数空间(其维数是无穷维)的一个子流形。事实上,计算得
∂
y
∂
b
=
σ
′
(
w
T
x
+
b
)
=
y
(
1
−
y
)
∂
y
∂
w
j
=
σ
′
(
w
T
x
+
b
)
x
j
=
y
(
1
−
y
)
x
j
\frac{\partial{y}}{\partial{b}}=\sigma'(w^T\textbf{x}+b )=y(1-y) \\ \frac{\partial{y}}{\partial{w_j}}=\sigma'(w^T\textbf{x}+b )x_j=y(1-y)x_j
∂b∂y=σ′(wTx+b)=y(1−y)∂wj∂y=σ′(wTx+b)xj=y(1−y)xj
我们说明
{
∂
y
∂
b
,
∂
y
∂
w
j
}
\{\frac{\partial{y}}{\partial{b}},\frac{\partial{y}}{\partial{w_j}}\}
{∂b∂y,∂wj∂y}线性无关。若
α
0
∂
y
∂
b
+
∑
i
=
1
n
α
i
∂
y
∂
w
i
=
0
\alpha_0\frac{\partial{y}}{\partial{b}}+\sum_{i=1}^{n}\alpha_i\frac{\partial{y}}{\partial{w_i}}=0
α0∂b∂y+∑i=1nαi∂wi∂y=0,则代入得
α
0
y
(
1
−
y
)
+
∑
i
=
1
n
α
i
y
(
1
−
y
)
x
j
=
0
\alpha_0y(1-y) +\sum_{i=1}^{n}\alpha_iy(1-y) x_j=0
α0y(1−y)+∑i=1nαiy(1−y)xj=0,由
y
(
1
−
y
)
≠
0
y(1-y)\neq0
y(1−y)=0 知道
α
0
+
∑
i
=
1
n
α
i
x
j
=
0
\alpha_0 +\sum_{i=1}^{n}\alpha_i x_j=0
α0+∑i=1nαixj=0。再由
x
j
x_j
xj任意性即得结论。从而Jacobian矩阵
J
y
J_y
Jy满秩(为
n
+
1
n+1
n+1)。
接下来,训练神经网络的过程实际上是拟合一个函数
z
=
z
(
x
)
z=z(\textbf{x})
z=z(x)。如果
z
z
z在流形
S
S
S上,那么存在
w
∗
∈
R
n
,
b
∗
∈
R
w^*\in\mathbb{R}^n,b^*\in \mathbb{R}
w∗∈Rn,b∗∈R使得
z
=
y
∗
=
y
(
w
∗
,
b
∗
)
z=y^*=y(w^*,b^*)
z=y∗=y(w∗,b∗)。然而,更一般的情况是
z
∉
S
z\notin S
z∈/S,这意味着需要找
w
∗
∈
R
n
,
b
∗
∈
R
w^*\in\mathbb{R}^n,b^*\in \mathbb{R}
w∗∈Rn,b∗∈R使得
(
w
∗
,
b
∗
)
=
a
r
g
m
i
n
w
,
b
d
i
s
t
(
z
,
S
)
(w^*,b^*)=\mathop{argmin}\limits_{w,b} dist(z,S)
(w∗,b∗)=w,bargmindist(z,S)
给定初值
(
w
0
,
b
0
)
(w_0,b_0)
(w0,b0),一个学习算法会产生一个序列
(
w
n
,
b
n
)
n
(w_n,b_n)_n
(wn,bn)n,期望它收敛到
(
w
∗
,
b
∗
)
(w^*,b^*)
(w∗,b∗)。按作者原话:If the parameters update is made continuously (implied by an infinitesimal learning rate), then we obtain a curve
c
(
t
)
=
(
w
(
t
)
,
b
(
t
)
)
c(t) = (w(t),b(t))
c(t)=(w(t),b(t)) joining
(
w
0
,
b
0
)
(w_0,b_0)
(w0,b0) and
(
w
∗
,
b
∗
)
(w^*,b^*)
(w∗,b∗). This can be lifted to the curve
γ
(
t
)
=
y
∘
c
(
t
)
γ(t) = y \circ c(t)
γ(t)=y∘c(t) on the manifold
S
S
S. The fastest learning algorithm corresponds to the “shortest” curve between
y
(
w
0
,
b
0
)
y(w_0,b_0)
y(w0,b0) and
y
(
w
∗
,
b
∗
)
y(w^*,b^*)
y(w∗,b∗). The attribute “shortest” depends on the intrinsic geometry of the manifold
S
S
S, and this topic will be discussed in the next section. 这样这个优化问题就可以和后面的黎曼度量、测地线等概念建立关联了。
对一般的神经网络,如果我们增大神经元的个数,则对应的参数也相应增多,
S
S
S的维数也增加。记
M
=
C
(
[
0
,
1
]
)
M=C([0,1])
M=C([0,1]),我们知道对于任意固定的
ϵ
>
0
\epsilon>0
ϵ>0,以及任意的
f
∈
M
f\in M
f∈M,总有一个足够高维数的
S
S
S使得
d
i
s
t
(
f
,
S
)
<
ϵ
dist(f,S)<\epsilon
dist(f,S)<ϵ,其中
d
i
s
t
(
f
,
S
)
=
i
n
f
s
∈
S
m
a
x
x
∈
[
0
,
1
]
∣
f
(
x
)
−
s
(
x
)
∣
dist(f,S)=\mathop{inf}\limits_{s\in S}\mathop{max}\limits_{x\in [0,1]}|f(x)-s(x)|
dist(f,S)=s∈Sinfx∈[0,1]max∣f(x)−s(x)∣
然而实际问题中神经元个数是受限的,如何处理也是作者讨论的话题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。