PRML学习总结(5)——Neural Networks
在第3章和第4章中,我们考虑了由固定基函数的线性组合构成的回归模型和分类模型。我们看到,这些模型具有⼀些有⽤的分析性质和计算性质,但是它们的实际应⽤被维数灾难问题限制了。为了将这些模型应⽤于⼤规模的问题,有必要根据数据调节基函数。
5.1 Feed-forward Network Functions
回归的线性模型和分类的线性模型分别在第3章和第4章中讨论过了。它们基于固定⾮线性基函数
ϕ
j
(
x
)
\phi _ { j } ( \mathbf { x } )
ϕj(x)的线性组合,形式为
y
(
x
,
w
)
=
f
(
∑
j
=
1
M
w
j
ϕ
j
(
x
)
)
y ( \mathbf { x } , \mathbf { w } ) = f \left( \sum _ { j = 1 } ^ { M } w _ { j } \phi _ { j } ( \mathbf { x } ) \right)
y(x,w)=f(j=1∑Mwjϕj(x))现在考虑将基函数中引入参数,构造
M
M
M个输出神经元
a
j
=
∑
i
=
1
D
w
j
i
(
1
)
x
i
+
w
j
0
(
1
)
a _ { j } = \sum _ { i = 1 } ^ { D } w _ { j i } ^ { ( 1 ) } x _ { i } + w _ { j 0 } ^ { ( 1 ) }
aj=i=1∑Dwji(1)xi+wj0(1)其中
j
=
1
,
…
,
M
j = 1 , \ldots , M
j=1,…,M,上标(1)代表层。以上被称为激活,每个激活都有一个非线性的激活函数
z
j
=
h
(
a
j
)
z _ { j } = h \left( a _ { j } \right)
zj=h(aj),将第一层的输出作为第二层的输入
a
k
=
∑
j
=
1
M
w
k
j
(
2
)
z
j
+
w
k
0
(
2
)
a _ { k } = \sum _ { j = 1 } ^ { M } w _ { k j } ^ { ( 2 ) } z _ { j } + w _ { k 0 } ^ { ( 2 ) }
ak=j=1∑Mwkj(2)zj+wk0(2)其中
k
=
1
,
…
,
K
k = 1 , \ldots , K
k=1,…,K,
K
K
K为第二层神经元的数量。
对于不同的任务可以选择不同的激活函数,对于标准的回归问题,
y
k
=
a
k
y _ { k } = a _ { k }
yk=ak;对于二分类问题
y
k
=
σ
(
a
k
)
y _ { k } = \sigma \left( a _ { k } \right)
yk=σ(ak)。对于多分类问题,可以考虑softmax函数。
5.1.1 Weight-space symmetries
前馈神经⽹络的⼀个性质是,对于多个不同的权向量 W \mathbf { W } W的选择,⽹络可能产⽣同样的从输⼊到输出的映射函数。
5.2 Network Training
对于网络的训练,可以参照之前的方式,损失函数为 E ( w ) = 1 2 ∑ n = 1 N ∥ y ( x n , w ) − t n ∥ 2 E ( \mathbf { w } ) = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\| \mathbf { y } \left( \mathbf { x } _ { n } , \mathbf { w } \right) - \mathbf { t } _ { n } \right\| ^ { 2 } E(w)=21n=1∑N∥y(xn,w)−tn∥2先考虑输出为一维的回归问题, p ( t ∣ x , w ) = N ( t ∣ y ( x , w ) , β − 1 ) p ( t | \mathbf { x } , \mathbf { w } ) = \mathcal { N } \left( t | y ( \mathbf { x } , \mathbf { w } ) , \beta ^ { - 1 } \right) p(t∣x,w)=N(t∣y(x,w),β−1)似然函数 p ( t ∣ X , w , β ) = ∏ n = 1 N p ( t n ∣ x n , w , β ) p ( \mathbf { t } | \mathbf { X } , \mathbf { w } , \beta ) = \prod _ { n = 1 } ^ { N } p \left( t _ { n } | \mathbf { x } _ { n } , \mathbf { w } , \beta \right) p(t∣X,w,β)=n=1∏Np(tn∣xn,w,β)则负log为 β 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 − N 2 ln β + N 2 ln ( 2 π ) \frac { \beta } { 2 } \sum _ { n = 1 } ^ { N } \left\{ y \left( \mathbf { x } _ { n } , \mathbf { w } \right) - t _ { n } \right\} ^ { 2 } - \frac { N } { 2 } \ln \beta + \frac { N } { 2 } \ln ( 2 \pi ) 2βn=1∑N{y(xn,w)−tn}2−2Nlnβ+2Nln(2π)利用上式优化目标可以确定参数 w \mathbf w w和 β \beta β。首先考虑优化参数 w \mathbf w w,则只需要考虑 E ( w ) = 1 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 E ( \mathbf { w } ) = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ y \left( \mathbf { x } _ { n } , \mathbf { w } \right) - t _ { n } \right\} ^ { 2 } E(w)=21n=1∑N{y(xn,w)−tn}2在确定 w M L \mathbf { w } _ { \mathrm { ML } } wML之后,可以得到 1 β M L = 1 N ∑ n = 1 N { y ( x n , w M L ) − t n } 2 \frac { 1 } { \beta _ { \mathrm { ML } } } = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } \left\{ y \left( \mathbf { x } _ { n } , \mathbf { w } _ { \mathrm { ML } } \right) - t _ { n } \right\} ^ { 2 } βML1=N1n=1∑N{y(xn,wML)−tn}2现在考虑多维输出的情况 p ( t ∣ x , w ) = N ( t ∣ y ( x , w ) , β − 1 I ) p ( \mathbf { t } | \mathbf { x } , \mathbf { w } ) = \mathcal { N } \left( \mathbf { t } | \mathbf { y } ( \mathbf { x } , \mathbf { w } ) , \beta ^ { - 1 } \mathbf { I } \right) p(t∣x,w)=N(t∣y(x,w),β−1I)则 1 β M L = 1 N K ∑ n = 1 N ∥ y ∣ ( x n , w M L ) − t n ∥ 2 \frac { 1 } { \beta _ { \mathrm { ML } } } = \frac { 1 } { N K } \sum _ { n = 1 } ^ { N } \left\| \mathbf { y } | \left( \mathbf { x } _ { n } , \mathbf { w } _ { \mathrm { ML } } \right) - \mathbf { t } _ { n } \right\| ^ { 2 } βML1=NK1n=1∑N∥y∣(xn,wML)−tn∥2在回归问题时 y k = a k y _ { k } = a _ { k } yk=ak,则 ∂ E ∂ a k = y k − t k \frac { \partial E } { \partial a _ { k } } = y _ { k } - t _ { k } ∂ak∂E=yk−tk下面考虑二分类问题,则输出激活函数为 y = σ ( a ) ≡ 1 1 + exp ( − a ) y = \sigma ( a ) \equiv \frac { 1 } { 1 + \exp ( - a ) } y=σ(a)≡1+exp(−a)1,可以将 y ( x , W ) y ( \mathbf { x } , \mathbf { W } ) y(x,W)作为 p ( C 1 ∣ x ) p \left( \mathcal { C } _ { 1 } | \mathbf { x } \right) p(C1∣x),那么 p ( t ∣ x , w ) = y ( x , w ) t { 1 − y ( x , w ) } 1 − t p ( t | \mathbf { x } , \mathbf { w } ) = y ( \mathbf { x } , \mathbf { w } ) ^ { t } \{ 1 - y ( \mathbf { x } , \mathbf { w } ) \} ^ { 1 - t } p(t∣x,w)=y(x,w)t{1−y(x,w)}1−t则损失函数为(负log) E ( w ) = − ∑ n = 1 N { t n ln y n + ( 1 − t n ) ln ( 1 − y n ) } E ( \mathbf { w } ) = - \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\} E(w)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}如果有 K K K个独立的二分类问题 p ( t ∣ x , w ) = ∏ k = 1 K y k ( x , w ) t k [ 1 − y k ( x , w ) ] 1 − t k p ( \mathbf { t } | \mathbf { x } , \mathbf { w } ) = \prod _ { k = 1 } ^ { K } y _ { k } ( \mathbf { x } , \mathbf { w } ) ^ { t _ { k } } \left[ 1 - y _ { k } ( \mathbf { x } , \mathbf { w } ) \right] ^ { 1 - t _ { k } } p(t∣x,w)=k=1∏Kyk(x,w)tk[1−yk(x,w)]1−tk我们可以对⽐⼀下这个问题的神经⽹络解和第4章讨论过的线性分类模型给出的解,从⽽发现⼀些有趣的事情。假设我们使⽤图5.1所⽰的标准的两层神经⽹络。我们看到,⽹络第⼀层的权向量由各个输出所共享,⽽在线性模型中每个分类问题是独⽴地解决的。神经⽹络的第⼀层可以被看做进⾏了⼀个⾮线性的特征抽取,⽽不同的输出之间共享特征可以节省计算量,同时也提升了泛化能⼒。 E ( w ) = − ∑ n = 1 N ∑ k = 1 K { t n k ln y n k + ( ∣ 1 − t n k ) ln ( 1 − y n k ) } E ( \mathbf { w } ) = - \sum _ { n = 1 } ^ { N } \sum _ { k = 1 } ^ { K } \left\{ t _ { n k } \ln y _ { n k } + \left( | 1 - t _ { n k } \right) \ln \left( 1 - y _ { n k } \right) \right\} E(w)=−n=1∑Nk=1∑K{tnklnynk+(∣1−tnk)ln(1−ynk)}最后考虑多分类问题,可以将网络的输出 y k ( x , w ) = p ( t k = 1 ∣ x ) y _ { k } ( \mathbf { x } , \mathbf { w } ) = p \left( t _ { k } = 1 | \mathbf { x } \right) yk(x,w)=p(tk=1∣x) E ( w ) = − ∑ n = 1 N ∑ k = 1 K t k n ln y k ( x n , w ) E ( \mathbf { w } ) = - \sum _ { n = 1 } ^ { N } \sum _ { k = 1 } ^ { K } t _ { k n } \ln y _ { k } \left( \mathbf { x } _ { n } , \mathbf { w } \right) E(w)=−n=1∑Nk=1∑Ktknlnyk(xn,w)根据第四章可知 y k ( x , w ) = exp ( a k ( x , w ) ) ∑ j exp ( a j ( x , w ) ) y _ { k } ( \mathbf { x } , \mathbf { w } ) = \frac { \exp \left( a _ { k } ( \mathbf { x } , \mathbf { w } ) \right) } { \sum _ { j } \exp \left( a _ { j } ( \mathbf { x } , \mathbf { w } ) \right) } yk(x,w)=∑jexp(aj(x,w))exp(ak(x,w))针对于不同问题有不同的损失函数以及最后一层的激活函数。
5.2.1 Parameter optimization
对于神经网络来说,优化参数到全局最优是很困难的,一般采用迭代的方式进行优化参数,梯度下降 w ( τ + 1 ) = w ( τ ) + Δ w ( τ ) \mathbf { w } ^ { ( \tau + 1 ) } = \mathbf { w } ^ { ( \tau ) } + \Delta \mathbf { w } ^ { ( \tau ) } w(τ+1)=w(τ)+Δw(τ)
5.2.2 Local quadratic approximation
考虑局部二次近似误差函数,利用泰勒 E ( w ) ≃ E ( w ^ ) + ( w − w ^ ) T b + 1 2 ( w − w ^ ) T H ( w − w ^ ) E ( \mathbf { w } ) \simeq E ( \widehat { \mathbf { w } } ) + ( \mathbf { w } - \widehat { \mathbf { w } } ) ^ { \mathrm { T } } \mathbf { b } + \frac { 1 } { 2 } ( \mathbf { w } - \widehat { \mathbf { w } } ) ^ { \mathrm { T } } \mathbf { H } ( \mathbf { w } - \widehat { \mathbf { w } } ) E(w)≃E(w )+(w−w )Tb+21(w−w )TH(w−w )其中 b ≡ ∇ E ∣ w = w ^ \mathbf { b } \equiv \nabla \left. E \right| _ { \mathbf { w } = \widehat { \mathbf { w } } } b≡∇E∣w=w ( H ) i j ≡ ∂ E ∂ w i ∂ w j ∣ w = w ^ ( \mathbf { H } ) _ { i j } \equiv \left. \frac { \partial E } { \partial w _ { i } \partial w _ { j } } \right| _ { \mathbf { w } = \widehat { \mathbf { w } } } (H)ij≡∂wi∂wj∂E∣∣∣∣w=w 那么近似梯度为 ∇ E ≃ b + H ( w − w ^ ) \nabla E \simeq \mathbf { b } + \mathbf { H } ( \mathbf { w } - \widehat { \mathbf { w } } ) ∇E≃b+H(w−w )考虑⼀个特殊情况:在误差函数最⼩值点 W ⋆ \mathbf { W } ^ { \star } W⋆附近的局部⼆次近似。在这种情况下,没有线性项,因为在 W ⋆ \mathbf { W } ^ { \star } W⋆处 ∇ E = 0 \nabla E = 0 ∇E=0, E ( w ) = E ( w ⋆ ) + 1 2 ( w − w ⋆ ) T H ( w − w ⋆ ) E ( \mathbf { w } ) = E \left( \mathbf { w } ^ { \star } \right) + \frac { 1 } { 2 } \left( \mathbf { w } - \mathbf { w } ^ { \star } \right) ^ { \mathrm { T } } \mathbf { H } \left( \mathbf { w } - \mathbf { w } ^ { \star } \right) E(w)=E(w⋆)+21(w−w⋆)TH(w−w⋆)考虑海森矩阵的特征向量 H u i = λ i u i \mathbf { H } \mathbf { u } _ { i } = \lambda _ { i } \mathbf { u } _ { i } Hui=λiui考虑到其完备性 w − w ⋆ = ∑ i α i u i \mathbf { w } - \mathbf { w } ^ { \star } = \sum _ { i } \alpha _ { i } \mathbf { u } _ { i } w−w⋆=i∑αiui则 E ( w ) = E ( w ⋆ ) + 1 2 ∑ i λ i α i 2 E ( \mathbf { w } ) = E \left( \mathbf { w } ^ { \star } \right) + \frac { 1 } { 2 } \sum _ { i } \lambda _ { i } \alpha _ { i } ^ { 2 } E(w)=E(w⋆)+21i∑λiαi2当一个驻点为最小值时,其海森矩阵为正定矩阵。
5.2.3 Use of gradient information
正如我们将在5.3节看到的那样,可以使⽤误差反向传播的⽅法⾼效地计算误差函数的梯度。这个梯度信息的使⽤可以⼤幅度加快找到极⼩值点的速度。原因如下所述。
5.2.4 Gradient descent optimization
最简单的方式为 w ( τ + 1 ) = w ( τ ) − η ∇ E ( w ( τ ) ) \mathbf { w } ^ { ( \tau + 1 ) } = \mathbf { w } ^ { ( \tau ) } - \eta \nabla E \left( \mathbf { w } ^ { ( \tau ) } \right) w(τ+1)=w(τ)−η∇E(w(τ))梯度下降分为批下降和在线下降。
5.3 Error Backpropagation
5.4 The Hessian Matrix
这两部分内容都是关于网络反向传输时的一阶导数和二阶导数。
5.5 Regularization in Neural Networks
神经⽹络的输⼊单元和输出单元的数量通常由数据集的维度确定,⽽隐含单元的数量
M
M
M是⼀个⾃由的参数,可以通过调节来给出最好的预测性能。注意,
M
M
M控制了⽹络中参数(权值和偏置)的数量,因此我们可以猜想,在最⼤似然的框架下,会存在⼀个泛化性能最好的最优的
M
M
M值,这个值对应于拟合效果不好和过拟合之间的最优平衡。图5.9给出了不同的
M
M
M值对于正弦曲线回归问题的效果。
然⽽,泛化误差与
M
M
M的关系不是⼀个简单的函数关系,因为误差函数中存在局部极⼩值,如图5.10所⽰。这⾥,我们看到了对于不同的
M
M
M值,权值的多次随机初始化的效果。在验证集上的整体最优表现出现于
M
=
8
M = 8
M=8的情况下的某个特定的解。在实际应⽤中,⼀种选择
M
M
M的⽅法实际上是画⼀张类似图5.10的图,然后选择有最⼩验证集误差的具体的解。
然⽽,有其他的⽅式控制神经⽹络的模型复杂度来避免过拟合。根据我们第1章中对多项式曲线拟合问题的讨论,我们看到,⼀种⽅法是选择⼀个相对⼤的
M
M
M值,然后通过给误差函数增加⼀个正则化项,来控制模型的复杂度。最简单的正则化项是⼆次的,给出了正则化的误差函数,形式为
E
~
(
w
)
=
E
(
w
)
+
λ
2
w
T
w
\widetilde { E } ( \mathbf { w } ) = E ( \mathbf { w } ) + \frac { \lambda } { 2 } \mathbf { w } ^ { \mathrm { T } } \mathbf { w }
E
(w)=E(w)+2λwTw这个称为weight decay。这样,模型复杂度可以通过选择正则化系数
λ
\lambda
λ来确定。正如我们之前看到的那样,正则化项可以表⽰为权值
w
\mathbf w
w上的零均值⾼斯先验分布的负对数。
5.5.1 Consistent Gaussian priors
简单权值衰减的⼀个局限性是,它与⽹络映射的确定缩放性质不相容。以一个两层的MLP说明该问题,
z
j
=
h
(
∑
i
w
j
i
x
i
+
w
j
0
)
z _ { j } = h \left( \sum _ { i } w _ { j i } x _ { i } + w _ { j 0 } \right)
zj=h(i∑wjixi+wj0)
y
k
=
∑
j
w
k
j
z
j
+
w
k
0
y _ { k } = \sum _ { j } w _ { k j } z _ { j } + w _ { k 0 }
yk=j∑wkjzj+wk0我们将输入进行一个线性变换
x
i
→
x
~
i
=
a
x
i
+
b
x _ { i } \rightarrow \widetilde { x } _ { i } = a x _ { i } + b
xi→x
i=axi+b为了保持网络输出的不变性,可以将网络权重作以下调整
w
j
i
→
w
~
j
i
=
1
a
w
j
i
w
j
0
→
w
~
j
0
=
w
j
0
−
b
a
∑
i
w
j
i
\begin{aligned} w _ { j i } & \rightarrow \widetilde { w } _ { j i } = \frac { 1 } { a } w _ { j i } \\ w _ { j 0 } \rightarrow \widetilde { w } _ { j 0 } & = w _ { j 0 } - \frac { b } { a } \sum _ { i } w _ { j i } \end{aligned}
wjiwj0→w
j0→w
ji=a1wji=wj0−abi∑wji同样的,输出也进行线性变换
y
k
→
y
~
k
=
c
y
k
+
d
y _ { k } \rightarrow \widetilde { y } _ { k } = c y _ { k } + d
yk→y
k=cyk+d那么第二层的权重可以作以下调整
w
k
j
→
w
~
k
j
=
c
w
k
j
w
k
0
→
w
~
k
0
=
c
w
k
0
+
d
\begin{aligned} w _ { k j } & \rightarrow \widetilde { w } _ { k j } = c w _ { k j } \\ w _ { k 0 } & \rightarrow \widetilde { w } _ { k 0 } = c w _ { k 0 } + d \end{aligned}
wkjwk0→w
kj=cwkj→w
k0=cwk0+d如果我们使⽤原始数据训练⼀个⽹络,还使⽤输⼊和(或)⽬标变量进⾏了上⾯的线性变换的数据训练⼀个⽹络,那么相容性要求这两个⽹络应该是等价的,差别仅在于上⾯给出的权值的线性变换。任何正则化项都应该与这个性质相容,否则模型就会倾向于选择某个解,⽽忽视某个等价的解。显然,简单的权值衰减由于把所有的权值和偏置同等对待,因此不满⾜这个性质。
于是我们要寻找一个正则化项,对以上的线性不变性不变,则
λ
1
2
∑
w
∈
W
1
w
2
+
λ
2
2
∑
w
∈
W
2
w
2
\frac { \lambda _ { 1 } } { 2 } \sum _ { w \in \mathcal { W } _ { 1 } } w ^ { 2 } + \frac { \lambda _ { 2 } } { 2 } \sum _ { w \in \mathcal { W } _ { 2 } } w ^ { 2 }
2λ1w∈W1∑w2+2λ2w∈W2∑w2其中
N
1
\mathcal { N } _ { 1 }
N1代表第一层的权重,
N
2
\mathcal { N } _ { 2 }
N2代表第二层的权重,以上正则中没有偏置。当
λ
1
→
a
1
/
2
λ
1
\lambda _ { 1 } \rightarrow a ^ { 1 / 2 } \lambda _ { 1 }
λ1→a1/2λ1 and
λ
2
→
c
−
1
/
2
λ
2
\lambda _ { 2 } \rightarrow c ^ { - 1 / 2 } \lambda _ { 2 }
λ2→c−1/2λ2时,就能保证不变性。以上正则对应的先验为
p
(
w
∣
α
1
,
α
2
)
∝
exp
(
−
α
1
2
∑
w
∈
W
1
w
2
−
α
2
2
∑
w
∈
W
2
w
2
)
p \left( \mathbf { w } | \alpha _ { 1 } , \alpha _ { 2 } \right) \propto \exp \left( - \frac { \alpha _ { 1 } } { 2 } \sum _ { w \in \mathcal { W } _ { 1 } } w ^ { 2 } - \frac { \alpha _ { 2 } } { 2 } \sum _ { w \in \mathcal { W } _ { 2 } } w ^ { 2 } \right)
p(w∣α1,α2)∝exp(−2α1w∈W1∑w2−2α2w∈W2∑w2)注意,这种形式的先验是反常的(improper)(不能够被归⼀化),因为偏置参数没有限制。使⽤反常先验会给正则化系数的选择造成很⼤的困难,也会给贝叶斯框架下的模型选择造成很⼤的困难,因为对应的模型证据等于零。因此,通常的做法是单独包含⼀个有着⾃⼰单独的⼀套超参数的偏置的先验(这就破坏了平移不变性)。为了说明四个参数的效果,我们从先验中抽取样本,然后画出了对应的神经⽹络函数,如图5.11所⽰。
更⼀般地,我们可以考虑权值被分为任意数量的组
W
k
\mathcal { W } _ { k }
Wk的情况下的先验,即
p
(
w
)
∝
exp
(
−
1
2
∑
k
α
k
∥
w
∥
k
2
)
p ( \mathbf { w } ) \propto \exp \left( - \frac { 1 } { 2 } \sum _ { k } \alpha _ { k } \| \mathbf { w } \| _ { k } ^ { 2 } \right)
p(w)∝exp(−21k∑αk∥w∥k2)其中
∥
w
∥
k
2
=
∑
j
∈
W
k
w
j
2
\| \mathbf { w } \| _ { k } ^ { 2 } = \sum _ { j \in \mathcal { W } _ { k } } w _ { j } ^ { 2 }
∥w∥k2=∑j∈Wkwj2。作为这种形式的先验的⼀个特殊情况,如果我们将每个输⼊单元关联的权值设为⼀个分组,并且关于对应的参数
α
k
\alpha _ { k }
αk最优化边缘似然函数,那么我们就得到了将在7.2.2节讨论的⾃动相关性确定(automatic relevance determination)的⽅法。
5.5.2 Early stopping
另⼀种控制⽹络的复杂度的正则化⽅法是早停⽌(early stopping)。⾮线性⽹络模型的训练对应于误差函数的迭代减⼩,其中误差函数是关于训练数据集定义的。对于许多⽤于⽹络训练的最优化算法(例如共轭梯度法),误差函数是⼀个关于迭代次数的不增函数。然⽽,在独⽴数据(通常被称为验证集)上测量的误差,通常⾸先减⼩,接下来由于模型开始过拟合⽽逐渐增⼤。于是,训练过程可以在关于验证集误差最⼩的点停⽌,如图5.12所⽰。这样可以得到⼀个有着较好泛化性能的⽹络。
这种情况下,⽹络的⾏为有时可以通过⽹络的⾃由度有效数量来定量描述。⾃由度有效数量开始时很⼩,然后在训练过程中增长,对应于模型复杂度的持续增长。这样,在训练误差达到最⼩值之前停⽌训练就表⽰了⼀种限制模型复杂度的⽅式。
在⼆次误差函数的情况下,我们可以说明这种直观的描述,并且说明早停⽌的效果与使⽤简单的权值衰减的正则化项的效果类似。这可以通过图5.13来理解。
5.5.3 Invariances
在许多模式识别的应⽤中,在对于输⼊变量进⾏了⼀个或者多个变换之后,预测不应该发⽣变化,或者说应该具有不变性(invariant)。例如,在⼆维图像(例如⼿写数字)的分类问题中,⼀个特定的图像的类别应该与图像的位置⽆关(平移不变性(translation invariance)),也应该与图像的⼤⼩⽆关(缩放不变性(scale invariance))。这样的变换对于原始数据(⽤图像的每个像素的灰度值表⽰)产⽣了巨⼤的改变,但是分类系统还是应该给出同样的输出。类似地,在语⾳识别中,对于时间轴的微⼩的⾮线性变形(保持了时间顺序)不应该改变信号的意义。
如果可以得到⾜够多的训练模式,那么可调节的模型(例如神经⽹络)可以学习到不变性,⾄少可以近似地学习到。这涉及到在训练集⾥包含⾜够多的表⽰各种变换的效果的样本。因此,对于⼀个图像的平移不变性,训练集应该包含图像出现在多个不同位置的情况下的数据。
但是,如果训练样本数受限,或者有多个不变性(变换的组合的数量随着变换的数量指数增长),那么这种⽅法就很不实⽤。于是,我们要寻找另外的⽅法来让可调节的模型能够表述所需的不变性。这些⽅法⼤致可以分为四类。
1)通过复制训练模式,同时根据要求的不变性进⾏变换,对训练集进⾏扩展。例如,在⼿写数字识别的例⼦中,我们可以将每个样本复制多次,每个复制后的样本中,图像被平移到了不同的位置。
2)为误差函数加上⼀个正则化项,⽤来惩罚当输⼊进⾏变换时,输出发⽣的改变。这引出了5.5.4节讨论的切线传播(tangent propagation)⽅法。
3)通过抽取在要求的变换下不发⽣改变的特征,不变性被整合到预处理过程中。任何后续的使⽤这些特征作为输⼊的回归或者分类系统就会具有这些不变性。
4)最后⼀种⽅法是把不变性的性质整合到神经⽹络的构建过程中,或者对于相关向量机的⽅法,整合到核函数中。⼀种⽅法是通过使⽤局部接收场和共享权值,正如5.5.6节在卷积神经⽹络中讨论的那样。
⽅法1通常实现起来相对简单,并且可以⽤来处理复杂的不变性,如图5.14所⽰。对于顺序训练算法,可以这样做:在模型观测到输⼊模式之前,对每个输⼊模式进⾏变换,从⽽使得如果模式被循环处理,那么每次都会接收到⼀个不同的变换(从⼀个适当的概率分布中抽取)。对于批处理⽅法,可以将每个数据点复制多次,然后独⽴地变换每个副本,这样可以产⽣类似的效果。使⽤这些扩展后的数据可以⼤幅提升泛化能⼒(Simard et al., 2003),虽然计算开销⽐较⼤。
⽅法2保持了数据集的不变性,⽽是给误差函数增加了⼀个正则化项。在5.5.5节,我们会看到⽅法1与⽅法2关系密切。
⽅法3的⼀个优点是,对于训练集⾥没有包含的变换,它可以正确地进⾏外插。然⽽,找到符合要求的⼈⼯设计的特征很困难,因为这种特征要具有所需的不变性,还不能丢失对于判别很有帮助的信息。
5.5.4 Tangent propagation
通过切线传播(tangent propagation)的⽅法,我们可以使⽤正则化来让模型对于输⼊的变换具有不变性(Simard et al., 1992)。对于⼀个特定的输⼊向量
x
n
\mathbf { x } _ { n }
xn,考虑变换产⽣的效果。假设变换是连续的(例如平移或者旋转,⽽不是镜像翻转),那么变换的模式会扫过
D
D
D维输⼊空间的⼀个流形
M
\mathcal M
M。图5.15
说明了
D
=
2
D = 2
D=2的情形。假设变换由单⼀参数
ξ
\xi
ξ控制(例如,
ξ
\xi
ξ可能是旋转的⾓度)。那么被
x
n
\mathbf { x } _ { n }
xn扫过的⼦空间
M
\mathcal M
M是⼀维的,并且以为参数。令这个变换作⽤于
x
n
\mathbf { x } _ { n }
xn上产⽣的向量为
s
(
x
n
,
ξ
)
\mathbf { s } \left( \mathbf { x } _ { n } , \xi \right)
s(xn,ξ),且
s
(
x
n
,
ξ
)
=
x
\mathbf { s } \left( \mathbf { x } _ { n } , \xi \right)=\mathbf x
s(xn,ξ)=x。这样曲线
M
\mathcal M
M的切线就由⽅向导数
τ
=
∂
s
/
∂
ξ
\tau = \partial \mathbf { s } / \partial \xi
τ=∂s/∂ξ给出,且点
x
n
\mathbf { x } _ { n }
xn处的切线向量为
τ
n
=
∂
s
(
x
n
,
ξ
)
∂
ξ
∣
ξ
=
0
\boldsymbol { \tau } _ { n } = \left. \frac { \partial \mathbf { s } \left( \mathbf { x } _ { n } , \xi \right) } { \partial \xi } \right| _ { \xi = 0 }
τn=∂ξ∂s(xn,ξ)∣∣∣∣ξ=0
∂
y
k
∂
ξ
∣
ξ
=
0
=
∑
i
=
1
D
∂
y
k
∂
x
i
∂
x
i
∂
ξ
∣
ξ
=
0
=
∑
i
=
1
D
J
k
i
τ
i
\left. \frac { \partial y _ { k } } { \partial \xi } \right| _ { \xi = 0 } = \sum _ { i = 1 } ^ { D } \frac { \partial y _ { k } } { \partial x _ { i } } \left. \frac { \partial x _ { i } } { \partial \xi } \right| _ { \xi = 0 } = \sum _ { i = 1 } ^ { D } J _ { k i } \tau _ { i }
∂ξ∂yk∣∣∣∣ξ=0=i=1∑D∂xi∂yk∂ξ∂xi∣∣∣∣ξ=0=i=1∑DJkiτi对于这种不变性,对误差函数加入一个正则
E
~
=
E
+
λ
Ω
\widetilde { E } = E + \lambda \Omega
E
=E+λΩ其中
Ω
=
1
2
∑
n
∑
k
(
∂
y
n
k
∂
ξ
∣
ξ
=
0
)
2
=
1
2
∑
n
∑
k
(
∑
i
=
1
D
J
n
k
i
τ
n
i
)
2
\Omega = \frac { 1 } { 2 } \sum _ { n } \sum _ { k } \left( \left. \frac { \partial y _ { n k } } { \partial \xi } \right| _ { \xi = 0 } \right) ^ { 2 } = \frac { 1 } { 2 } \sum _ { n } \sum _ { k } \left( \sum _ { i = 1 } ^ { D } J _ { n k i } \tau _ { n i } \right) ^ { 2 }
Ω=21n∑k∑(∂ξ∂ynk∣∣∣∣ξ=0)2=21n∑k∑(i=1∑DJnkiτni)2在实际执⾏过程中,切线向量
τ
n
\boldsymbol { \tau } _ { n }
τn可以使⽤有限差近似,即将原始向量
x
n
\mathbf x_n
xn从使⽤了⼩的
ξ
\xi
ξ进⾏变换后的对应的向量中减去,再除以。图5.16说明了这个过程。
5.5.5 Training with transformed data
我们已经看到,让模型对于⼀组变换具有不变性的⼀种⽅法是使⽤原始输⼊模式的变换后的模式来扩展训练集。这⾥,我们会说明,这种⽅法与切线传播的⽅法密切相关。
与之前一样,考虑单因素
ξ
\xi
ξ,则经过变换后的数据的误差函数为
E
~
=
1
2
∭
{
y
(
s
(
x
,
ξ
)
)
−
t
}
2
p
(
t
∣
x
)
p
(
x
)
p
(
ξ
)
d
x
d
t
d
ξ
\widetilde { E } = \frac { 1 } { 2 } \iiint \{ y ( \mathbf { s } ( \mathbf { x } , \xi ) ) - t \} ^ { 2 } p ( t | \mathbf { x } ) p ( \mathbf { x } ) p ( \xi ) \mathrm { d } \mathbf { x } \mathrm { d } t \mathrm { d } \xi
E
=21∭{y(s(x,ξ))−t}2p(t∣x)p(x)p(ξ)dxdtdξ其中
p
(
ξ
)
p(\xi)
p(ξ)为0均值和小方差的高斯分布先验。利用泰勒展开
s
(
x
,
ξ
)
=
s
(
x
,
0
)
+
ξ
∂
∂
ξ
s
(
x
,
ξ
)
∣
ξ
=
0
+
ξ
2
2
∂
2
∂
ξ
2
s
(
x
,
ξ
)
∣
ξ
=
0
+
O
(
ξ
3
)
\mathbf { s } ( \mathbf { x } , \xi ) = \mathbf { s } ( \mathbf { x } , 0 ) + \xi \frac { \partial } { \partial \xi } \mathbf { s } \left. ( \mathbf { x } , \xi ) \right| _ { \xi = 0 } + \frac { \xi ^ { 2 } } { 2 } \frac { \partial ^ { 2 } } { \partial \xi ^ { 2 } } \mathbf { s } \left. ( \mathbf { x } , \xi ) \right| _ { \xi = 0 } + O \left( \xi ^ { 3 } \right)
s(x,ξ)=s(x,0)+ξ∂ξ∂s(x,ξ)∣ξ=0+2ξ2∂ξ2∂2s(x,ξ)∣ξ=0+O(ξ3)
=
x
+
ξ
τ
+
1
2
ξ
2
τ
′
+
O
(
ξ
3
)
= \mathrm { x } + \xi \tau + \frac { 1 } { 2 } \xi ^ { 2 } \tau ^ { \prime } + O \left( \xi ^ { 3 } \right)
=x+ξτ+21ξ2τ′+O(ξ3)则
y
(
s
(
x
,
ξ
)
)
=
y
(
x
)
+
ξ
τ
T
∇
y
(
x
)
+
ξ
2
2
[
(
τ
′
)
T
∇
y
(
x
)
+
τ
T
∇
∇
y
(
x
)
τ
]
+
O
(
ξ
3
)
y ( \mathbf { s } ( \mathbf { x } , \xi ) ) = y ( \mathbf { x } ) + \xi \tau ^ { \mathrm { T } } \nabla y ( \mathbf { x } ) + \frac { \xi ^ { 2 } } { 2 } \left[ \left( \boldsymbol { \tau } ^ { \prime } \right) ^ { \mathrm { T } } \nabla y ( \mathbf { x } ) + \boldsymbol { \tau } ^ { \mathrm { T } } \nabla \nabla y ( \mathbf { x } ) \boldsymbol { \tau } \right] + O \left( \xi ^ { 3 } \right)
y(s(x,ξ))=y(x)+ξτT∇y(x)+2ξ2[(τ′)T∇y(x)+τT∇∇y(x)τ]+O(ξ3)则
E
~
=
1
2
∬
{
y
(
x
)
−
t
}
2
p
(
t
∣
x
)
p
(
x
)
d
x
d
t
+
E
[
ξ
]
∬
{
y
(
x
)
−
t
}
τ
T
∇
y
(
x
)
p
(
t
∣
x
)
p
(
x
)
d
x
d
t
+
E
[
ξ
2
]
∬
[
{
y
(
x
)
−
t
}
1
2
{
(
τ
′
)
T
∇
y
(
x
)
+
τ
T
∇
∇
y
(
x
)
τ
}
+
(
τ
T
∇
y
(
x
)
)
2
]
p
(
t
∣
x
)
p
(
x
)
d
x
d
t
+
O
(
ξ
3
)
\begin{aligned} \widetilde { E } & = \frac { 1 } { 2 } \iint \{ y ( \mathbf { x } ) - t \} ^ { 2 } p ( t | \mathbf { x } ) p ( \mathbf { x } ) \mathrm { d } \mathbf { x } \mathrm { d } t \\ & + \mathbb { E } [ \xi ] \iint \{ y ( \mathbf { x } ) - t \} \boldsymbol { \tau } ^ { \mathrm { T } } \nabla y ( \mathbf { x } ) p ( t | \mathbf { x } ) p ( \mathbf { x } ) \mathrm { d } \mathbf { x } \mathrm { d } t \\ & + \mathbb { E } \left[ \xi ^ { 2 } \right] \iint \left[ \{ y ( \mathbf { x } ) - t \} \frac { 1 } { 2 } \left\{ \left( \boldsymbol { \tau } ^ { \prime } \right) ^ { \mathrm { T } } \nabla y ( \mathbf { x } ) + \tau ^ { \mathrm { T } } \nabla \nabla y ( \mathbf { x } ) \tau \right\} \right.\\ & + \left( \boldsymbol { \tau } ^ { \mathrm { T } } \nabla y ( \mathbf { x } ) \right) ^ { 2 } ] p ( t | \mathbf { x } ) p ( \mathbf { x } ) \mathrm { d } \mathbf { x } \mathrm { d } t + O \left( \xi ^ { 3 } \right) \end{aligned}
E
=21∬{y(x)−t}2p(t∣x)p(x)dxdt+E[ξ]∬{y(x)−t}τT∇y(x)p(t∣x)p(x)dxdt+E[ξ2]∬[{y(x)−t}21{(τ′)T∇y(x)+τT∇∇y(x)τ}+(τT∇y(x))2]p(t∣x)p(x)dxdt+O(ξ3)由于
E
[
ξ
]
=
0
\mathbb { E } [ \xi ] = 0
E[ξ]=0,
E
[
ξ
2
]
\mathbb { E } \left[ \xi ^ { 2 } \right]
E[ξ2] by
λ
\lambda
λ则
E
~
=
E
+
λ
Ω
\widetilde { E } = E + \lambda \Omega
E
=E+λΩ其中
Ω
=
∫
[
{
y
(
x
)
−
E
[
t
∣
x
]
}
1
2
{
(
τ
′
)
T
∇
y
(
x
)
+
τ
T
∇
∇
y
(
x
)
τ
}
+
(
τ
T
∇
y
(
x
)
)
2
]
p
(
x
)
d
x
\begin{aligned} \Omega = & \int \left[ \{ y ( \mathbf { x } ) - \mathbb { E } [ t | \mathbf { x } ] \} \frac { 1 } { 2 } \left\{ \left( \tau ^ { \prime } \right) ^ { \mathrm { T } } \nabla y ( \mathbf { x } ) + \boldsymbol { \tau } ^ { \mathrm { T } } \nabla \nabla y ( \mathbf { x } ) \tau \right\} \right.\\ & + \left( \boldsymbol { \tau } ^ { T } \nabla y ( \mathbf { x } ) \right) ^ { 2 } ] p ( \mathbf { x } ) \mathrm { d } \mathbf { x } \end{aligned}
Ω=∫[{y(x)−E[t∣x]}21{(τ′)T∇y(x)+τT∇∇y(x)τ}+(τT∇y(x))2]p(x)dx我们可以进⼀步简化这个正则化项,如下所述。在1.5.5节,我们已经看到,使平⽅和误差函数达到最⼩值的函数为⽬标值
t
t
t的条件均值
E
[
t
∣
x
]
\mathbb { E } [ t | \mathbf { x } ]
E[t∣x]。我们看到正则化的误差函数等于⾮正则化的误差函数加上⼀个
O
(
ξ
)
O ( \xi )
O(ξ)的项,因此最⼩化总误差函数的⽹络函数的形式为
y
(
x
)
=
E
[
t
∣
x
]
+
O
(
ξ
)
y ( \mathbf { x } ) = \mathbb { E } [ t | \mathbf { x } ] + O ( \xi )
y(x)=E[t∣x]+O(ξ)那么
Ω
=
1
2
∫
(
τ
T
∇
y
(
x
)
)
2
p
(
x
)
d
x
\Omega = \frac { 1 } { 2 } \int \left( \tau ^ { T } \nabla y ( \mathbf { x } ) \right) ^ { 2 } p ( \mathbf { x } ) \mathrm { d } \mathbf { x }
Ω=21∫(τT∇y(x))2p(x)dx这个结果跟前面的tangent propagation regularizer
Ω
=
1
2
∑
n
∑
k
(
∂
y
n
k
∂
ξ
∣
ξ
=
0
)
2
=
1
2
∑
n
∑
k
(
∑
i
=
1
D
J
n
k
i
τ
n
i
)
2
\Omega = \frac { 1 } { 2 } \sum _ { n } \sum _ { k } \left( \left. \frac { \partial y _ { n k } } { \partial \xi } \right| _ { \xi = 0 } \right) ^ { 2 } = \frac { 1 } { 2 } \sum _ { n } \sum _ { k } \left( \sum _ { i = 1 } ^ { D } J _ { n k i } \tau _ { n i } \right) ^ { 2 }
Ω=21n∑k∑(∂ξ∂ynk∣∣∣∣ξ=0)2=21n∑k∑(i=1∑DJnkiτni)2一致了。
如果我们考虑⼀个特殊情况, 即输⼊变量的变换只是简单地添加随机噪声, 从
⽽
x
→
x
+
ξ
\mathbf { x } \rightarrow \mathbf { x } + \boldsymbol { \xi }
x→x+ξ,那么正则化项的形式为
Ω
=
1
2
∫
∥
∇
y
(
x
)
∥
2
p
(
x
)
d
x
\Omega = \frac { 1 } { 2 } \int \| \nabla y ( \mathbf { x } ) \| ^ { 2 } p ( \mathbf { x } ) \mathrm { d } \mathbf { x }
Ω=21∫∥∇y(x)∥2p(x)dxTikhonov regularization。我们看到,对于⼩的噪声,Tikhonov正则化与对输⼊添加随机噪声有关系。可以证明,在恰当的情况下,这种做法会提升模型的泛化能⼒。
5.5.6 Convolutional networks
另⼀种构造对输⼊变量的变换具有不变性的模型的⽅法是将不变性的性质融⼊到神经⽹络结构的构建中。这是卷积神经⽹络(convolutional neural network)(LeCun et al., 1989; LeCun et al., 1998)的基础,它被⼴泛地应⽤于图像处理领域。
5.5.7 Soft weight sharing
降低具有⼤量权值参数的⽹络复杂度的⼀种⽅法是将权值分组,然后令分组内的权值相等。这是图5.5.6中讨论的权值共享的⽅法,这种⽅法将⽹络对于图像的平移不变性整合到⽹络的构建过程中。然⽽,它只适⽤于限制的形式可以事先确定的问题中。这⾥,我们考虑软权值共享(soft weight sharing)(Nowlan and Hinton, 1992)。这种⽅法中,权值相等的硬限制被替换为⼀种形式的正则化,其中权值的分组倾向于取近似的值。此外,权值的分组、每组权值的均值,以及分组内的取值范围全都作为学习过程的⼀部分被确定。
回忆⼀下,公式(5.112)给出的简单的权值衰减正则化项可以被看成权值上的⾼斯分布的负对数。我们可以将权值分为若⼲组,⽽不是将所有权值分为⼀个组。分组的⽅法是使⽤⾼斯混合概率分布。混合分布中,每个⾼斯分量的均值、⽅差,以及混合系数,都会作为可调节的参数在学习过程中被确定。于是,我们有下⾯形式的概率密度
p
(
w
)
=
∏
i
p
(
w
i
)
p ( \mathbf { w } ) = \prod _ { i } p \left( w _ { i } \right)
p(w)=i∏p(wi)其中
p
(
w
i
)
=
∑
j
=
1
M
π
j
N
(
w
i
∣
μ
j
,
σ
j
2
)
p \left( w _ { i } \right) = \sum _ { j = 1 } ^ { M } \pi _ { j } \mathcal { N } \left( w _ { i } | \mu _ { j } , \sigma _ { j } ^ { 2 } \right)
p(wi)=j=1∑MπjN(wi∣μj,σj2)以其负log作为正则项
Ω
(
w
)
=
−
∑
i
ln
(
∑
j
=
1
M
π
j
N
(
w
i
∣
μ
j
,
σ
j
2
)
)
\Omega ( \mathbf { w } ) = - \sum _ { i } \ln \left( \sum _ { j = 1 } ^ { M } \pi _ { j } \mathcal { N } \left( w _ { i } | \mu _ { j } , \sigma _ { j } ^ { 2 } \right) \right)
Ω(w)=−i∑ln(j=1∑MπjN(wi∣μj,σj2))则整个损失函数为
E
~
(
w
)
=
E
(
w
)
+
λ
Ω
(
w
)
\widetilde { E } ( \mathbf { w } ) = E ( \mathbf { w } ) + \lambda \Omega ( \mathbf { w } )
E
(w)=E(w)+λΩ(w)如果当
w
\mathbf w
w固定时,可以采取EM算法去优化这个问题。但是
w
\mathbf w
w也是需要优化的参数,因此采用联合优化的方式。则
∂
E
~
∂
w
i
=
∂
E
∂
w
i
+
λ
∑
j
γ
j
(
w
i
)
(
w
i
−
μ
j
)
σ
j
2
\frac { \partial \widetilde { E } } { \partial w _ { i } } = \frac { \partial E } { \partial w _ { i } } + \lambda \sum _ { j } \gamma _ { j } \left( w _ { i } \right) \frac { \left( w _ { i } - \mu _ { j } \right) } { \sigma _ { j } ^ { 2 } }
∂wi∂E
=∂wi∂E+λj∑γj(wi)σj2(wi−μj)其中
γ
j
(
w
)
=
π
j
N
(
w
∣
μ
j
,
σ
j
2
)
∑
k
π
k
N
(
w
∣
μ
k
,
σ
k
2
)
\gamma _ { j } ( w ) = \frac { \pi _ { j } \mathcal { N } \left( w | \mu _ { j } , \sigma _ { j } ^ { 2 } \right) } { \sum _ { k } \pi _ { k } \mathcal { N } \left( w | \mu _ { k } , \sigma _ { k } ^ { 2 } \right) }
γj(w)=∑kπkN(w∣μk,σk2)πjN(w∣μj,σj2)于是,正则化项的效果是把每个权值拉向第
j
j
j个⾼斯分布的中⼼,拉⼒正⽐于对于给定权值的⾼斯分布的后验概率。这恰好就是我们要寻找的效果。
∂
E
~
∂
μ
j
=
λ
∑
i
γ
j
(
w
i
)
(
μ
i
−
w
j
)
σ
j
2
\frac { \partial \widetilde { E } } { \partial \mu _ { j } } = \lambda \sum _ { i } \gamma _ { j } \left( w _ { i } \right) \frac { \left( \mu _ { i } - w _ { j } \right) } { \sigma _ { j } ^ { 2 } }
∂μj∂E
=λi∑γj(wi)σj2(μi−wj)它具有简单的直观含义,因为它把
μ
j
\mu_j
μj拉向了权值的平均值,拉⼒为第
j
j
j个⾼斯分量产⽣的权值参数的后验概率。
∂
E
~
∂
σ
j
=
λ
∑
i
γ
j
(
w
i
)
(
1
σ
j
−
(
w
i
−
μ
j
)
2
σ
j
3
)
\frac { \partial \widetilde { E } } { \partial \sigma _ { j } } = \lambda \sum _ { i } \gamma _ { j } \left( w _ { i } \right) \left( \frac { 1 } { \sigma _ { j } } - \frac { \left( w _ { i } - \mu _ { j } \right) ^ { 2 } } { \sigma _ { j } ^ { 3 } } \right)
∂σj∂E
=λi∑γj(wi)(σj1−σj3(wi−μj)2)它将
σ
j
\sigma _ { j }
σj拉向权值在对应的中⼼
μ
j
\mu_j
μj附近的偏差的平⽅的加权平均,加权平均的权系数与之前⼀样,等于由第
j
j
j个⾼斯分量产⽣的权值参数的后验概率。注意,在实际执⾏过程中,我们会引⼊⼀个新的变量
η
j
\eta _ { j }
ηj,它由下式定义。
σ
j
2
=
exp
(
η
j
)
\sigma _ { j } ^ { 2 } = \exp \left( \eta _ { j } \right)
σj2=exp(ηj)这样就能在整个实数上优化。对于混合系数的求导需要考虑以下约束
∑
j
π
j
=
1
,
0
⩽
π
i
⩽
1
\sum _ { j } \pi _ { j } = 1 , \qquad 0 \leqslant \pi _ { i } \leqslant 1
j∑πj=1,0⩽πi⩽1同样地,可以引入这样的变量
π
j
=
exp
(
η
j
)
∑
k
=
1
M
exp
(
η
k
)
\pi _ { j } = \frac { \exp \left( \eta _ { j } \right) } { \sum _ { k = 1 } ^ { M } \exp \left( \eta _ { k } \right) }
πj=∑k=1Mexp(ηk)exp(ηj)这样就是无约束优化,则
∂
E
~
∂
η
j
=
∑
i
{
π
j
−
γ
j
(
w
i
)
}
\frac { \partial \widetilde { E } } { \partial \eta _ { j } } = \sum _ { i } \left\{ \pi _ { j } - \gamma _ { j } \left( w _ { i } \right) \right\}
∂ηj∂E
=i∑{πj−γj(wi)}我们看到,
π
j
\pi _ { j }
πj被拉向第
j
j
j个⾼斯分量的平均后验概率。
5.6 Mixture Density Networks
有监督学习的⽬标是对条件概率分布
p
(
t
∣
x
)
p ( \mathbf { t } | \mathbf { x } )
p(t∣x)建模。对于许多简单的回归问题来说,这个分布都被选为⾼斯分布。然⽽,实际的机器学习问题中,经常会遇到与⾼斯分布差别相当⼤的概率分布。例如,在逆问题(inverse problem)中,概率分布可以是多峰的,这种情况下,⾼斯分布的假设就会产⽣相当差的预测结果。
考虑⼀个相当简单的问题,这个问题中我们可以很容易地看出多峰性质。这个问题的数据的⽣成⽅式为:对服从区间
(
0
,
1
)
(0,1)
(0,1)的均匀分布的变量
x
x
x进⾏取样,得到⼀组值
{
x
n
}
\left\{ x _ { n } \right\}
{xn},对应的⽬标值
t
n
t_n
tn通过下⾯的⽅式得到:计算函数
x
n
+
0.3
sin
(
2
π
x
n
)
x _ { n } + 0.3 \sin \left( 2 \pi x _ { n } \right)
xn+0.3sin(2πxn),然后添加⼀个服从
(
−
0.1
,
0.1
)
(-0.1,0.1)
(−0.1,0.1)上的均匀分布的噪声。这样,逆问题就可以这样得到:使⽤相同的数据点,但是交换
x
x
x和
t
t
t的⾓⾊。图5.19给出了正向问题和逆问题的数据集,以及⼀个两层神经⽹络给出的结果。这个两层的神经⽹络有6个隐含单元,⼀个线性输出单元,误差函数为平⽅和误差函数。在⾼斯分布的假设下,最⼩平⽅⽅法对应于最⼤似然⽅法。我们看到,对于不服从⾼斯分布的逆问题,这种解法产⽣的模型⾮常差。
那么可以将
p
(
t
∣
x
)
p ( \mathbf { t } | \mathbf { x } )
p(t∣x)建模为混合模型,这个模型为混合密度模型。此处我们考虑为混合高斯模型
p
(
t
∣
x
)
=
∑
k
=
1
K
π
k
(
x
)
N
(
t
∣
μ
k
(
x
)
,
σ
k
2
(
x
)
)
p ( \mathbf { t } | \mathbf { x } ) = \sum _ { k = 1 } ^ { K } \pi _ { k } ( \mathbf { x } ) \mathcal { N } \left( \mathbf { t } | \boldsymbol { \mu } _ { k } ( \mathbf { x } ) , \sigma _ { k } ^ { 2 } ( \mathbf { x } ) \right)
p(t∣x)=k=1∑Kπk(x)N(t∣μk(x),σk2(x))
考虑到该网络中一些约束条件,如
∑
k
=
1
K
π
k
(
x
)
=
1
,
0
⩽
π
k
(
x
)
⩽
1
\sum _ { k = 1 } ^ { K } \pi _ { k } ( \mathbf { x } ) = 1 , \qquad 0 \leqslant \pi _ { k } ( \mathbf { x } ) \leqslant 1
k=1∑Kπk(x)=1,0⩽πk(x)⩽1
σ
k
2
(
x
)
⩾
0
\sigma _ { k } ^ { 2 } ( \mathbf { x } ) \geqslant 0
σk2(x)⩾0那么可以作以下替代
π
k
(
x
)
=
exp
(
a
k
π
)
∑
l
=
1
K
exp
(
a
l
π
)
\pi _ { k } ( \mathbf { x } ) = \frac { \exp \left( a _ { k } ^ { \pi } \right) } { \sum _ { l = 1 } ^ { K } \exp \left( a _ { l } ^ { \pi } \right) }
πk(x)=∑l=1Kexp(alπ)exp(akπ)
σ
k
(
x
)
=
exp
(
a
k
σ
)
\sigma _ { k } ( \mathbf { x } ) = \exp \left( a _ { k } ^ { \sigma } \right)
σk(x)=exp(akσ)训练该网络的目标函数为
E
(
w
)
=
−
∑
n
=
1
N
ln
{
∑
k
=
1
k
π
k
(
x
n
,
w
)
N
(
t
n
∣
μ
k
(
x
n
,
w
)
,
σ
k
2
(
x
n
,
w
)
)
}
E ( \mathbf { w } ) = - \sum _ { n = 1 } ^ { N } \ln \left\{ \sum _ { k = 1 } ^ { k } \pi _ { k } \left( \mathbf { x } _ { n } , \mathbf { w } \right) \mathcal { N } \left( \mathbf { t } _ { n } | \boldsymbol { \mu } _ { k } \left( \mathbf { x } _ { n } , \mathbf { w } \right) , \sigma _ { k } ^ { 2 } \left( \mathbf { x } _ { n } , \mathbf { w } \right) \right) \right\}
E(w)=−n=1∑Nln{k=1∑kπk(xn,w)N(tn∣μk(xn,w),σk2(xn,w))}仍然采用梯度下降方式训练网络。对于上面给的一个逆的例子,得到
⼀旦混合密度⽹络训练结束,他就可以预测对于任意给定的输⼊向量的⽬标数据的条件密度函数。只要我们关注的是预测输出向量的值的问题,那么这个条件概率密度就能完整地描述⽤于⽣成数据的概率分布。根据这个概率密度函数,我们可以计算不同应⽤中我们感兴趣的更加具体的量。⼀个最简单的量就是⽬标数据的条件均值,即
E
[
t
∣
x
]
=
∫
t
p
(
t
∣
x
)
d
t
=
∑
k
=
1
K
π
k
(
x
)
μ
k
(
x
)
\mathbb { E } [ \mathbf { t } | \mathbf { x } ] = \int \mathbf { t } p ( \mathbf { t } | \mathbf { x } ) \mathrm { d } \mathbf { t } = \sum _ { k = 1 } ^ { K } \pi _ { k } ( \mathbf { x } ) \boldsymbol { \mu } _ { k } ( \mathbf { x } )
E[t∣x]=∫tp(t∣x)dt=k=1∑Kπk(x)μk(x)
s
2
(
x
)
=
E
[
∥
t
−
E
[
t
∣
x
]
∥
2
∣
x
]
=
∑
k
=
1
K
π
k
(
x
)
{
σ
k
2
(
x
)
+
∥
μ
k
(
x
)
−
∑
l
=
1
K
π
l
(
x
)
μ
l
(
x
)
∥
2
}
\begin{aligned} s ^ { 2 } ( \mathbf { x } ) & = \mathbb { E } \left[ \| \mathbf { t } - \mathbb { E } [ \mathbf { t } | \mathbf { x } ] \| ^ { 2 } | \mathbf { x } \right] \\ & = \sum _ { k = 1 } ^ { K } \pi _ { k } ( \mathbf { x } ) \left\{ \sigma _ { k } ^ { 2 } ( \mathbf { x } ) + \left\| \boldsymbol { \mu } _ { k } ( \mathbf { x } ) - \sum _ { l = 1 } ^ { K } \pi _ { l } ( \mathbf { x } ) \boldsymbol { \mu } _ { l } ( \mathbf { x } ) \right\| ^ { 2 } \right\} \end{aligned}
s2(x)=E[∥t−E[t∣x]∥2∣x]=k=1∑Kπk(x)⎩⎨⎧σk2(x)+∥∥∥∥∥μk(x)−l=1∑Kπl(x)μl(x)∥∥∥∥∥2⎭⎬⎫
5.7 Bayesian Neural Networks
到目前为止训练网络都是采用最大似然的方式。正则化的最大似然可以看作为MAP。而对于贝叶斯观点我们需要把参数都margin。
5.7.1 Posterior parameter distribution
考虑一个一维情况,建模 p ( t ∣ x , w , β ) = N ( t ∣ y ( x , w ) , β − 1 ) p ( t | \mathbf { x } , \mathbf { w } , \beta ) = \mathcal { N } \left( t | y ( \mathbf { x } , \mathbf { w } ) , \beta ^ { - 1 } \right) p(t∣x,w,β)=N(t∣y(x,w),β−1)其中 y ( x , w ) y ( \mathbf { x } , \mathbf { w } ) y(x,w)为神经网络。同样地对参数设置一个先验 p ( w ∣ α ) = N ( w ∣ 0 , α − 1 I ) p ( \mathbf { w } | \alpha ) = \mathcal { N } \left( \mathbf { w } | \mathbf { 0 } , \alpha ^ { - 1 } \mathbf { I } \right) p(w∣α)=N(w∣0,α−1I)则似然为 p ( D ∣ w , β ) = ∏ n = 1 N N ( t n ∣ y ( x n , w ) , β − 1 ) p ( \mathcal { D } | \mathbf { w } , \beta ) = \prod _ { n = 1 } ^ { N } \mathcal { N } \left( t _ { n } | y \left( \mathbf { x } _ { n } , \mathbf { w } \right) , \beta ^ { - 1 } \right) p(D∣w,β)=n=1∏NN(tn∣y(xn,w),β−1)则后验 p ( w ∣ D , α , β ) ∝ p ( w ∣ α ) p ( D ∣ w , β ) p ( \mathbf { w } | \mathcal { D } , \alpha , \beta ) \propto p ( \mathbf { w } | \alpha ) p ( \mathcal { D } | \mathbf { w } , \beta ) p(w∣D,α,β)∝p(w∣α)p(D∣w,β)由于神经网络的非线性,所以后验不再是一个高斯。所以可以利用拉普拉斯近似这个后验。第一步是找到MAP。通过优化一下目标即可 ln p ( w ∣ D ) = − α 2 w T w − β 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 + const \ln p ( \mathbf { w } | \mathcal { D } ) = - \frac { \alpha } { 2 } \mathbf { w } ^ { \mathrm { T } } \mathbf { w } - \frac { \beta } { 2 } \sum _ { n = 1 } ^ { N } \left\{ y \left( \mathbf { x } _ { n } , \mathbf { w } \right) - t _ { n } \right\} ^ { 2 } + \text { const } lnp(w∣D)=−2αwTw−2βn=1∑N{y(xn,w)−tn}2+ const 根据拉普拉斯近似 A = − ∇ ∇ ln p ( w ∣ D , α , β ) = α I + β H \mathbf { A } = - \nabla \nabla \ln p ( \mathbf { w } | \mathcal { D } , \alpha , \beta ) = \alpha \mathbf { I } + \beta \mathbf { H } A=−∇∇lnp(w∣D,α,β)=αI+βH则高斯近似为 q ( w ∣ D ) = N ( w ∣ w M A P , A − 1 ) q ( \mathbf { w } | \mathcal { D } ) = \mathcal { N } \left( \mathbf { w } | \mathbf { w } _ { \mathrm { MAP } } , \mathbf { A } ^ { - 1 } \right) q(w∣D)=N(w∣wMAP,A−1)则预测分布为 p ( t ∣ x , D ) = ∫ p ( t ∣ x , w ) q ( w ∣ D ) d w p ( t | \mathbf { x } , \mathcal { D } ) = \int p ( t | \mathbf { x } , \mathbf { w } ) q ( \mathbf { w } | \mathcal { D } ) \mathrm { d } \mathbf { w } p(t∣x,D)=∫p(t∣x,w)q(w∣D)dw但是以上仍然是不可解析的。那么进一步假设 y ( x , w ) ≃ y ( x , w M A P ) + g T ( w − w M A P ) y ( \mathbf { x } , \mathbf { w } ) \simeq y \left( \mathbf { x } , \mathbf { w } _ { \mathrm { MAP } } \right) + \mathbf { g } ^ { \mathbf { T } } \left( \mathbf { w } - \mathbf { w } _ { \mathrm { MAP } } \right) y(x,w)≃y(x,wMAP)+gT(w−wMAP)其中 g = ∇ w y ( x , w ) ∣ w = w M A P \mathbf { g } = \nabla _ { \mathbf { w } } y \left. ( \mathbf { x } , \mathbf { w } ) \right| _ { \mathbf { w } = \mathbf { w } _ { \mathrm { MAP } } } g=∇wy(x,w)∣w=wMAP则(linear-Gaussian model) p ( t ∣ x , w , β ) ≃ N ( t ∣ y ( x , w M A P ) + g T ( w − w M A P ) , β − 1 ) p ( t | \mathbf { x } , \mathbf { w } , \beta ) \simeq \mathcal { N } \left( t | y \left( \mathbf { x } , \mathbf { w } _ { \mathrm { MAP } } \right) + \mathbf { g } ^ { \mathbf { T } } \left( \mathbf { w } - \mathbf { w } _ { \mathrm { MAP } } \right) , \beta ^ { - 1 } \right) p(t∣x,w,β)≃N(t∣y(x,wMAP)+gT(w−wMAP),β−1)最终预测分布为 p ( t ∣ x , D , α , β ) = N ( t ∣ y ( x , w M A P ) , σ 2 ( x ) ) p ( t | \mathbf { x } , \mathcal { D } , \alpha , \beta ) = \mathcal { N } \left( t | y \left( \mathbf { x } , \mathbf { w } _ { \mathrm { MAP } } \right) , \sigma ^ { 2 } ( \mathbf { x } ) \right) p(t∣x,D,α,β)=N(t∣y(x,wMAP),σ2(x))其中 σ 2 ( x ) = β − 1 + g T A − 1 g \sigma ^ { 2 } ( \mathbf { x } ) = \beta ^ { - 1 } + \mathbf { g } ^ { \mathrm { T } } \mathbf { A } ^ { - 1 } \mathbf { g } σ2(x)=β−1+gTA−1g
5.7.2 Hyperparameter optimization
之前超参数
α
\alpha
α and
β
\beta
β为固定值,可以利用model evidence求超参数。
p
(
D
∣
α
,
β
)
=
∫
p
(
D
∣
w
,
β
)
p
(
w
∣
α
)
d
w
p ( \mathcal { D } | \alpha , \beta ) = \int p ( \mathcal { D } | \mathbf { w } , \beta ) p ( \mathbf { w } | \alpha ) \mathrm { d } \mathbf { w }
p(D∣α,β)=∫p(D∣w,β)p(w∣α)dw利用之前4.4.1的model evidence的近似可知
ln
p
(
D
∣
α
,
β
)
≃
−
E
(
w
M
A
P
)
−
1
2
ln
∣
A
∣
+
W
2
ln
α
+
N
2
ln
β
−
N
2
ln
(
2
π
)
\ln p ( \mathcal { D } | \alpha , \beta ) \simeq - E \left( \mathbf { w } _ { \mathrm { MAP } } \right) - \frac { 1 } { 2 } \ln | \mathbf { A } | + \frac { W } { 2 } \ln \alpha + \frac { N } { 2 } \ln \beta - \frac { N } { 2 } \ln ( 2 \pi )
lnp(D∣α,β)≃−E(wMAP)−21ln∣A∣+2Wlnα+2Nlnβ−2Nln(2π)其中
W
W
W代表参数的总量。其中
E
(
w
M
A
P
)
=
β
2
∑
n
=
1
N
{
y
(
x
n
,
w
M
A
P
)
−
t
n
}
2
+
α
2
w
M
A
P
T
W
M
A
P
E \left( \mathbf { w } _ { \mathrm { MAP } } \right) = \frac { \beta } { 2 } \sum _ { n = 1 } ^ { N } \left\{ y \left( \mathbf { x } _ { n } , \mathbf { w } _ { \mathrm { MAP } } \right) - t _ { n } \right\} ^ { 2 } + \frac { \alpha } { 2 } \mathbf { w } _ { \mathrm { MAP } } ^ { \mathrm { T } } \mathbf { W } _ { \mathrm { MAP } }
E(wMAP)=2βn=1∑N{y(xn,wMAP)−tn}2+2αwMAPTWMAP则超参数只需要最大化这个model evidence即可。首先定义
β
H
u
i
=
λ
i
u
i
\beta \mathbf { H } \mathbf { u } _ { i } = \lambda _ { i } \mathbf { u } _ { i }
βHui=λiui则可得
α
=
γ
w
M
A
P
T
W
M
A
P
\alpha = \frac { \gamma } { \mathbf { w } _ { \mathrm { MAP } } ^ { \mathrm { T } } \mathbf { W } _ { \mathrm { MAP } } }
α=wMAPTWMAPγ其中
γ
=
∑
i
=
1
W
λ
i
α
+
λ
i
\gamma = \sum _ { i = 1 } ^ { W } \frac { \lambda _ { i } } { \alpha + \lambda _ { i } }
γ=i=1∑Wα+λiλi
1
β
=
1
N
−
γ
∑
n
=
1
N
{
y
(
x
n
,
w
M
A
P
)
−
t
n
}
2
\frac { 1 } { \beta } = \frac { 1 } { N - \gamma } \sum _ { n = 1 } ^ { N } \left\{ y \left( \mathbf { x } _ { n } , \mathbf { w } _ { \mathrm { MAP } } \right) - t _ { n } \right\} ^ { 2 }
β1=N−γ1n=1∑N{y(xn,wMAP)−tn}2
5.7.3 Bayesian neural networks for classification
首先考虑二分类问题,似然函数为
ln
p
(
D
∣
w
)
=
∑
n
=
1
N
{
t
n
ln
y
n
+
(
1
−
t
n
)
ln
(
1
−
y
n
)
}
\ln p ( \mathcal { D } | \mathbf { w } ) = \sum _ { n } = 1 ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\}
lnp(D∣w)=n∑=1N{tnlnyn+(1−tn)ln(1−yn)}同样地首先优化超参数
ln
p
(
D
∣
α
)
≃
−
E
(
w
M
A
P
)
−
1
2
ln
∣
A
∣
+
W
2
ln
α
+
c
o
n
s
t
\ln p ( \mathcal { D } | \alpha ) \simeq - E \left( \mathbf { w } _ { \mathrm { MAP } } \right) - \frac { 1 } { 2 } \ln | \mathbf { A } | + \frac { W } { 2 } \ln \alpha + \mathrm { const }
lnp(D∣α)≃−E(wMAP)−21ln∣A∣+2Wlnα+const其中
E
(
w
M
A
P
)
=
−
∑
n
=
1
N
{
t
n
ln
y
n
+
(
1
−
t
n
)
ln
(
1
−
y
n
)
}
+
α
2
w
M
A
P
T
W
M
A
P
E \left( \mathbf { w } _ { \mathrm { MAP } } \right) = - \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\} + \frac { \alpha } { 2 } \mathbf { w } _ { \mathrm { MAP } } ^ { \mathrm { T } } \mathbf { W } _ { \mathrm { MAP } }
E(wMAP)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}+2αwMAPTWMAP跟最大化之前得到关于
α
\alpha
α的结果一致。
为了得到预测分布与之前⼀样,由于⽹络函数的⾮线性的性质,积分是⽆法直接计算的。最简单的近似⽅法是假设后验概率⾮常窄,因此可以进⾏下⾯的近似
p
(
t
∣
x
,
D
)
≃
p
(
t
∣
x
,
w
M
A
P
)
p ( t | \boldsymbol { x } , \mathcal { D } ) \simeq p \left( t | \boldsymbol { x } , \boldsymbol { w } _ { M A P } \right)
p(t∣x,D)≃p(t∣x,wMAP)然⽽,我们可以放宽这个假设,通过考虑后验概率分布的⽅差。在这种情况下,与回归问题的情形相同,对⽹络输出进⾏线性近似是不合适的,因为输出激活函数是logistic sigmoid函数,将输出限制在了区间(0; 1)。相反,我们对输出激活函数进⾏线性近似,形式为
a
(
x
,
w
)
≃
a
M
A
P
(
x
)
+
b
T
(
w
−
w
M
A
P
)
a ( \mathbf { x } , \mathbf { w } ) \simeq a _ { \mathrm { MAP } } ( \mathbf { x } ) + \mathbf { b } ^ { \mathrm { T } } \left( \mathbf { w } - \mathbf { w } _ { \mathrm { MAP } } \right)
a(x,w)≃aMAP(x)+bT(w−wMAP)其中
b
≡
∇
a
(
x
,
w
M
A
P
)
\mathbf { b } \equiv \nabla a \left( \mathbf { x } , \mathbf { w } _ { \mathrm { MAP } } \right)
b≡∇a(x,wMAP)
由于我们现在对
w
\mathbf w
w的后验概率分布进⾏了⾼斯近似,并且
a
a
a的模型是
w
\mathbf w
w的线性函数,因此我们现在可以使⽤4.5.2节的结果。由神经⽹络的权值的分布引出的输出单元激活的值的分布为
p
(
a
∣
x
,
D
)
=
∫
δ
(
a
−
a
M
A
P
(
x
)
−
b
T
(
x
)
(
w
−
w
M
A
P
)
)
q
(
w
∣
D
)
d
w
p ( a | \mathbf { x } , \mathcal { D } ) = \int \delta \left( a - a _ { \mathrm { MAP } } ( \mathbf { x } ) - \mathbf { b } ^ { \mathrm { T } } ( \mathbf { x } ) \left( \mathbf { w } - \mathbf { w } _ { \mathrm { MAP } } \right) \right) q ( \mathbf { w } | \mathcal { D } ) \mathrm { d } \mathbf { w }
p(a∣x,D)=∫δ(a−aMAP(x)−bT(x)(w−wMAP))q(w∣D)dw