EM算法极简总结——CVMLI Prince读书随笔第7章

EM算法用于在生成模型当中,模型的形式已知后,以最大似然的形式,优化模型参数。

对数似然目标

θ ^ = arg max ⁡ θ [ ∑ i = 1 I l o g [ ∫ P ( x i , h i ∣ θ ) d h i ] ] \hat \theta = \argmax _\theta \left [ \sum_{i=1}^I log \left [\int P(x_i, h_i|\theta)dh_i \right] \right ] θ^=θargmax[i=1Ilog[P(xi,hiθ)dhi]]
其中 { x i } i = 1 I \{ x_i\}_{i=1}^I {xi}i=1I是训练数据, h h h是隐变量。

定义下界

上式不好直接求,定义下界函数
B [ { q i ( h i ) } , θ ] = ∑ i = 1 I ∫ q i ( h i ) log ⁡ [ P ( x i , h i ∣ θ ) q i ( h i ) ] d h i ≤ ∑ i = 1 I log ⁡ [ ∫ P ( x i , h i ∣ θ ) d h i ] \begin{aligned} \mathcal B [\{q_i(h_i)\}, \theta ] &= \sum_{i=1}^I \int q_i(h_i) \log \left[ \frac{P(x_i, h_i | \theta)}{q_i(h_i)} \right] dh_i \\ & \leq \sum_{i=1}^I \log \left [\int P(x_i, h_i|\theta)dh_i \right] \end{aligned} B[{qi(hi)},θ]=i=1Iqi(hi)log[qi(hi)P(xi,hiθ)]dhii=1Ilog[P(xi,hiθ)dhi]

优化过程

不断优化 B \mathcal B B,即优化了目标函数的下界。优化方法为

  • E步(期望步):更新概率分布 { q i ( h i ) } i = 1 I \{ q_i(h_i)\}_{i=1}^I {qi(hi)}i=1I来最大地提高下界。
    在第 t + 1 t+1 t+1步,选择
    q ^ i ( h i ) = P ( h i ∣ x i , θ [ t ] ) = P ( x i ∣ h i , θ [ t ] ) P ( h i ∣ θ [ t ] ) P ( x i ) \hat q_i (h_i) = P(h_i| x_i, \theta ^{[t]}) = \frac{P(x_i|h_i, \theta ^{[t]})P(h_i|\theta ^{[t]})}{P(x_i)} q^i(hi)=P(hixi,θ[t])=P(xi)P(xihi,θ[t])P(hiθ[t])
    该式是最大化的正确性可由Jensen不等式保证。注意这种取法实际上达到了对数似然函数,即此时
    B [ { q i ( h i ) } , θ ] = ∑ i = 1 I log ⁡ [ P ( x i ∣ θ ) ] \mathcal B [\{q_i(h_i)\}, \theta]=\sum_{i=1}^I \log[P(x_i|\theta)] B[{qi(hi)},θ]=i=1Ilog[P(xiθ)]
  • M步(最大化步):更新参数 θ \theta θ来提高下界。注意到 q ^ i ( h i ) \hat q_i(h_i) q^i(hi) θ \theta θ无关,所以只需最大化下式
    θ ^ [ t + 1 ] = arg max ⁡ θ ∑ i = 1 I ∫ q ^ i ( h i ) log ⁡ [ P ( x i , h i ∣ θ ) ] d h i = arg max ⁡ θ ∑ i = 1 I [ E h ∼ q ^ i ( h i ) [ log ⁡ ( P ( x i ∣ h i , θ ) ) ] + E h ∼ q ^ i ( h i ) [ log ⁡ ( P ( h i ) ) ] ] (1) \begin{aligned} \hat \theta^{[t+1]} &= \argmax _\theta \sum_{i=1}^I \int \hat q_i(h_i) \log \left[ P(x_i, h_i|\theta) \right] dh_i \\ &= \argmax _\theta \sum_{i=1}^I \left [ \mathbb E_{ h \sim \hat q_i(h_i)} \left[ \log (P(x_i| h_i, \theta))\right] + \mathbb E_{ h \sim \hat q_i(h_i)} \left[ \log (P(h_i))\right] \right ] \end{aligned} \tag{1} θ^[t+1]=θargmaxi=1Iq^i(hi)log[P(xi,hiθ)]dhi=θargmaxi=1I[Ehq^i(hi)[log(P(xihi,θ))]+Ehq^i(hi)[log(P(hi))]](1)
    在这里插入图片描述

例子解释

混合高斯模型

在混合高斯模型当中, E E E步就是对每个点赋类别概率, M M M步就是更新参数 { μ , Σ , λ } \{ \mu, \Sigma, \lambda\} {μ,Σ,λ}
如果不用EM算法,直接优化 ∑ i = 1 I log ⁡ [ P ( x i ∣ θ ) ] \sum_{i=1}^I \log [P(x_i|\theta)] i=1Ilog[P(xiθ)],则无法简单得到闭式解。
在这里插入图片描述

学生t分布模型

概念
  • 高斯分布对奇异值太敏感,t分布不会产生如此剧烈影响。
    在这里插入图片描述
    如果
    P ( x ∣ h ) = N ( x ∣ μ , Σ / h ) P ( h ) = G a m ( h ∣ ν / 2 , ν / 2 ) P(\bm x|h) = \mathcal N (\bm x|\bm\mu, \bm\Sigma/h) \\ P(h) = Gam(h| \nu / 2, \nu/2) P(xh)=N(xμ,Σ/h)P(h)=Gam(hν/2,ν/2)
    x x x的全概率分布为学生t分布:
    P ( x ) = ∫ P ( x ∣ h ) P ( h ) d h = ∫ N ( x ∣ μ , Σ / h ) G a m ( h ∣ ν / 2 , ν / 2 ) d h = S t ( x ∣ μ , Σ , ν ) \begin{aligned} P(\bm x) & = \int P(\bm x|h)P(h)dh \\ &= \int \mathcal N(\bm x|\bm \mu, \bm\Sigma/h)Gam(h|\nu/2, \nu/2)dh \\ &= St(\bm x| \bm \mu, \bm \Sigma, \nu) \end{aligned} P(x)=P(xh)P(h)dh=N(xμ,Σ/h)Gam(hν/2,ν/2)dh=St(xμ,Σ,ν)
    其中 h h h是标量隐变量, G a m Gam Gam是Gamma分布。
    可以理解为是 h h h选择了一族同均值的正态分布中的一个,然后在该分布上生成 x \bm x x.

也可参考之前博客中记录的,PRML对于学生t分布的解释

在这里插入图片描述

EM算法求解
  • E步:
    q i ( h i ) = P ( h i ∣ x i , θ [ t ] ) = P ( x i ∣ h ) P ( h i ) P ( x i ∣ θ [ t ] ) = N ( x i ∣ μ , Σ / h ) G a m ( h i ∣ ν / 2 , ν / 2 ) P ( x i ∣ θ [ t ] ) = G a m ( h i ∣ ν + D 2 , ( x i − μ ) T Σ − 1 ( x i − μ ) 2 + ν 2 ) \begin{aligned} q_i(h_i) = P(h_i|\bm x_i, \bm \theta^{[t]}) &= \frac{P(\bm x_i|h)P(h_i)}{P(\bm x_i|\theta^{[t]})} \\ &= \frac{\mathcal N(\bm x_i| \mu, \Sigma/h) Gam(h_i|\nu/2, \nu/2) }{P(\bm x_i|\theta^{[t]})} \\ &= Gam(h_i| \frac{\nu + D}{2} , \frac{(\bm x_i - \mu)^T \Sigma^{-1} (\bm x_i - \bm \mu)}{2} + \frac{\nu}{2}) \end{aligned} qi(hi)=P(hixi,θ[t])=P(xiθ[t])P(xih)P(hi)=P(xiθ[t])N(xiμ,Σ/h)Gam(hiν/2,ν/2)=Gam(hi2ν+D,2(xiμ)TΣ1(xiμ)+2ν)
    最后一步的证明,注意共轭性。可以参考之前的博客
  • M步:对式(1)求导,置0后得到:
    μ [ t + 1 ] = ∑ i = 1 I E [ h i ] x i ∑ i = 1 I E [ h i ] Σ [ t + 1 ] = ∑ i = 1 I E [ h i ] ( x i − μ [ t + 1 ] ) ( x i − μ [ t + 1 ] ) T ∑ i = 1 I E [ h i ] \begin{aligned} \mu^{[t+1]} &= \frac{\sum_{i=1}^I \mathbb E[h_i]\bm x_i}{\sum_{i=1}^I \mathbb E[h_i]} \\ \Sigma^{[t+1]} &= \frac{\sum_{i=1}^I \mathbb E[h_i] (\bm x_i - \mu^{[t+1]})(\bm x_i - \mu^{[t+1]})^T}{\sum_{i=1}^I \mathbb E[h_i]} \end{aligned} μ[t+1]Σ[t+1]=i=1IE[hi]i=1IE[hi]xi=i=1IE[hi]i=1IE[hi](xiμ[t+1])(xiμ[t+1])T
  • 直观解释: E [ h i ] \mathbb E [h_i] E[hi]可以看作是数据的权重。对于异常值,协方差较大的高斯分布出现的概率大,也即 h i h_i hi倾向于偏小,所以权重小。这样也解释了学生t分布对于异常值的鲁棒性。
  • 自由度 ν \nu ν没有闭式解,可以在代入更新后 μ , Σ \bm \mu, \bm \Sigma μ,Σ后,进行一维线性搜索最大化。

深入理解

对于下界(ELBO),如果两边对 x x x求关于数据分布的期望。可以进一步求得变分推断的优化目标为两个联合概率的负KL散度:
− K L [ p d ( x ) q ( z ∣ x ; θ ) ∣ ∣ p ( x ∣ z ; θ ) p ( z ; θ ) ] -KL[p_d(x)q(z|x;\theta) || p(x|z;\theta)p(z;\theta)] KL[pd(x)q(zx;θ)p(xz;θ)p(z;θ)]

E x ∼ p d log ⁡ p ( x ) = − K L [ p d ( x ) q ( z ∣ x ; θ ) ∣ ∣ p ( x , z ; θ ) ] + E x ∼ p d log ⁡ p d ( x ) + E x ∼ p d K L ( q ( z ∣ x ) ∣ ∣ p ( z ∣ x ) ) \mathbb E_{x\sim p_d} \log p(x) = -KL[p_d(x)q(z|x;\theta) || p(x,z;\theta)] + \mathbb E_{x\sim p_d}\log p_d(x)+\mathbb E_{x\sim p_d}KL(q(z|x)||p(z|x)) Expdlogp(x)=KL[pd(x)q(zx;θ)p(x,z;θ)]+Expdlogpd(x)+ExpdKL(q(zx)p(zx))
其中 p d p_d pd是数据分布, p p p是模型拟合的全数据分布, q q q是后验辅助函数

在高斯混合模型中,我们人工设计了 p ( x ∣ z ) p(x|z) p(xz) p ( z ) p(z) p(z)。而在变分自编码器VAE中,则建模了 p ( z ) p(z) p(z),对于 p ( x ∣ z ) p(x|z) p(xz) p ( z ∣ x ) p(z|x) p(zx)都以神经网络去拟合,并没有显式给出具体类的 p ( x ∣ z ) p(x|z) p(xz)。这是VAE比EM强的地方

参考文献:
[1] Prince S J D. Computer vision: models, learning, and inference[M]. Cambridge University Press, 2012. 108-116.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值