PRML第五章读书笔记——Neural Networks 二次下降、Hessian矩阵的近似求解和精确求解、正切传播/Tikhonov正则化/软权值共享、混合密度网络、贝叶斯神经网络

(神经网络发展很快,书中的思想停留在2006年左右那个时代。所以这里只对其中有价值的部分进行摘录。对于一般的知识略去,有更好的介绍书籍)

5.1 Feed-forward Network Functions

P231 单隐层神经网络的拟合能力

这里只用了三个隐层单元,tanh激活,就已经能拟合的这么好了。感受一下。
在这里插入图片描述
分类能力
在这里插入图片描述

5.2 Network Training

P235 逻辑回归中的交叉熵和平方损失

在逻辑回归中,用sum-of-squares做loss其实也还凑合(注意和感知机做区分,感知机因为没有sigmoid,所以直接用平方损失会受离群点影响)。不过Simard et al.(2003)指出,对分类问题,用交叉熵会比平方损失更快,也能提高泛化性

P239 梯度下降和二次下降的效率对比

如果参数量为 W W W

  • 二次下降:求Hessian矩阵需要 O ( W 2 ) \mathcal O(W^2) O(W2)的复杂度,目标优化中的 H − 1 g H^{-1}g H1g一项又至少需要 O ( W 3 ) \mathcal O(W^3) O(W3)的复杂度
  • 梯度下降:求梯度 O ( W ) \mathcal O(W) O(W)复杂度,找极小值需要 O ( W ) \mathcal O(W) O(W)的复杂度(待证明),所以一共只需要 O ( W 2 ) \mathcal O(W^2) O(W2)的复杂度

P241 随机梯度下降相比于梯度下降的优势

  1. 容易逃出局部最优解
  2. 更高效。想象数据集复制成原先两倍,梯度下降要全部过一遍,而随机梯度下降则不受影响。

5.3 Error Backpropagation

P246 梯度的数值解近似

方法1为
∂ E n ∂ w j i = E n ( w j i + ϵ ) − E n ( w j i ) ϵ + O ( ϵ ) \frac{\partial E_n}{ \partial w_{ji}} = \frac{E_n(w_{ji} + \epsilon)-E_n(w_{ji})}{\epsilon} + \mathcal O(\epsilon) wjiEn=ϵEn(wji+ϵ)En(wji)+O(ϵ)
方法2为
∂ E n ∂ w j i = E n ( w j i + ϵ ) − E n ( w j i − ϵ ) 2 ϵ + O ( ϵ 2 ) \frac{\partial E_n}{ \partial w_{ji}} = \frac{E_n(w_{ji} + \epsilon)-E_n(w_{ji} - \epsilon)}{2\epsilon} + \mathcal O(\epsilon^2) wjiEn=2ϵEn(wji+ϵ)En(wjiϵ)+O(ϵ2)
方法2的无穷小项阶数更小,可以用泰勒展开进行证明。这好神奇啊。
不过方法2的计算量是方法1的两倍(在神经网络已知 E n ( w j i ) E_n(w_{ji}) En(wji)的前提下)

P247 Jacobian矩阵

神经网络中可以计算jacobian矩阵,计算的时候可以前向计算,也可以反向计算。

5.4 The Hessian Matrix

计算Hessian矩阵时,通常考虑所有参数,包括weights和bias,一起算一个大的Hessian矩阵 H \textbf H H.

P250 对角近似

  • 考虑到有时候只是用Hessian矩阵的逆,所以更愿意估计一个对角阵 H \textbf H H。存在一种方法能让计算复杂度退化到 O ( W ) \mathcal O(W) O(W)(Becker and Le Cun, 1989; Le Cun et al., 1990),具体计算过程略去,翻书……
  • 如果损失函数 E = ∑ n E n E=\sum_n E_n E=nEn,是 n n n个样本相加,那么 H \textbf H H也可以每个样本单独算,最后加起来

P251 外积近似

考虑最小二乘为损失函数的回归问题,
E = 1 2 ∑ n = 1 N ( y n − t n ) 2 E=\frac{1}{2}\sum_{n=1}^N (y_n - t_n)^2 E=21n=1N(yntn)2
H = ∇ 2 E = ∑ n = 1 N ∇ y n T ∇ y n + ∑ n = 1 N ( y n − t n ) ∇ 2 y n \textbf H = \nabla^2 E=\sum_{n=1}^N \nabla y_n^T \nabla y_n+\sum_{n=1}^N (y_n - t_n)\nabla^2 y_n H=2E=n=1NynTyn+n=1N(yntn)2yn
如果 y n y_n yn t n t_n tn很接近,第二项很小,忽略。(或者假定第二项中 y n − t n y_n-t_n yntn ∇ 2 y n \nabla^2 y_n 2yn无关,则求和后,因为 y n − t n y_n-t_n yntn的误差期望是0,苏所以也能忽略)
剩下
H ≃ ∑ n = 1 N b n b n T \textbf H \simeq \sum_{n=1}^N \textbf b_n \textbf b_n^T Hn=1NbnbnT
其中 b n = ∇ a n \textbf b_n = \nabla a_n bn=an a n a_n an是没有激活的网络最后一层(logit值)
对于逻辑回归,则有类似结论
H ≃ ∑ n = 1 N y n ( 1 − y n ) b n b n T \textbf H \simeq \sum_{n=1}^N y_n(1-y_n)\textbf b_n \textbf b_n^T Hn=1Nyn(1yn)bnbnT
这种方式的计算,比较高效, O ( W 2 ) \mathcal O(W^2) O(W2)的复杂度发生在 b n \textbf b_n bn的矩阵乘法那里

用这种方式可以近似计算 H − 1 \textbf H^{-1} H1。考虑数据是序列进来的,
H L + 1 = H L + b L + 1 b L + 1 T \textbf H _{L+1} = \textbf H_L + \textbf b_{L+1} \textbf b_{L+1}^T HL+1=HL+bL+1bL+1T
利用woodbury等式可以得到
H L + 1 − 1 = H L − 1 − H L − 1 b L + 1 b L + 1 T H L − 1 1 + b L + 1 T H L − 1 b L + 1 \textbf H_{L+1}^{-1} = \textbf H_{L}^{-1} - \frac{\textbf H_{L}^{-1} \textbf b_{L+1}\textbf b_{L+1}^T \textbf H_{L}^{-1}}{1+\textbf b_{L+1}^T\textbf H_{L}^{-1}\textbf b_{L+1}} HL+11=HL11+bL+1THL1bL+1HL1bL+1bL+1THL1
初始的 H 0 \textbf H_0 H0可以选 α I \alpha \textbf I αI,其中 α \alpha α比较小。这样计算的是 H + α I \textbf H+\alpha \textbf I H+αI的逆,但结果并不会对 α \alpha α过于敏感

P252 有限差

数值方法计算
∂ 2 E ∂ w j i ∂ w l k = 1 4 ϵ 2 { E ( w j i + ϵ , w l k + ϵ ) − E ( w j i + ϵ , w l k − ϵ ) − E ( w j i − ϵ , w l k + ϵ ) + E ( w j i − ϵ , w l k − ϵ ) } + O ( ϵ 2 ) \frac{\partial^2 E}{\partial w_{ji}\partial w_{lk}}=\frac{1}{4\epsilon^2}\{ E(w_{ji}+\epsilon, w_{lk}+\epsilon) - E(w_{ji}+\epsilon, w_{lk}-\epsilon) -E(w_{ji}-\epsilon, w_{lk}+\epsilon) +E(w_{ji}-\epsilon, w_{lk}-\epsilon) \} + \mathcal{O}(\epsilon^2) wjiwlk2E=4ϵ21{E(wji+ϵ,wlk+ϵ)E(wji+ϵ,wlkϵ)E(wjiϵ,wlk+ϵ)+E(wjiϵ,wlkϵ)}+O(ϵ2)
这里的无穷小项是 O ( ϵ 2 ) \mathcal O(\epsilon^2) O(ϵ2),而不是 O ( ϵ ) \mathcal O(\epsilon) O(ϵ).
这样的复杂度是 O ( W 3 ) \mathcal O(W^3) O(W3),太高了。一种有效的方法是先求梯度,再用数值方法
∂ 2 E ∂ w j i ∂ w l k = 1 2 ϵ { ∂ E ∂ w j i ( w l k + ϵ ) − ∂ E ∂ w j i ( w l k − ϵ ) } + O ( ϵ 2 ) \frac{\partial^2 E}{\partial w_{ji}\partial w_{lk}}=\frac{1}{2\epsilon}\left \{ \frac{\partial E}{\partial w_{ji}}(w_{lk}+\epsilon) -\frac{\partial E}{\partial w_{ji}}(w_{lk}-\epsilon) \right \} + \mathcal{O}(\epsilon^2) wjiwlk2E=2ϵ1{wjiE(wlk+ϵ)wjiE(wlkϵ)}+O(ϵ2)
复杂度为 O ( W 2 ) \mathcal O(W^2) O(W2)

P253 精确计算

Hessian可以精确计算,不难,但是繁琐,要细心,想清楚计算图的依赖关系。具体公式翻书

P254 Hessian矩阵的快乘法

很多时候,我们需要的是Hessian矩阵的有关乘法,而不是其本身
如果要计算 v T H = v T ∇ ( ∇ E ) \textbf v^T \textbf H=\textbf v^T \nabla (\nabla E) vTH=vT(E),记 R { ⋅ } \mathcal R\{\cdot\} R{}表示算子 v T ∇ \textbf v ^T\nabla vT
这样可以对这个算子采用通常的微积分规则,并且已知
R { w } = v \mathcal R\{\textbf w\} = \textbf v R{w}=v
直接前向-反向传播就行了!真的神奇。(细节翻书)

5.5 Regularization in Neural Networks

P257 L2正则化的尺度

  • 如果缩放输入和输出尺度,那么可以通过改变参数的尺度得到同样的映射。但是在有L2约束时,缩放后的映射不会是和原先的映射一样。所以需要给每一层都采用不同的L2权重系数。
    当尺度变化时,L2权重系数也要改变。
    以两层参数为例,先验通常为
    p ( w ∣ α 1 , α 2 ) ∝ exp ⁡ ( − α 1 2 ∑ w ∈ W 1 w 2 − α 2 2 ∑ w ∈ W 2 w 2 ) p(\textbf w|\alpha_1, \alpha_2) \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α1wW1w22α2wW2w2)

  • 注意这是一个反常先验improper. 不能标准化。因为偏置项 b b b没有约束。
    反常先验会导致在贝叶斯框架下进行模型比较困难。因为模型证据为0。常用的做法是在偏置项上单独施加一个先验(例如高斯,虽然这样破坏了平移不变性)

P259 早停

早停有两种解释

  1. 模型在训练过程中,有效自由度的数量会越来越高,导致模型越来越复杂。早停是一种限制模型复杂度的做法
  2. 早停和L2权重衰减有相似性,且可以定量证明两者之间的联系,即 τ η \tau \eta τη τ \tau τ是迭代次数, η \eta η是学习率)和正则化权重系数 λ \lambda λ倒数有联系。这一点,Goodfellow的Deep Learning中也有写。

P261 不变性

如果希望神经网络对于输入的某种变换具有不变性(例如尺度不变性、平移不变性等)。
通常有四种方法:

  1. 多采带变换的样本
  2. 加入正则化,对变换进行惩罚(也即正切传播的作用)
  3. 通过预处理,消除变化
  4. 把不变性的性质整合到神经网络,如CNN

P264 正切传播

为了保持不变性,考虑变换为
s ( x , ξ ) \textbf s(\textbf x, \xi) s(x,ξ)
其中 s ( x , 0 ) = x \textbf s(\textbf x, 0)=\textbf x s(x,0)=x
则在 x \textbf x x的流形 M \mathcal M M上,样本移动方向为
τ n = ∂ s ( x , ξ ) ∂ ξ ∣ ξ = 0 \tau_n =\left. \frac{\partial \textbf s(\textbf x, \xi)}{\partial \xi} \right |_{\xi=0} τn=ξs(x,ξ)ξ=0
神经网络需要加入正则项
Ω = 1 2 ∑ n ∑ k ( ∂ y n k ∂ ξ ∣ ξ = 0 ) 2 = 1 2 ∑ n ∑ k ( ∑ i = 1 D ∂ y n k ∂ x n i ∂ x n i ∂ ξ ) 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_{nk}}{\partial \xi} \right |_{\xi=0} \right)^2=\frac{1}{2}\sum_n \sum_k\left ( \sum_{i=1}^D \frac{\partial y_{nk}}{\partial x_{ni}} \frac{\partial x_{ni}}{\partial \xi} \right )^ 2=\frac{1}{2}\sum_n \sum_k\left ( \sum_{i=1}^D J_{nki} \tau_{ni}\right)^ 2 Ω=21nk(ξynkξ=0)2=21nk(i=1Dxniynkξxni)2=21nk(i=1DJnkiτni)2
其中 J n k i J_{nki} Jnki是Jacobian矩阵里的元素

  • 如果有多个变换,对每个变换都具有不变性,那么对变换的组合就会有(局部)不变性

P265 Tikhonov正则化

Ω = 1 2 ∫ ∥ ∇ y ( x ) ∥ 2 p ( x ) d x \Omega = \frac{1}{2}\int \| \nabla y(\textbf x) \|^2 p(\textbf x) d\textbf x Ω=21y(x)2p(x)dx
这个正则化项对输入的高斯噪声有一定鲁棒性,可以认为这是一种不变性。
实际上,这个正则化项可以通过误差函数
E ~ = 1 2 ∭ { y ( s ( x , ξ ) ) − t } 2 p ( t ∣ x ) p ( x ) p ( ξ ) d x d t d ξ \tilde E = \frac{1}{2}\iiint \{ y(\textbf s(\textbf x,\xi))-t \}^2p(t|\textbf x)p(\textbf x)p(\xi)d\textbf xdtd\xi E~=21{y(s(x,ξ))t}2p(tx)p(x)p(ξ)dxdtdξ
推导出,其中对于高斯噪声, s ( x , ξ ) = x + ξ \textbf s(\textbf x,\xi)=\textbf x+\xi s(x,ξ)=x+ξ p ( ξ ) ∼ N ( 0 , λ ) p(\xi)\sim \mathcal N(0, \lambda) p(ξ)N(0,λ)
可以推出
E ~ = E + λ Ω \tilde E=E+\lambda \Omega E~=E+λΩ
具体过程略去

P269 软权值共享

为了减少参数,可以认为参数是从一堆 M M M个混合高斯中来的,也即对每个参数 w i w_i wi,有
p ( w i ) = ∑ j = 1 M π j N ( w i ∣ μ j , σ j 2 ) p(w_i) = \sum_{j=1}^M \pi_j \mathcal N(w_i|\mu_j, \sigma_j^2) p(wi)=j=1MπjN(wiμj,σj2)
正则化的先验为
Ω ( w ) = − ∑ i ln ⁡ ( ∑ j = 1 M π j N ( w i ∣ μ j , σ j 2 ) ) \Omega(\textbf w)=-\sum_i \ln \left ( \sum_{j=1}^M \pi_j \mathcal N(w_i|\mu_j, \sigma_j^2) \right) Ω(w)=iln(j=1MπjN(wiμj,σj2))
总损失函数为
E ~ = E + λ Ω \tilde E=E+\lambda \Omega E~=E+λΩ
这里 π , μ , σ \pi, \mu, \sigma π,μ,σ需要和参数联合优化,所以不能用EM算法。仍然采用梯度下降。先令
γ j ( w ) = π j N ( w ∣ μ j , σ j 2 ) ∑ k π k N ( w ∣ μ k , σ k 2 ) \gamma_j(w)=\frac{\pi_j \mathcal N(w|\mu_j, \sigma_j^2)}{\sum_k \pi_k \mathcal N(w|\mu_k, \sigma_k^2)} γj(w)=kπkN(wμk,σk2)πjN(wμj,σj2)
可以求得
∂ E ~ ∂ w i = ∂ E ∂ w i + λ ∑ j γ j ( w i ) ( w i − μ j ) σ j 2 \frac{\partial \tilde E}{\partial w_i} = \frac{\partial E}{\partial w_i} + \lambda \sum_ j \gamma_j(w_i)\frac{(w_i - \mu_j)}{\sigma_j^2} wiE~=wiE+λjγj(wi)σj2(wiμj)
其直观含义是让 w w w尽量靠近每个类的均值
∂ E ~ ∂ μ j = λ ∑ j γ j ( w i ) ( μ j − w i ) σ j 2 \frac{\partial \tilde E}{\partial \mu_j} = \lambda \sum_ j \gamma_j(w_i)\frac{( \mu_j - w_i)}{\sigma_j^2} μjE~=λjγj(wi)σj2(μjwi)
其直观含义是让每个均值尽量靠近类中心
∂ E ~ ∂ σ j = λ ∑ i γ j ( w i ) ( 1 σ j − ( w i − μ j ) 2 σ j 3 ) \frac{\partial \tilde E}{\partial \sigma_j} = \lambda \sum_i \gamma_j(w_i) \left ( \frac{1}{\sigma_j} -\frac{(w_i - \mu_j)^2}{\sigma_j^3}\right ) σjE~=λiγj(wi)(σj1σj3(wiμj)2)
为了防止 σ \sigma σ为负,或为0,得到病态解,常用 σ j 2 = exp ⁡ ( ζ j ) \sigma_j^2=\exp(\zeta_j) σj2=exp(ζj)来重参数化
对于 π \pi π,因为限制了和为1,所以用 η \eta η进行softmax重参数化,
π j = exp ⁡ ( η j ) ∑ k = 1 M exp ⁡ ( η k ) \pi_j = \frac{\exp(\eta_j)}{\sum_{k=1}^M \exp(\eta_k)} πj=k=1Mexp(ηk)exp(ηj)
求得
∂ E ~ ∂ η j = ∑ i { π j − γ j ( w i ) } \frac{\partial \tilde E}{\partial \eta_j}=\sum_i \{ \pi_j - \gamma_j(w_i) \} ηjE~=i{πjγj(wi)}
可以看到对 η \eta η的梯度希望它和参数表现上的 γ \gamma γ一致

5.6 Mixture Density Networks

如果输出是有几个分布混合的,例如在回归问题中,并不是单纯的高斯分布(比如输入房屋面积,输出房价,但是样本有北京和武汉两个地方,这对应两个不同分布)。这时候,如果强行用高斯分布拟合,结果对两边都会很差。
书中的例子是 t = x + 0.3 sin ⁡ ( 2 π x ) + n o i s e t=x+0.3\sin (2\pi x) + noise t=x+0.3sin(2πx)+noise,然后把 x , t x,t x,t对调
在这里插入图片描述
这时可以建模成混合分布, p ( t ∣ x ) = ∑ k = 1 K π k ( x ) N ( t ∣ μ k ( x , σ k 2 ( x ) ) p(\textbf t|\textbf x) = \sum_{k=1}^K \pi_k(\textbf x)\mathcal N(\textbf t|\mu_k(\textbf x, \sigma_k^2(\textbf x)) p(tx)=k=1Kπk(x)N(tμk(x,σk2(x))
这是一个异方差heteroscedastic的例子,因为噪声来自 x \textbf x x
如果 t t t的维度是 L L L,打算用 K K K个混合高斯分布建模,此时神经网络的输出设计为:

  1. K K K个分布先验概率 π k ( x ) \pi_k(\textbf x) πk(x),可以用无约束的 η k ( x ) \eta_k(\textbf x) ηk(x)代替,并做softmax重参数化
  2. K K K个分布各自的方差 σ k 2 ( x ) \sigma_k^2(\textbf x) σk2(x),可以用无约束的 ζ k ( x ) \zeta_k(\textbf x) ζk(x)代替,并用指数函数 σ = exp ⁡ ( ζ ) \sigma = \exp(\zeta) σ=exp(ζ)重参数化
  3. K K K个类各自的均值 μ k \mu_k μk,注意一共有 K × L K\times L K×L个参数
    综上,一共需要 ( K + 2 ) L (K+2)L (K+2)L个参数

对应损失函数为
在这里插入图片描述

关于 μ k , η k , ζ k \bm \mu_k,\eta_k, \zeta_k μk,ηk,ζk的偏导数和软权值共享中的形式非常像,这里不抄了
在这里插入图片描述
训练完成后,推断时,可以求得均值
E [ t ∣ x ] = ∑ k = 1 K π k ( x ) μ k ( x ) \mathbb E[\textbf t|\textbf x] = \sum_{k=1}^K \pi_k(\textbf x) \mu_k(\textbf x) E[tx]=k=1Kπ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 } s^2(\textbf x) = \mathbb E [\|\textbf t - \mathbb E [\textbf t| \textbf x]\|^2 |\textbf x] = \sum_{k=1}^K\pi_k(\textbf x)\left \{ \sigma_k^2(\textbf x) + \left \| \mu_k(\textbf x) - \sum_{l=1}^K \pi_l(\textbf x)\mu_l (\textbf x) \right \|^2 \right\} s2(x)=E[tE[tx]2x]=k=1Kπk(x)σk2(x)+μk(x)l=1Kπl(x)μl(x)2

这个求混合分布的想法挺有意思的,注意推断时,均值 E [ t ∣ x ] \mathbb E[\textbf t|\textbf x] E[tx]可能并不能很好地反映分布,更好的办法是找条件众数conditional mode,也即概率最大的 p ( t ∣ x ) p(\textbf t|\textbf x) p(tx)对应的 t \textbf t t,但是这没有解析解,只能通过数值方法优化。一种简单的代替方法是直接找先验概率最大的部分,如上图(d)所示

5.7 Bayesian Neural Networks

贝叶斯方法中,为了进行预测,需要对参数进行积分。这在神经网络中非常困难。变分推断在假定后验是高斯的情况下进行。不过最完整的方法是基于拉普拉斯近似。
这里假设

  1. 参数后验以众数为中心的高斯
  2. 协方差很小
    (其实就是把后验建模成高斯,同时解决输出和输入之间不是线性关系的问题,当协方差很小时,后者就可以用一阶泰勒展开近似。这样问题就和前两章的回归和分类很像了)

P278 后验参数分布与贝叶斯回归网络

p ( w ∣ α ) = N ( w ∣ 0 , α − 1 I ) p ( t ∣ x , w , β ) = N ( t ∣ y ( x , w ) , β − 1 ) \begin{aligned} p(\textbf w|\alpha) &=\mathcal N(\textbf w|\textbf 0, \alpha^{-1} \textbf I) \\ p(t|\textbf x,\textbf w,\beta) &= \mathcal N(t|y(\textbf x,\textbf w),\beta^{-1}) \end{aligned} p(wα)p(tx,w,β)=N(w0,α1I)=N(ty(x,w),β1)
对于数据集 D \mathcal D D
p ( w ∣ D , α , β ) ∝ p ( w ∣ α ) p ( D ∣ w , β ) = p ( w ∣ α ) ∏ n = 1 N N ( t n ∣ y ( x n , w ) , β − 1 ) p(\textbf w|\mathcal D, \alpha, \beta)\propto p(\textbf w|\alpha)p(\mathcal D|\textbf w, \beta)=p(\textbf w|\alpha)\prod_{n=1}^N \mathcal N(t_n|y(\textbf x_n,\textbf w),\beta^{-1}) p(wD,α,β)p(wα)p(Dw,β)=p(wα)n=1NN(tny(xn,w),β1)
因为 y ( x n , w ) y(\textbf x_n,\textbf w) y(xn,w)非线性,后验不是高斯
但可以采用拉普拉斯近似找高斯形式的近似后验
最大化
ln ⁡ p ( w ∣ D ) = − α 2 w T w − β 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 + const \ln p(\textbf w|\mathcal D)=-\frac{\alpha}{2} \textbf w^T\textbf w-\frac{\beta}{2}\sum_{n=1}^N\{ y(\textbf x_n,\textbf w)-t_n \}^2+ \text{const} lnp(wD)=2αwTw2βn=1N{y(xn,w)tn}2+const
中心为概率最高的参数点,即 w M A P \textbf w_{MAP} wMAP
该点二阶导为
A = − ∇ 2 ln ⁡ p ( w ∣ D , α , β ) = α I + β H \textbf A=-\nabla^2 \ln p(\textbf w|\mathcal D, \alpha, \beta)=\alpha\textbf I+\beta\textbf H A=2lnp(wD,α,β)=αI+βH
其中 H \textbf H H是平方和误差关于 w \textbf w w的Hessian矩阵
所以,近似的后验为
q ( w ∣ D ) = N ( w ∣ w M A P , A − 1 ) q(\textbf w|\mathcal D)=\mathcal N(\textbf w|\textbf w_{MAP},\textbf A^{-1}) q(wD)=N(wwMAP,A1)
预测分布为 p ( t ∣ x , D ) = ∫ p ( t ∣ x , w ) q ( w ∣ D ) d w p(t|\textbf x,\mathcal D)=\int p(t|\textbf x,\textbf w)q(\textbf w|\mathcal D)d\textbf w p(tx,D)=p(tx,w)q(wD)dw
该积分仍然无法理论处理,因为 y y y
w \textbf w w的非线性函数(也就是说这不是线性高斯模型)。但是如果认为 q q q方差比较小,那么可以用泰勒展开得到
y ( x , w ) ≃ y ( x , w M A P ) + g T ( w − w M A P ) y(\textbf x,\textbf w)\simeq y(\textbf x, \textbf w_{MAP})+\textbf g^T(\textbf w-\textbf w_{MAP}) y(x,w)y(x,wMAP)+gT(wwMAP)
其中 g = ∇ w y ( x , w ) ∣ w = w M A P g=\nabla _{\textbf w}y(\textbf x,\textbf w)|_{\textbf w=\textbf w_{MAP}} g=wy(x,w)w=wMAP,这就变成了一个线性高斯模型
结果为 p ( t ∣ x , D , α , β ) = N ( t ∣ y ( x , w M A P ) , σ 2 ( x ) ) p(t|\textbf x,\mathcal D,\alpha, \beta)=\mathcal N(t|y(\textbf x, \textbf w_{MAP}),\sigma^2(\textbf x)) p(tx,D,α,β)=N(ty(x,wMAP),σ2(x))
其中 σ 2 ( x ) = β − 1 + g T A − 1 g \sigma^2(\textbf x)=\beta^{-1}+\textbf g^T\textbf A^{-1}\textbf g σ2(x)=β1+gTA1g

P280 超参数优化

可以对 α , β \alpha, \beta α,β进行优化,方法类似第三章的最大化证据函数,这里略去。
不过和第三章对比,不同的是这里 α \alpha α的改变,会引起 H \textbf H H的改变,进而影响 λ \lambda λ。这里把这个影响忽略掉。
注意这里,可以根据 p ( D ) p(\mathcal D) p(D)去选模型,也即调整隐层中节点的个数

P281 贝叶斯分类网络

做法与回归类似,与贝叶斯逻辑回归也类似,还是要用拉普拉斯近似。
注意在优化超参数 α \alpha α时,要计算计算 ln ⁡ p ( D ∣ α ) \ln p(\mathcal D|\alpha) lnp(Dα),方法是要用模型证据中的归一化系数估计方法(详见第4章)
在这里插入图片描述
在这里插入图片描述

感觉这样选出来的 α \alpha α确实能比较好的防止过拟合

参考文献:
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning. 2006

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值