本系列为《模式识别与机器学习》的读书笔记。

一,混合密度网络

作为逆问题,考虑机械臂的运动学问题。正向问题forward problem)是在给定连接角的情况下求解机械臂末端的位置,这个问题有唯⼀解。然⽽,在实际应⽤中,我们想把机械臂末端移动到⼀个具体的位置,为了完成移动,必须设定合适的连接角。正向问题通常对应于物理系统的因果关系,通常有唯⼀解。

图5.29~5.30,图5.29给展⽰了⼀个具有两个连接的机械臂,其中,末端的笛卡尔坐标 ( x 1 , x 2 ) (x_1, x_2) (x1​,x2​) 由两个连接角 θ 1 \theta_1 θ1​ 和 θ 2 \theta_2 θ2​ 以及机械臂的(固定)长度 L 1 L_1 L1​ 和 L 2 L_2 L2​ 唯⼀确定。这被称为机械臂的正向运动学forward kinematics)。在实际应⽤中,必须寻找给出所需的末端位置的连接角,如图5.30所⽰,这个逆向运动学inverse kinematics)有两个对应的解,即“肘部向上”和“肘部向下”。


考虑⼀个具有多峰性质的问题,数据的⽣成⽅式为:对服从区间 ( 0 , 1 ) (0, 1) (0,1) 的均匀分布的变量 x x x 进⾏取样,得到⼀组值 { x n } \{x_n\} {xn​} ,对应的⽬标值 t n t_n tn​ 通过下⾯的⽅式得到:计算函数 x n + 0.3 sin ⁡ ( 2 π x n ) x_n + 0.3 \sin(2\pi{x_n}) xn​+0.3sin(2πxn​) ,然后添加⼀个服从 ( − 0.1 , 0.1 ) (−0.1, 0.1) (−0.1,0.1) 上的均匀分布的噪声。这样,逆问题就可以这样得到:使⽤相同的数据点,但是交换 x x x 和 t t t 的⾓⾊。

图5.31~5.32,图5.31是⼀个简单的“正向问题”的数据集,其中红⾊曲线给出了通过最⼩化平⽅和误差函数调节⼀个两层神经⽹络的结果。对应的逆问题,如图5.32所⽰,通过交换 x x x 和 t t t 的顺序的⽅式得到。这⾥,通过最⼩化平⽅和误差函数的⽅式训练的神经⽹络给出了对数据的⾮常差的拟合,因为数据集是多峰的。


寻找⼀个对条件概率密度建模的⼀般的框架:为 p ( t ∣ x ) p(\boldsymbol{t}|\boldsymbol{x}) p(t∣x) 使⽤⼀个混合模型,模型的混合系数和每个分量的概率分布都是输⼊向量 x \boldsymbol{x} x 的⼀个⽐较灵活的函数,这就构成了混合密度⽹络mixture density network)。对于任意给定的 x \boldsymbol{x} x 值,混合模型提供了⼀个通⽤的形式,⽤来对任意条件概率密度函数 p ( t ∣ x ) p(\boldsymbol{t}|\boldsymbol{x}) p(t∣x) 进⾏建模。

图5.33,混合密度⽹络mixture density network)可以表⽰⼀般的条件概率密度 p ( t ∣ x ) p(\boldsymbol{t}|\boldsymbol{x}) p(t∣x) , ⽅法为:考虑 t \boldsymbol{t} t 的⼀个参数化的混合模型,参数由以 x \boldsymbol{x} x 为输⼊的神经⽹络的输出确定。

显式地令模型的分量为⾼斯分布,即

p ( t ∣ x ) = ∑ k = 1 K π k ( x ) N ( t ∣ μ ( x ) , σ k 2 ( x ) I ) (5.99) p(\boldsymbol{t}|\boldsymbol{x})=\sum_{k=1}^{K}\pi_{k}(\boldsymbol{x})\mathcal{N}(\boldsymbol{t}|\boldsymbol{\mu}(\boldsymbol{x}),\sigma_{k}^{2}(\boldsymbol{x})\boldsymbol{I})\tag{5.99} p(t∣x)=k=1∑K​πk​(x)N(t∣μ(x),σk2​(x)I)(5.99)

混合系数必须满⾜下⾯的限制

∑ k = 1 K π k ( x ) = 1 , 0 ≤ π k ( x ) ≤ 1 \sum_{k=1}^{K}\pi_{k}(\boldsymbol{x})=1, 0 \le \pi_{k}(\boldsymbol{x}) \le 1 k=1∑K​πk​(x)=1,0≤πk​(x)≤1

可以通过使⽤⼀组softmax输出来实现

π k ( x ) = exp ⁡ ( a k π ) ∑ l = 1 K exp ⁡ ( a l π ) (5.100) \pi_{k}(\boldsymbol{x})=\frac{\exp(a_{k}^{\pi})}{\sum_{l=1}^{K}\exp(a_{l}^{\pi})}\tag{5.100} πk​(x)=∑l=1K​exp(alπ​)exp(akπ​)​(5.100)

⽅差必须满⾜ σ k 2 ( x ) ≥ 0 \sigma_{k}^{2}(\boldsymbol{x})\ge0 σk2​(x)≥0 ,因此可以使⽤对应的⽹络激活的指数形式表⽰,即

σ k ( x ) = exp ⁡ ( a k σ ) (5.101) \sigma_{k}(\boldsymbol{x})=\exp(a_{k}^{\sigma})\tag{5.101} σk​(x)=exp(akσ​)(5.101)

由于均值 μ k ( x ) \mu_{k}(\boldsymbol{x}) μk​(x) 有实数分量,因此可以直接⽤⽹络的输出激活表⽰

μ k j ( x ) = a k j μ (5.102) \mu_{kj}(\boldsymbol{x})=a_{kj}^{\mu}\tag{5.102} μkj​(x)=akjμ​(5.102)

混合密度⽹络的可调节参数由权向量 w \boldsymbol{w} w 和偏置组成。这些参数可以通过最⼤似然法确定,或者等价地,使⽤最⼩化误差函数(负对数似然函数)的⽅法确定。对于独⽴的数据,误差函数的形式为

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 ) I ) } (5.103) E(\boldsymbol{w})=-\sum_{n=1}^{N}\ln\left\{\sum_{k=1}^{K}\pi_{k}(\boldsymbol{x}_n,\boldsymbol{w})\mathcal{N}(\boldsymbol{t}_n|\boldsymbol{\mu}_k(\boldsymbol{x}_n,\boldsymbol{w}),\sigma_{k}^{2}(\boldsymbol{x}_n,\boldsymbol{w})\boldsymbol{I})\right\}\tag{5.103} E(w)=−n=1∑N​ln{k=1∑K​πk​(xn​,w)N(tn​∣μk​(xn​,w),σk2​(xn​,w)I)}(5.103)

把混合系数 π k ( x ) \pi_k(\boldsymbol{x}) πk​(x) 看成与 x \boldsymbol{x} x 相关的先验概率分布,从⽽就引⼊了对应的后验概率,形式为

γ n k = γ k ( t n ∣ x n ) = π k N n k ∑ l = 1 K π l N n l (5.104) \gamma_{nk}=\gamma_{k}(\boldsymbol{t}_n|\boldsymbol{x}_n)=\frac{\pi_{k}\mathcal{N}_{nk}}{\sum_{l=1}^{K}\pi_{l}\mathcal{N}_{nl}}\tag{5.104} γnk​=γk​(tn​∣xn​)=∑l=1K​πl​Nnl​πk​Nnk​​(5.104)

其中 N n k \mathcal{N}_{nk} Nnk​ 表⽰ N ( t n ∣ μ k ( x n ) , σ k 2 ( x n ) ) \mathcal{N}(\boldsymbol{t}_n | \boldsymbol{\mu}_k(\boldsymbol{x}_n),\sigma_{k}^{2}(\boldsymbol{x}_n)) N(tn​∣μk​(xn​),σk2​(xn​)) 。

关于控制混合系数的⽹络输出激活的导数为
∂ E n ∂ a k π = π k − γ n k (5.105) \frac{\partial{E_n}}{\partial{a_{k}^{\pi}}}=\pi_{k}-\gamma_{nk}\tag{5.105} ∂akπ​∂En​​=πk​−γnk​(5.105)

关于控制分量均值的⽹络输出激活的导数为

∂ E n ∂ a k l μ = γ k { μ k l − t n l σ k 2 } (5.106) \frac{\partial{E_n}}{\partial{a_{kl}^{\mu}}}=\gamma_{k}\left\{\frac{\mu_{kl}-t_{nl}}{\sigma_{k}^{2}}\right\}\tag{5.106} ∂aklμ​∂En​​=γk​{σk2​μkl​−tnl​​}(5.106)

关于控制分量⽅差的⽹络激活函数为

∂ E n ∂ a k σ = γ n k { L − ∥ t n − μ k ∥ 2 σ k 2 } (5.107) \frac{\partial{E_n}}{\partial{a_{k}^{\sigma}}}=\gamma_{nk}\left\{L-\frac{\|\boldsymbol{t}_n-\boldsymbol{\mu}_{k}\|^{2}}{\sigma_{k}^{2}}\right\}\tag{5.107} ∂akσ​∂En​​=γnk​{L−σk2​∥tn​−μk​∥2​}(5.107)

如图5.34~5.37,(a)对于给出的数据训练的混合密度⽹络的三个核函数,混合系数 π k ( x ) \pi_k(\boldsymbol{x}) πk​(x) 与 x \boldsymbol{x} x 的函数关系图像。模型有三个⾼斯分量,使⽤了⼀个多层感知器,在隐含层有五个“ t a n h tanh tanh ”单元,同时有9个输出单元 (对应于⾼斯分量的3个均值、3个⽅差以及3个混合系数)。在较⼩的 x x x 值和较⼤的 x x x 值处,⽬标数据的条件概率密度是单峰的,对于它的先验概率分布,只有⼀个核具有最⼤的值。⽽在中间的 x x x 值处,条件概率分布具有3个峰,3个混合系数具有可⽐的值。(b)使⽤与混合系数相同的颜⾊表⽰⽅法来表⽰均值 μ k ( x ) \mu_k (x) μk​(x) 。 (c)对于同样的混合密度⽹络,⽬标数据的条件概率密度的图像。 (d)条件概率密度的近似条件峰值的图像,⽤红⾊点表⽰。




⼀旦混合密度⽹络训练结束,可以预测对于任意给定的输⼊向量的⽬标数据的条件密度函数。只要我们关注的是预测输出向量的值的问题,那么这个条件概率密度就能完整地描述⽤于⽣成数据的概率分布。根据这个概率密度函数,可以计算不同应⽤中我们感兴趣的更加具体的量。⼀个最简单的量就是⽬标数据的条件均值,即

E [ t ∣ x ] = ∫ t p ( t ∣ x ) d t = ∑ k = 1 K π k ( x ) μ k ( x ) (5.108) \mathbb{E}[\boldsymbol{t}|\boldsymbol{x}]=\int\boldsymbol{t}p(\boldsymbol{t}|\boldsymbol{x})\mathrm{d}\boldsymbol{t}=\sum_{k=1}^{K}\pi_{k}(\boldsymbol{x})\boldsymbol{\mu}_{k}(\boldsymbol{x})\tag{5.108} E[t∣x]=∫tp(t∣x)dt=k=1∑K​πk​(x)μk​(x)(5.108)

密度函数的⽅差,结果为

s 2 ( x ) = E [ ∥ t − E [ t ∣ x ] ∥ 2 ∣ x ] = ∑ k = 1 K π k ( x ) { σ k 2 + ∥ μ k ( x ) − ∑ l = 1 K π l ( x ) μ l ( x ) ∥ 2 } (5.109) \begin{aligned}\boldsymbol{s}^{2}(\boldsymbol{x})&=\mathbb{E}[\|\boldsymbol{t}-\mathbb{E}[\boldsymbol{t}|\boldsymbol{x}]\|^{2}|\boldsymbol{x}]\\&=\sum_{k=1}^{K}\pi_{k}(\boldsymbol{x})\left\{\boldsymbol{\sigma}_{k}^{2}+\left\|\boldsymbol{\mu}_k(\boldsymbol{x})-\sum_{l=1}^{K}\pi_{l}(\boldsymbol{x})\boldsymbol{\mu}_{l}(\boldsymbol{x})\right\|^{2}\right\}\end{aligned}\tag{5.109} s2(x)​=E[∥t−E[t∣x]∥2∣x]=k=1∑K​πk​(x)⎩⎨⎧​σk2​+∥∥∥∥∥​μk​(x)−l=1∑K​πl​(x)μl​(x)∥∥∥∥∥​2⎭⎬⎫​​(5.109)

二,贝叶斯神经网络

1,后验参数分布

考虑从输⼊向量 x \boldsymbol{x} x 预测单⼀连续⽬标变量 t t t 的问题。假设条件概率分布 p ( t ∣ x ) p(t|\boldsymbol{x}) p(t∣x) 是⼀个⾼斯分布,均值与 x \boldsymbol{x} x 有关,由神经⽹络模型的输出 y ( x , x ) y(\boldsymbol{x}, \boldsymbol{x}) y(x,x) 确定,精度(⽅差的倒数) β \beta β 为

p ( t ∣ x , w , β ) = N ( t ∣ y ( x , w ) , β − 1 ) (5.110) p(t|\boldsymbol{x},\boldsymbol{w},\beta)=\mathcal{N}(t|y(\boldsymbol{x},\boldsymbol{w}),\beta^{-1})\tag{5.110} p(t∣x,w,β)=N(t∣y(x,w),β−1)(5.110)

将权值 w \boldsymbol{w} w 的先验概率分布选为⾼斯分布,形式为

p ( w ∣ α ) = N ( w ∣ 0 , α − 1 I ) (5.111) p(\boldsymbol{w}|\alpha)=\mathcal{N}(\boldsymbol{w}|\boldsymbol{0},\alpha^{-1}\boldsymbol{I})\tag{5.111} p(w∣α)=N(w∣0,α−1I)(5.111)

对于 N N N 次独⽴同分布的观测 x 1 , … , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N x1​,…,xN​ ,对应的⽬标值集合 D = { t 1 , … , t N } \mathcal{D}=\{t_1,\dots, t_N\} D={t1​,…,tN​} ,似然函数为

p ( D ∣ w , β ) = ∏ n = 1 N N ( t n ∣ y ( x n , w ) , β − 1 ) (5.112) p(\mathcal{D}|\boldsymbol{w},\beta)=\prod_{n=1}^{N}\mathcal{N}(t_n|y(\boldsymbol{x}_n,\boldsymbol{w}),\beta^{-1})\tag{5.112} p(D∣w,β)=n=1∏N​N(tn​∣y(xn​,w),β−1)(5.112)

最终的后验概率为

p ( w ∣ D , α , β ) ∝ p ( w ∣ α ) p ( D ∣ w , β ) (5.113) p(\boldsymbol{w}|\mathcal{D},\alpha,\beta)\propto p(\boldsymbol{w}|\alpha)p(\mathcal{D}|\boldsymbol{w},\beta)\tag{5.113} p(w∣D,α,β)∝p(w∣α)p(D∣w,β)(5.113)

由于 y ( x , w ) y(\boldsymbol{x},\boldsymbol{w}) y(x,w) 与 w \boldsymbol{w} w 的关系是⾮线性的,因此后验概率不是⾼斯分布。

使⽤拉普拉斯近似,可以找到对于后验概率分布的⼀个⾼斯近似。⾸先找到后验概率分布的⼀个(局部)最⼤值,这必须使⽤迭代的数值最优化算法才能找到,⽐较⽅便的做法是最⼤化后验概率分布的对数,可以写成
ln ⁡ p ( w ∣ D ) = − α 2 w T w − β 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 + 常 数 (5.114) \ln p(\boldsymbol{w}|\mathcal{D})=-\frac{\alpha}{2}\boldsymbol{w}^{T}\boldsymbol{w}-\frac{\beta}{2}\sum_{n=1}^{N}\{y(\boldsymbol{x}_n,\boldsymbol{w})-t_n\}^{2}+常数\tag{5.114} lnp(w∣D)=−2α​wTw−2β​n=1∑N​{y(xn​,w)−tn​}2+常数(5.114)

负对数后验概率的⼆阶导数为

A = − ∇ ∇ ln ⁡ p ( w ∣ D , α , β ) = α I + β H (5.115) \boldsymbol{A}=-\nabla\nabla\ln p(\boldsymbol{w}|\mathcal{D},\alpha,\beta)=\alpha\boldsymbol{I}+\beta\boldsymbol{H}\tag{5.115} A=−∇∇lnp(w∣D,α,β)=αI+βH(5.115)

其中, H \boldsymbol{H} H 是⼀个Hessian矩阵,由平⽅和误差函数关于 w \boldsymbol{w} w 的分量组成,后验概率对应的⾼斯近似形式为

q ( w ∣ D ) = N ( w ∣ w M A P , A − 1 ) (5.116) q(\boldsymbol{w}|\mathcal{D})=\mathcal{N}(\boldsymbol{w}|\boldsymbol{w}_{MAP},\boldsymbol{A}^{-1})\tag{5.116} q(w∣D)=N(w∣wMAP​,A−1)(5.116)

预测分布可以通过将后验概率分布求积分的⽅式获得

p ( t ∣ x , D ) = ∫ p ( t ∣ x , w ) q ( w ∣ D ) d w (5.117) p(t|\boldsymbol{x},\mathcal{D})=\int p(t|\boldsymbol{x},\boldsymbol{w})q(\boldsymbol{w}|\mathcal{D})\mathrm{d}\boldsymbol{w}\tag{5.117} p(t∣x,D)=∫p(t∣x,w)q(w∣D)dw(5.117)

现在假设与 y ( x , w ) y(\boldsymbol{x}, \boldsymbol{w}) y(x,w) 发⽣变化造成的 w \boldsymbol{w} w 的变化幅度相⽐,后验概率分布的⽅差较⼩。这使得可以在 w M A P \boldsymbol{w}_{MAP} wMAP​ 附近对⽹络函数进⾏泰勒展开,只保留展开式的现⾏项,可得

y ( x , w ) ≃ y ( x , w W A P ) + g T ( w − w M A P ) (5.118) y(\boldsymbol{x},\boldsymbol{w})\simeq y(\boldsymbol{x},\boldsymbol{w}_{WAP})+\boldsymbol{g}^{T}(\boldsymbol{w}-\boldsymbol{w}_{MAP})\tag{5.118} y(x,w)≃y(x,wWAP​)+gT(w−wMAP​)(5.118)

其中,

g = ∇ w y ( x , w ) ∣ w = w W A P \boldsymbol{g}=\nabla_{\boldsymbol{w}}y(\boldsymbol{x},\boldsymbol{w})|_{\boldsymbol{w}=\boldsymbol{w}_{WAP}} g=∇w​y(x,w)∣w=wWAP​​

使⽤这个近似,现在得到了⼀个线性⾼斯模型, p ( w ) p(\boldsymbol{w}) p(w) 为⾼斯分布,并且, p ( t ∣ w ) p(t|\boldsymbol{w}) p(t∣w) 也是⾼斯分布,均值是 w \boldsymbol{w} w 的线性函数,分布的形式为

p ( t ∣ x , w , β ) ≃ N ( t ∣ y ( x , w M A P ) + g T ( w − w M A P ) , β − 1 ) (5.119) p(t|\boldsymbol{x},\boldsymbol{w},\beta)\simeq \mathcal{N}(t|y(\boldsymbol{x},\boldsymbol{w}_{MAP})+\boldsymbol{g}^{T}(\boldsymbol{w}-\boldsymbol{w}_{MAP}),\beta^{-1})\tag{5.119} p(t∣x,w,β)≃N(t∣y(x,wMAP​)+gT(w−wMAP​),β−1)(5.119)

边缘分布 p ( t ) p(t) p(t) 的⼀般结果,得到

p ( t ∣ x , D , α , β ) = N ( t ∣ y ( x , w M A P ) , σ 2 ( x ) ) (5.120) p(t|\boldsymbol{x},\mathcal{D},\alpha,\beta)=\mathcal{N}(t|y(\boldsymbol{x},\boldsymbol{w}_{MAP}),\sigma^{2}(\boldsymbol{x}))\tag{5.120} p(t∣x,D,α,β)=N(t∣y(x,wMAP​),σ2(x))(5.120)

其中,与输⼊相关的⽅差为

σ 2 ( x ) = β − 1 + g T A − 1 g \sigma^{2}(\boldsymbol{x})=\beta^{-1}+\boldsymbol{g}^{T}\boldsymbol{A}^{-1}\boldsymbol{g} σ2(x)=β−1+gTA−1g

由此可见,预测分布 p ( t ∣ x , D ) p(t|\boldsymbol{x},\mathcal{D}) p(t∣x,D) 是⼀个⾼斯分布, 它的均值由⽹络函数 y ( x , w M A P ) y(\boldsymbol{x},w_{MAP}) y(x,wMAP​) 给出, 参数设置为 M A P MAP MAP 值。⽅差由两项组成,第⼀项来⾃⽬标变量的固有噪声,第⼆项是⼀个与 x \boldsymbol{x} x 相关的项,表⽰由于模型参数 w \boldsymbol{w} w 的不确定性造成的内插的不确定性。

2,超参数最优化

超参数的边缘似然函数,或者模型证据,可以通过对⽹络权值进⾏积分的⽅法得到,即

p ( D ∣ α , β ) = ∫ p ( D ∣ w , β ) p ( w ∣ α ) d w (5.121) p(\mathcal{D}|\alpha,\beta)=\int p(\mathcal{D}|\boldsymbol{w},\beta)p(\boldsymbol{w}|\alpha)\mathrm{d}\boldsymbol{w}\tag{5.121} p(D∣α,β)=∫p(D∣w,β)p(w∣α)dw(5.121)

取对数,可得

ln ⁡ p ( D ∣ α , β ) ≃ − E ( w M A P ) − 1 2 ln ⁡ ∣ A ∣ + W 2 ln ⁡ α + N 2 ln ⁡ β − N 2 ln ⁡ ( 2 π ) (5.122) \ln p(\mathcal{D}|\alpha,\beta)\simeq -E(\boldsymbol{w}_{MAP})-\frac{1}{2}\ln|\boldsymbol{A}|+\frac{W}{2}\ln\alpha+\frac{N}{2}\ln\beta-\frac{N}{2}\ln(2\pi)\tag{5.122} lnp(D∣α,β)≃−E(wMAP​)−21​ln∣A∣+2W​lnα+2N​lnβ−2N​ln(2π)(5.122)

其中 W W W 是 w \boldsymbol{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 (5.123) E(\boldsymbol{w}_{MAP})=\frac{\beta}{2}\sum_{n=1}^{N}\{y(\boldsymbol{x}_n,\boldsymbol{w}_{MAP})-t_n\}^{2}+\frac{\alpha}{2}\boldsymbol{w}_{MAP}^{T}\boldsymbol{w}_{MAP}\tag{5.123} E(wMAP​)=2β​n=1∑N​{y(xn​,wMAP​)−tn​}2+2α​wMAPT​wMAP​(5.123)

在模型证据框架中,我们通过最⼤化 ln ⁡ p ( D ∣ α , β ) \ln p(\mathcal{D}|\alpha,\beta) lnp(D∣α,β) 对 α \alpha α 和 β \beta β 进⾏点估计。⾸先考虑关于 α \alpha α 进⾏最⼤化,定义特征值⽅程

β H μ i = λ i μ i (5.124) \beta\boldsymbol{H}\boldsymbol{\mu}_i=\lambda_{i}\boldsymbol{\mu}_i\tag{5.124} βHμi​=λi​μi​(5.124)

其中 H \boldsymbol{H} H 是在 w = w M A P \boldsymbol{w}=\boldsymbol{w}_{MAP} w=wMAP​ 处计算的Hessian矩阵,由平⽅和误差函数的⼆阶导数组成。


α = γ w M A P T w M A P (5.125) \alpha=\frac{\gamma}{\boldsymbol{w}_{MAP}^{T}\boldsymbol{w}_{MAP}}\tag{5.125} α=wMAPT​wMAP​γ​(5.125)

其中 γ \gamma γ 表⽰参数的有效数量,定义为

γ = ∑ i = 1 W λ i α + λ i \gamma=\sum_{i=1}^{W}\frac{\lambda_i}{\alpha+\lambda_i} γ=i=1∑W​α+λi​λi​​

关于 β \beta β 最⼤化模型证据,可以得到下⾯的重估计公式

1 β = 1 N − γ ∑ n = 1 N { y ( x n , w M A P ) − t n } 2 (5.126) \frac{1}{\beta}=\frac{1}{N-\gamma}\sum_{n=1}^{N}\{y(\boldsymbol{x}_n,\boldsymbol{w}_{MAP})-t_n\}^{2}\tag{5.126} β1​=N−γ1​n=1∑N​{y(xn​,wMAP​)−tn​}2(5.126)

3,⽤于分类的贝叶斯神经⽹络

考虑的⽹络有⼀个logistic sigmoid输出,对应于⼀个⼆分类问题。

模型的对数似然函数为

ln ⁡ p ( D ∣ w ) = ∑ n = 1 N { t n ln ⁡ y n + ( 1 − t n ) ln ⁡ ( 1 − y n ) } (5.127) \ln p(\mathcal{D}|\boldsymbol{w})=\sum_{n=1}^{N}\{t_n\ln{y_n}+(1-t_n)\ln(1-y_n)\}\tag{5.127} lnp(D∣w)=n=1∑N​{tn​lnyn​+(1−tn​)ln(1−yn​)}(5.127)

其中 t n ∈ { 0 , 1 } t_n \in\{0,1\} tn​∈{0,1} 是⽬标值,且 y n ≡ y ( x n , w ) y_n \equiv y(\boldsymbol{x}_n,\boldsymbol{w}) yn​≡y(xn​,w) 。

将拉普拉斯框架⽤在这个模型中的第⼀个阶段是初始化超参数 α \alpha α,然后通过最⼤化对数后验概率分布的⽅法确定参数向量 w \boldsymbol{w} w ,这等价于最⼩化正则化误差函数
E ( w ) = − ln ⁡ p ( D ∣ w ) + α 2 w T w (5.128) E(\boldsymbol{w})=-\ln{p(\mathcal{D}|\boldsymbol{w})}+\frac{\alpha}{2}\boldsymbol{w}^{T}\boldsymbol{w}\tag{5.128} E(w)=−lnp(D∣w)+2α​wTw(5.128)

找到权向量的解 w M A P \boldsymbol{w}_{MAP} wMAP​ 之后, 下⼀步是计算由负对数似然函数的⼆阶导数组成的Hessian矩阵 H \boldsymbol{H} H 。

为了最优化超参数 α \alpha α ,再次最⼤化边缘似然函数,边缘似然函数的形式为

ln ⁡ p ( D ∣ α ) ≃ − E ( w M A P ) − 1 2 ln ⁡ ∣ A ∣ + W 2 ln ⁡ α (5.129) \ln p(\mathcal{D}|\alpha)\simeq -E(\boldsymbol{w}_{MAP})-\frac{1}{2}\ln|\boldsymbol{A}|+\frac{W}{2}\ln\alpha\tag{5.129} lnp(D∣α)≃−E(wMAP​)−21​ln∣A∣+2W​lnα(5.129)

其中,正则化的误差函数为

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 (5.130) E(\boldsymbol{w}_{MAP})=-\sum_{n=1}^{N}\{t_n\ln{y_n}+(1-t_n)\ln(1-y_n)\}+\frac{\alpha}{2}\boldsymbol{w}_{MAP}^{T}\boldsymbol{w}_{MAP}\tag{5.130} E(wMAP​)=−n=1∑N​{tn​lnyn​+(1−tn​)ln(1−yn​)}+2α​wMAPT​wMAP​(5.130)

其中 y n ≡ y ( x n , w M A P ) y_n \equiv y(\boldsymbol{x}_n,\boldsymbol{w}_{MAP}) yn​≡y(xn​,wMAP​) 。

图5.38,模型证据框架应⽤于⼈⼯⽣成的⼆分类数据集的说明。绿⾊曲线表⽰最优的决策边界,⿊⾊曲线表⽰通过最⼤化似然函数调节⼀个具有8个隐含结点的两层神经⽹络的结果,红⾊曲线表⽰包含⼀个正则化项的结果,其中 α \alpha α 使⽤模型证据的步骤进⾏了最优化,初始值为 α = 0 \alpha = 0 α=0 。注意,模型证据步骤极⼤地缓 解了模型的过拟合现象。

最后,需要找到的预测分布,由于⽹络函数的⾮线性的性质,积分是⽆法直接计算的。最简单的近似⽅法是假设后验概率⾮常窄,因此可以进⾏下⾯的近似
p ( t ∣ x , D ) ≃ p ( t ∣ x , w M A P ) (5.131) p(t|\boldsymbol{x},\mathcal{D})\simeq p(t|\boldsymbol{x},\boldsymbol{w}_{MAP})\tag{5.131} p(t∣x,D)≃p(t∣x,wMAP​)(5.131)

对输出激活函数进⾏线性近似,形式为

a ( x , w ) ≃ a M A P ( x ) + b T ( w − w M A P ) (5.132) a(\boldsymbol{x},\boldsymbol{w})\simeq a_{MAP}(\boldsymbol{x})+\boldsymbol{b}^{T}(\boldsymbol{w}-\boldsymbol{w}_{MAP})\tag{5.132} a(x,w)≃aMAP​(x)+bT(w−wMAP​)(5.132)

其中, a M A P ( x ) = a ( x , w M A P ) a_{MAP}(\boldsymbol{x})=a(\boldsymbol{x},\boldsymbol{w}_{MAP}) aMAP​(x)=a(x,wMAP​) 及向量 b ≡ ∇ a ( x , w M A P ) \boldsymbol{b} \equiv \nabla a(\boldsymbol{x},\boldsymbol{w}_{MAP}) b≡∇a(x,wMAP​) 都可以通过反向传播⽅法求出。

由神经⽹络的权值的分布引出的输出单元激活的值的分布为
p ( a ∣ x , D ) = ∫ δ ( a − a M A P ( x ) − b T ( x ) ( w − w M A P ) ) q ( w ∣ D ) d w (5.133) p(a|\boldsymbol{x},\mathcal{D})=\int\delta(a-a_{MAP}(\boldsymbol{x})-\boldsymbol{b}^{T}(\boldsymbol{x})(\boldsymbol{w}-\boldsymbol{w}_{MAP}))q(\boldsymbol{w}|\mathcal{D})\mathrm{d}\boldsymbol{w}\tag{5.133} p(a∣x,D)=∫δ(a−aMAP​(x)−bT(x)(w−wMAP​))q(w∣D)dw(5.133)

其中 q ( w ∣ D ) q(\boldsymbol{w}|\mathcal{D}) q(w∣D) 是对后验概率分布的⾼斯近似,这个分布是⼀个⾼斯分布,均值为 a M A P ( x ) ≡ a ( x , x M A P ) a_{MAP}(\boldsymbol{x})\equiv a(\boldsymbol{x},\boldsymbol{x}_{MAP}) aMAP​(x)≡a(x,xMAP​) ,⽅差为

σ a 2 ( x ) = b T ( x ) A − 1 b ( x ) (5.134) \sigma_{a}^{2}(\boldsymbol{x})=\boldsymbol{b}^{T}(\boldsymbol{x})\boldsymbol{A}^{-1}\boldsymbol{b}(\boldsymbol{x})\tag{5.134} σa2​(x)=bT(x)A−1b(x)(5.134)

为了得到预测分布,必须对 a a a 进⾏积分

p ( t = 1 ∣ x , D ) = ∫ δ ( a ) p ( a ∣ w , D ) d a (5.135) p(t=1|\boldsymbol{x},\mathcal{D})=\int \delta(a)p(a|\boldsymbol{w},\mathcal{D})\mathrm{d}a\tag{5.135} p(t=1∣x,D)=∫δ(a)p(a∣w,D)da(5.135)

⾼斯分布与logistic sigmoid函数的卷积是⽆法计算的。于是

p ( t = 1 ∣ x , D ) = σ ( κ ( σ a 2 ) a M A P ) (5.136) p(t=1|\boldsymbol{x},\mathcal{D})=\sigma\left(\kappa(\sigma_{a}^{2})a_{MAP}\right)\tag{5.136} p(t=1∣x,D)=σ(κ(σa2​)aMAP​)(5.136)

图 5.39~5.40,对于⼀个具有8个隐含结点带有 t a n h tanh tanh 激活函数和⼀个logistic sigmoid输出结点的贝叶斯⽹络应⽤拉 普拉斯近似的说明。权参数使⽤缩放的共轭梯度⽅法得到,超参数 α \alpha α 使⽤模型证据框架确定。图5.39是使⽤基于参数的 w M A P \boldsymbol{w}_{MAP} wMAP​ 的点估计的简单近似得到的结果,其中绿⾊曲线表⽰ y = 0.5 y = 0.5 y=0.5 的决策边界,其他的轮廓线对应于 y = 0.1 , 0.3 , 0.7 y = 0.1, 0.3, 0.7 y=0.1,0.3,0.7 和 0.9 0.9 0.9 的输出概率。图5.40是使⽤公式(5.136)得到的对应的结果。注意,求边缘概率分布的效果是扩散了轮廓线,使得预测的置信度变低,从⽽在每个输⼊点 x \boldsymbol{x} x 处,后验概 率分布向着 0.5 0.5 0.5 的⽅向偏移,⽽ y = 0.5 y = 0.5 y=0.5 的边界本⾝不受影响。

【机器学习基础】贝叶斯神经网络相关推荐

  1. 机器学习基础——贝叶斯

    注意区别:朴素贝叶斯和贝叶斯推理(主观贝叶斯.贝叶斯网络)不是同一个概念 朴素贝叶斯的思想 求解一个联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)需要首先得到先验概率分布 P ( Y ...

  2. 机器学习朴素贝叶斯_机器学习基础朴素贝叶斯分类

    机器学习朴素贝叶斯 In the previous stories, I had given an explanation of the program for implementation of v ...

  3. pytorch贝叶斯网络_贝叶斯神经网络:2个在TensorFlow和Pytorch中完全连接

    pytorch贝叶斯网络 贝叶斯神经网络 (Bayesian Neural Net) This chapter continues the series on Bayesian deep learni ...

  4. 贝叶斯深度神经网络_深度学习为何胜过贝叶斯神经网络

    贝叶斯深度神经网络 Recently I came across an interesting Paper named, "Deep Ensembles: A Loss Landscape ...

  5. 秒懂机器学习---朴素贝叶斯

    秒懂机器学习---朴素贝叶斯 一.总结 一句话总结: 尽管朴素贝叶斯的条件独立性假设存在一定的问题,但是朴素贝叶斯算法仍然能取得比较理想的分类预测结果. 1.朴素贝叶斯分类算法 和 KNN分类算法和决 ...

  6. PyMC3实现贝叶斯神经网络

    转自https://blog.csdn.net/jackxu8/article/details/71308390#commentBox 源地址https://docs.pymc.io/notebook ...

  7. 实验一:贝叶斯神经网络及其如何用随机梯度马尔可夫链蒙特卡洛有效训练

    0.实验环境搭建: 源代码获取: 来源一:google 来源二:web 来源三:github 环境: conda create --name python36_google_deep python=3 ...

  8. ​贝叶斯神经网络最新综述

    ©PaperWeekly 原创 · 作者|尹娟 学校|北京理工大学博士生 研究方向|随机过程.复杂网络 论文标题:Bayesian Neural Networks: An Introduction a ...

  9. 贝叶斯神经网络----从贝叶斯准则到变分推断

    前言 在认识贝叶斯神经网络之前,建议先复习联合概率,条件概率,边缘概率,极大似然估计,最大后验估计,贝叶斯估计这些基础 极大似然估计 一个神经网络模型可以视为一个条件分布模型 p ( y ∣ x , ...

最新文章

  1. Java编程中写出好代码的建议
  2. c语言建立队列(顺序队列、循化队列和链式队列)
  3. Python学习笔记:异步IO(2)
  4. PHP的ob多级缓冲设置
  5. FPGA课程设计使用VHDL语言
  6. Win32ASM-进程学习【1】
  7. 第一节 接口概述 [转贴]
  8. python读取pcd点云/转numpy(python2+python3,非ROS环境)
  9. 换手率:为什么美国人不爱频繁申赎基金?
  10. 使用ifconfig命令来看网卡的IP,但是,输入命令之后,eht0里面只有 inet6 addr 而没有 inet addr...
  11. python文件数据类型_Python核心数据类型-文件
  12. Go语言中rune方法如何使用
  13. 使用VMware搭建一个局域网网络拓扑
  14. SAP菜单中添加事务操作实例
  15. 微信公众号做淘宝优惠券找券查券搜券和返利机器人的详细配置教程
  16. 电信4g网络问题及恢复方案
  17. C4D——建宜家小闹钟
  18. SpringBoot:认认真真梳理一遍自动装配原理
  19. 被迫停运|黑客组织攻击俄罗斯天然气公司石油网站
  20. Cris 的 Python 数据分析笔记 06:Pandas 常见的数据预处理

热门文章

  1. 【数据结构和算法】图论—最小生成树,普里姆算法(Prim)
  2. pixi更新加载图片
  3. 怎么将静图变动图?用这个网站就够了
  4. ios 去掉底部状态栏_iOS 隐藏顶部状态栏
  5. sqlserver中返回旬开始日期和结束日期的函数
  6. 安卓病毒频发,做好手机安全防护很有必要
  7. 【Vulnhub】之JIS-CTF-VulnUpload-CTF01
  8. 智慧物流信息系统开发需具备哪些功能?
  9. alibaba.jym.item.external.goods.batch.offsale( 交易猫外部商家批量下架商品接口 )
  10. Python 将图片合成视频