稀疏贝叶斯学习 3

稀疏贝叶斯学习 3

FSBL 快速贝叶斯学习算法

前面已经求得的
L ( t ∣ σ 2 , α ) = − 1 2 log ⁡ ∣ σ 2 I + Φ Λ α Φ T ∣ − 1 2 t T ( σ 2 I + Φ Λ α Φ T ) − 1 t \boxed{ \begin{aligned} \mathcal L( \mathbf t \vert \sigma^2, \boldsymbol \alpha) = -\frac{1}{2} \log\Big\vert \sigma^2 \mathbf{I}+\mathbf{\Phi}\mathbf{\Lambda}_{\alpha}\mathbf{\Phi}^{\rm T} \Big\vert -\frac{1}{2} \mathbf{t}^{\rm T} \Big( \sigma^2 \mathbf{I}+\mathbf{\Phi}\mathbf{\Lambda}_{\alpha}\mathbf{\Phi}^{\rm T} \Big)^{-1} \mathbf{t} \end{aligned} } L(tσ2,α)=21logσ2I+ΦΛαΦT21tT(σ2I+ΦΛαΦT)1t

Σ w − 1 = 1 σ 2 Φ T Φ + Λ α − 1 μ w = σ − 2 Σ w Φ T t \boxed{ \begin{aligned} \mathbf \Sigma_w^{-1} &= \frac{1}{\sigma^2}\mathbf{\Phi}^{\rm T}\mathbf{\Phi}+\mathbf{\Lambda}_{\alpha}^{-1} \\ \bm\mu_w &= \sigma^{-2} \mathbf \Sigma_w \mathbf{\Phi}^{\rm T}\mathbf t \end{aligned} } Σw1μw=σ21ΦTΦ+Λα1=σ2ΣwΦTt

稀疏贝叶斯学习过程如下:
α i new = γ i μ i 2 ( σ 2 ) new = ∥ t − Φ μ w ∥ 2 N − ∑ i γ i γ i = 1 − [ Σ w ] i , i ⋅ α i \begin{aligned} \alpha_i^{\text{new}} &= \frac{\gamma_i}{\mu_i^2} \\ (\sigma^2)^{\text{new}} &= \frac{\Vert \mathbf t - \mathbf{\Phi}\bm\mu_w\Vert^2}{N-\sum_i \gamma_i} \\ \gamma_i &= 1- [\mathbf\Sigma_w]_{i,i} \cdot \alpha_i \end{aligned} αinew(σ2)newγi=μi2γi=NiγitΦμw2=1[Σw]i,iαi
实际操作中, α \bm \alpha α 中大部分元素将变得很大,这在迭代更新过程中会引入较大的运算量,如果仅仅将无限大的元素停止更新不删除,导致的(ill-conditioned) Σ \bf \Sigma Σ 矩阵来更新 α \bm \alpha α 将毫无意义。

上一节中得到的对数,为
L ( t ∣ σ 2 , α ) = − N 2 log ⁡ ( 2 π ) − 1 2 log ⁡ ∣ Σ t ∣ − 1 2 t T Σ t − 1 t \begin{aligned} \mathcal L( \mathbf t \vert \sigma^2, \boldsymbol \alpha) = {-\frac{N}{2}} \log (2\pi)-\frac{1}{2} \log\Big\vert \mathbf{\Sigma}_t \Big\vert -\frac{1}{2} \mathbf{t}^{\rm T} \mathbf{\Sigma}^{-1}_t \mathbf{t} \end{aligned} L(tσ2,α)=2Nlog(2π)21logΣt21tTΣt1t
其中 Σ t = σ 2 I + Φ Λ α Φ T \mathbf{\Sigma}_t=\sigma^2 \mathbf{I}+\mathbf{\Phi}\mathbf{\Lambda}_{\alpha}\mathbf{\Phi}^{\rm T} Σt=σ2I+ΦΛαΦT,令 C = Σ t \mathbf C=\mathbf{\Sigma}_t C=Σt,以及 A − 1 = Λ α \mathbf A^{-1} = \mathbf{\Lambda}_{\alpha} A1=Λα

重新整理得到
L ( t ∣ σ 2 , α ) = − 1 2 [ N log ⁡ ( 2 π ) + log ⁡ ∣ C ∣ + t T C − 1 t ] \boxed{ \begin{aligned} \mathcal L( \mathbf t \vert \sigma^2, \boldsymbol \alpha) = -\frac{1}{2} \bigg[ N\log (2\pi)+ \log\Big\vert \mathbf C \Big\vert + \mathbf{t}^{\rm T} \mathbf{C}^{-1} \mathbf{t} \bigg] \end{aligned} } L(tσ2,α)=21[Nlog(2π)+logC+tTC1t]
其中, C = σ 2 I + Φ A − 1 Φ T \mathbf C=\sigma^2 \mathbf{I}+\mathbf{\Phi}\mathbf A^{-1}\mathbf{\Phi}^{\rm T} C=σ2I+ΦA1ΦT

为了减小运算量,我们做以下分解:

C = σ 2 I + Φ A − 1 Φ T = σ 2 I + ∑ m ≠ i α m − 1 ϕ m ϕ m T + α i − 1 ϕ i ϕ i T = C − i + α i − 1 ϕ i ϕ i T \begin{aligned} \mathbf C& = \sigma^2 \mathbf{I}+\mathbf{\Phi}\mathbf A^{-1}\mathbf{\Phi}^{\rm T} \\ &= \sigma^2 \mathbf{I}+\sum_{m\neq i}\alpha_m^{-1}{\bm \phi_m} \bm \phi_m^{\rm T}+ \alpha_i^{-1}{\bm \phi_i} \bm \phi_i^{\rm T}\\ &=\mathbf C_{-i}+\alpha_i^{-1}{\bm \phi_i} \bm \phi_i^{\rm T} \end{aligned} C=σ2I+ΦA1ΦT=σ2I+m=iαm1ϕmϕmT+αi1ϕiϕiT=Ci+αi1ϕiϕiT
其中 C − i \mathbf C_{-i} Ci C \mathbf C C 去掉基向量 i i i 贡献后的结果。给定 L ( t ∣ σ 2 , α ) \mathcal L( \mathbf t \vert \sigma^2, \boldsymbol \alpha) L(tσ2,α) 中的行列式计算(大名鼎鼎的 The Matrix Determinant Lemma 定理来啦)为
∣ C ∣ = ∣ C − i + α i − 1 ϕ i ϕ i T ∣ = ∣ C − i ∣ ⋅ ∣ 1 + α i − 1 ϕ i T C − i − 1 ϕ i ∣ \begin{aligned} \Big\vert \mathbf C \Big\vert &= \Big\vert \mathbf C_{-i}+\alpha_i^{-1}{\bm \phi_i} \bm \phi_i^{\rm T} \Big\vert \\ &= \Big\vert \mathbf C_{-i}\Big\vert \cdot \Big\vert 1 +\alpha_i^{-1} \bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} \Big\vert \end{aligned} C=Ci+αi1ϕiϕiT=Ci1+αi1ϕiTCi1ϕi
那么接下来去计算逆矩阵,利用
( P + ρ a a H ) − 1 = P − 1 − ρ P − 1 a ( 1 + ρ a H P − 1 a ) − 1 a H P − 1 (\mathbf P+\rho \mathbf a\mathbf a^{H})^{-1} =\mathbf P^{-1} -\rho \mathbf P^{-1}\mathbf a ( 1+ \rho\mathbf a^{H} \mathbf P^{-1}\mathbf a )^{-1} \mathbf a^{H} \mathbf P^{-1} (P+ρaaH)1=P1ρP1a(1+ρaHP1a)1aHP1
因此可以得到
C − 1 = ( C − i + α i − 1 ϕ i ϕ i T ) − 1 = C − i − 1 − α i − 1 C − i − 1 ϕ i ( 1 + α i − 1 ϕ i T C − i − 1 ϕ i ) − 1 ϕ i T C − i − 1 = C − i − 1 − C − i − 1 ϕ i ϕ i T C − i − 1 α i + ϕ i T C − i − 1 ϕ i \begin{aligned} \mathbf C^{-1} &= \bigg(\mathbf C_{-i}+\alpha_i^{-1}{\bm \phi_i} \bm \phi_i^{\rm T}\bigg)^{-1} \\ &=\mathbf C_{-i}^{-1}- \alpha_i^{-1}\mathbf C_{-i}^{-1} \bm \phi_i \bigg(1+\alpha_i^{-1}\bm \phi_i^{\rm T}\mathbf C_{-i}^{-1}\bm \phi_i \bigg)^{-1} \bm \phi_i^{\rm T}\mathbf C_{-i}^{-1} \\ &=\mathbf C_{-i}^{-1}- \frac{\mathbf C_{-i}^{-1} \bm \phi_i \bm \phi_i^{\rm T}\mathbf C_{-i}^{-1} }{\alpha_i+\bm \phi_i^{\rm T}\mathbf C_{-i}^{-1}\bm \phi_i} \end{aligned} C1=(Ci+αi1ϕiϕiT)1=Ci1αi1Ci1ϕi(1+αi1ϕiTCi1ϕi)1ϕiTCi1=Ci1αi+ϕiTCi1ϕiCi1ϕiϕiTCi1
于是令 1 + α i − 1 ϕ i T C − i − 1 ϕ i = α i − 1 ( α i + ϕ i T C − i − 1 ϕ i ) 1 +\alpha_i^{-1} \bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} =\alpha_i^{-1}(\alpha_i+\bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} ) 1+αi1ϕiTCi1ϕi=αi1(αi+ϕiTCi1ϕi) L ( α ) \mathcal L( \boldsymbol \alpha) L(α) 可以写为
L ( α ) = − 1 2 [ N log ⁡ ( 2 π ) + log ⁡ ∣ C ∣ + t T C − 1 t ] = − 1 2 [ N log ⁡ ( 2 π ) + log ⁡ ∣ C − i ∣ + log ⁡ ( 1 + α i − 1 ϕ i T C − i − 1 ϕ i ) + t T ( C − i − 1 − C − i − 1 ϕ i ϕ i T C − i − 1 α i + ϕ i T C − i − 1 ϕ i ) t ] = − 1 2 [ N log ⁡ ( 2 π ) + log ⁡ ∣ C − i ∣ − log ⁡ α i + log ⁡ ( α i + ϕ i T C − i − 1 ϕ i ) + t T C − i − 1 t − t T C − i − 1 ϕ i ϕ i T C − i − 1 t α i + ϕ i T C − i − 1 ϕ i ] = − 1 2 [ N log ⁡ ( 2 π ) + log ⁡ ∣ C − i ∣ − log ⁡ α i + log ⁡ ( α i + ϕ i T C − i − 1 ϕ i ) + t T C − i − 1 t − ( ϕ i T C − i − 1 t ) 2 α i + ϕ i T C − i − 1 ϕ i ] \begin{aligned} \mathcal L( \boldsymbol \alpha) &= -\frac{1}{2} \bigg[ N\log (2\pi)+ \log\Big\vert \mathbf C \Big\vert + \mathbf{t}^{\rm T} \mathbf{C}^{-1} \mathbf{t} \bigg] \\ &= -\frac{1}{2} \bigg[ N\log (2\pi)+ \log \Big\vert \mathbf C_{-i}\Big\vert + \log \Big( 1 +\alpha_i^{-1} \bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} \Big)+ \mathbf{t}^{\rm T} \bigg(\mathbf C_{-i}^{-1}- \frac{\mathbf C_{-i}^{-1} \bm \phi_i \bm \phi_i^{\rm T}\mathbf C_{-i}^{-1} }{\alpha_i+\bm \phi_i^{\rm T}\mathbf C_{-i}^{-1}\bm \phi_i} \bigg) \mathbf{t} \bigg] \\ &= -\frac{1}{2} \bigg[ N\log (2\pi)+ \log \Big\vert \mathbf C_{-i}\Big\vert - \log\alpha_i+\log \Big( \alpha_i+\bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} \Big) + \mathbf{t}^{\rm T} \mathbf C_{-i}^{-1}\mathbf{t}- \frac{\mathbf{t}^{\rm T} \mathbf C_{-i}^{-1} \bm \phi_i \bm \phi_i^{\rm T}\mathbf C_{-i}^{-1} \mathbf{t}}{\alpha_i+\bm \phi_i^{\rm T}\mathbf C_{-i}^{-1}\bm \phi_i } \bigg] \\ &= -\frac{1}{2} \bigg[ N\log (2\pi)+ \log \Big\vert \mathbf C_{-i}\Big\vert - \log\alpha_i+\log \Big( \alpha_i+\bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} \Big) + \mathbf{t}^{\rm T} \mathbf C_{-i}^{-1}\mathbf{t} - \frac{(\bm \phi_i^{\rm T}\mathbf C_{-i}^{-1} \mathbf{t})^2}{\alpha_i+\bm \phi_i^{\rm T}\mathbf C_{-i}^{-1}\bm \phi_i } \bigg] \end{aligned} L(α)=21[Nlog(2π)+logC+tTC1t]=21[Nlog(2π)+logCi+log(1+αi1ϕiTCi1ϕi)+tT(Ci1αi+ϕiTCi1ϕiCi1ϕiϕiTCi1)t]=21[Nlog(2π)+logCilogαi+log(αi+ϕiTCi1ϕi)+tTCi1tαi+ϕiTCi1ϕitTCi1ϕiϕiTCi1t]=21[Nlog(2π)+logCilogαi+log(αi+ϕiTCi1ϕi)+tTCi1tαi+ϕiTCi1ϕi(ϕiTCi1t)2]
我们令
s i = ϕ i T C − i − 1 ϕ i q i = ϕ i T C − i − 1 t \begin{aligned} s_i &= \bm \phi_i^{\rm T } \mathbf C_{-i}^{-1} {\bm \phi_i} \\ q_i &= \bm \phi_i^{\rm T}\mathbf C_{-i}^{-1} \mathbf{t} \end{aligned} siqi=ϕiTCi1ϕi=ϕiTCi1t
从而 L ( α ) \mathcal L( \boldsymbol \alpha) L(α) 可以写为
L ( α ) = − 1 2 [ N log ⁡ ( 2 π ) + log ⁡ ∣ C − i ∣ + t T C − i − 1 t − log ⁡ α i + log ⁡ ( α i + s i ) − q i 2 α i + s i ] = L ( α − i ) + 1 2 [ log ⁡ α i − log ⁡ ( α i + s i ) + q i 2 α i + s i ] = L ( α − i ) + ℓ ( α i ) \begin{aligned} \mathcal L( \boldsymbol \alpha) &= -\frac{1}{2} \bigg[ N\log (2\pi)+ \log \Big\vert \mathbf C_{-i}\Big\vert + \mathbf{t}^{\rm T} \mathbf C_{-i}^{-1}\mathbf{t} - \log\alpha_i+\log \Big( \alpha_i+s_i \Big) - \frac{q_i^2}{\alpha_i+ s_i } \bigg] \\ &=\mathcal L( \boldsymbol \alpha_{-i})+ \frac{1}{2} \bigg[ \log\alpha_i-\log \Big( \alpha_i+s_i \Big) + \frac{q_i^2}{\alpha_i+ s_i } \bigg] \\ &= \mathcal L( \boldsymbol \alpha_{-i})+ \ell(\alpha_i) \end{aligned} L(α)=21[Nlog(2π)+logCi+tTCi1tlogαi+log(αi+si)αi+siqi2]=L(αi)+21[logαilog(αi+si)+αi+siqi2]=L(αi)+(αi)

其中两个常数系数:

  • 稀疏系数 s i s_i si 可以被视为衡量基向量 ϕ i {\bm \phi_i} ϕi 与模型中已经存在的 ϕ i {\bm \phi_i} ϕi 重叠的程度。
  • 质量系数 q i q_i qi ϕ i {\bm \phi_i} ϕi 与不包括该向量的模型误差对齐的一种度量,是衡量 ϕ i {\bm \phi_i} ϕi 增加 L ( α ) \mathcal L( \boldsymbol \alpha) L(α) 的效果。

上面的分析(求导,通分,令分子为 0,注意结果应该是合理的方差取值范围)表明 L ( α ) \mathcal L( \boldsymbol \alpha) L(α) 相对于 α i \alpha_i αi 具有唯一的最大值:

α i = s i 2 q i 2 − s i , q i 2 > s i α i = ∞ , q i 2 ≤ s i \begin{aligned} \alpha_i &= \frac{s_i^2}{q_i^2-s_i},\quad \quad q_i^2>s_i \\ \alpha_i &= \infty,\quad \quad\quad\quad q_i^2\leq s_i \end{aligned} αiαi=qi2sisi2,qi2>si=,qi2si

通过迭代过程,计算所有的基向量 ϕ i \bm \phi_i ϕi 对应的 s i s_i si q i q_i qi,更新参数向量 α \bm \alpha α,总结基于快速 RVM 的贝叶算法如下:

  • 1) 对于稀疏回归问题,初始化 σ 2 \sigma^2 σ2

  • 2) 初始化一个基向量 ϕ i \bm \phi_i ϕi,根据
    α i = s i 2 q i 2 − s i , q i 2 > s i \alpha_i = \frac{s_i^2}{q_i^2-s_i},\quad q_i^2>s_i αi=qi2sisi2,qi2>si
    这时候初始化的 C = σ 2 I + α i − 1 ϕ i ϕ i T \mathbf C =\sigma^2\mathbf I+ \alpha_i^{-1}{\bm \phi_i} \bm \phi_i^{\rm T} C=σ2I+αi1ϕiϕiT,因此 C − i = σ 2 I → C − i − 1 = σ − 2 I \mathbf C_{-i}=\sigma^2\mathbf I \rightarrow \mathbf C_{-i}^{-1}=\sigma^{-2}\mathbf I Ci=σ2ICi1=σ2I。使超参数
    α i = s i 2 q i 2 − s i = ∥ σ − 2 ϕ i T ϕ i ∥ 2 ∥ σ − 2 ϕ i T t ∥ 2 − σ − 2 ϕ i T ϕ i = ∥ ϕ i ∥ 2 ∥ ϕ i T t ∥ 2 / ∥ ϕ i ∥ 2 − σ 2 \begin{aligned} \alpha_i &= \frac{s_i^2}{q_i^2-s_i}=\frac{\Vert \sigma^{-2}\bm \phi_i^{\rm T } {\bm \phi_i} \Vert^2}{\Vert \sigma^{-2}\bm \phi_i^{\rm T } \mathbf{t} \Vert^2- \sigma^{-2}\bm \phi_i^{\rm T } {\bm \phi_i}} \\ &=\frac{\Vert {\bm \phi_i} \Vert^2}{\Vert \bm \phi_i^{\rm T } \mathbf{t} \Vert^2/\Vert \bm \phi_i \Vert^2- \sigma^{2}} \end{aligned} αi=qi2sisi2=σ2ϕiTt2σ2ϕiTϕiσ2ϕiTϕi2=ϕiTt2/ϕi2σ2ϕi2
    其他 α m \alpha_m αm 理论上为无穷大。

  • 3)显示计算初始化的均值 μ \bm \mu μ 和方差 Σ \mathbf \Sigma Σ(最初是标量):
    Σ = [ σ − 2 Φ T Φ + A ] − 1 μ = σ − 2 Σ Φ T t \begin{aligned} \mathbf \Sigma &= \Big[ {\sigma^{-2}}\mathbf{\Phi}^{\rm T}\mathbf{\Phi}+\mathbf{A}\Big] ^{-1}\\ \bm\mu &= \sigma^{-2} \mathbf \Sigma \mathbf{\Phi}^{\rm T}\mathbf t \end{aligned} Σμ=[σ2ΦTΦ+A]1=σ2ΣΦTt
    连同一起初始化其他基向量 ϕ m \bm \phi_m ϕm 以及对应的 s m s_m sm q m q_m qm

  • 4)从具有 M M M 个基向量的全部集合中选择候选基 ϕ i \bm \phi_i ϕi

  • 5)计算 θ i = q i 2 − s i \theta_i =q_i^2-s_i θi=qi2si

    • 如果 θ i > 0 \theta_i >0 θi>0 α i < ∞ \alpha_i < \infty αi<,更新估计 α i \alpha_i αi
    • 如果 θ i > 0 \theta_i >0 θi>0 α i = ∞ \alpha_i = \infty αi=,添加基向量 ϕ i \bm \phi_i ϕi 并更新估计 α i \alpha_i αi
    • 如果 θ i ≤ 0 \theta_i \leq 0 θi0 α i < ∞ \alpha_i < \infty αi<,删除基向量 ϕ i \bm \phi_i ϕi 并设置 α i = ∞ \alpha_i =\infty αi=
  • 6) 估计噪声水平,更新其方差值
    σ 2 = ∥ t − Φ μ ∥ 2 N − ∑ i γ i = ∥ t − Φ μ ∥ 2 N − M + ∑ m α m [ Σ ] m , m \sigma^2= \frac{\Vert \mathbf t - \mathbf{\Phi}\bm\mu\Vert^2}{N-\sum_i \gamma_i} =\frac{\Vert \mathbf t - \mathbf{\Phi}\bm\mu\Vert^2}{N-M+\sum_m \alpha_m [\mathbf\Sigma]_{m,m}} σ2=NiγitΦμ2=NM+mαm[Σ]m,mtΦμ2

  • 7)再次更新均值 μ \bm \mu μ 和方差 Σ \mathbf \Sigma Σ,及所有的 s m s_m sm q m q_m qm

  • 8)判断是否收敛,收敛则算法结束,否则转到步骤(4)继续迭代。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值