机器学习算法笔记:EM期望最大

直观案例

在这里插入图片描述
案例 a
假设有两硬币 A 和 B ,现在想要知道两枚硬币各自为正面的概率 θ A \color{blue}\theta_A θA θ B \color{blue}\theta_B θB

  • 总共做了 5 次试验,每次随机取出 A 或 B 抛10次,并记录 A 和 B 的正反情况,现在 A 和 B 抛的总次数和正面的次数都知道,很容易估计得到: θ ^ A = A正面次数 A 正 面 + 反 面 总 次 数 = 24 24 + 6 = 0.80 θ ^ B = B正面次数 B 正 面 + 反 面 总 次 数 = 9 9 + 11 = 0.45 {\color{blue}\hat\theta_A}=\frac{\text{A正面次数}}{A正面+反面总次数}=\frac{24}{24+6}=0.80\\[12pt]{\color{blue}\hat\theta_B}=\frac{\text{B正面次数}}{B正面+反面总次数}=\frac{9}{9+11}=0.45 θ^A=A+A正面次数=24+624=0.80θ^B=B+B正面次数=9+119=0.45
    在这里插入图片描述

案例 b
案例 a相比:现在只知道正反面的记录情况,但不知道每次试验取的是 A 还是 B (A 和 B 取出概率相等),那么现在该如何估计 θ A \color{blue}\theta_A θA θ B \color{blue}\theta_B θB 的值呢?
EM算法:

  • 1、 θ ^ A ( 0 ) = 0.60 {\color{blue}\hat\theta^{(0)}_A} = 0.60 θ^A(0)=0.60 θ ^ B ( 0 ) = 0.50 {\color{blue}\hat\theta^{(0)}_B} = 0.50 θ^B(0)=0.50

  • 2、 第一次试验 5 正 5 反 ,那么 :    A出现5H5T的概率 P A = ( θ ^ A ( 0 ) ) 5 ( 1 − θ ^ A ( 0 ) ) 5 = ( 0.60 ) 5 ( 0.40 ) 5    B出现5H5T的概率 P B = ( θ B ( 0 ) ) 5 ( 1 − θ B ( 0 ) ) 5 = ( 0.50 ) 5 ( 0.50 ) 5    第一次试验取出的是A的概率 P ( A ) = P A P A + P B = 0.45    第一次试验取出的是B的概率 P ( B ) = P B P A + P B = 0.55 \begin{aligned}&\ _{\text{ A出现5H5T的概率}}\quad P_A=({\color{blue}\hat\theta^{(0)}_A})^5(1-{\color{blue}\hat\theta^{(0)}_A})^5=(0.60)^5(0.40)^5\\&\ _{\text{ B出现5H5T的概率}}\quad P_B=({\color{blue}\theta^{(0)}_B})^5(1-{\color{blue}\theta^{(0)}_B})^5=(0.50)^5(0.50)^5\\&\ _{\text{ 第一次试验取出的是A的概率}}\quad P(A) = \frac{P_A}{P_A+P_B}=0.45\\&\ _{\text{ 第一次试验取出的是B的概率}}\quad P(B) = \frac{P_B}{P_A+P_B}=0.55\end{aligned}   A出现5H5T的概率PA=(θ^A(0))5(1θ^A(0))5=(0.60)5(0.40)5  B出现5H5T的概率PB=(θB(0))5(1θB(0))5=(0.50)5(0.50)5  第一次试验取出的是A的概率P(A)=PA+PBPA=0.45  第一次试验取出的是B的概率P(B)=PA+PBPB=0.55所以第一次试验可以看作是 A 抛了 10 10 10 × P ( A ) = 10 × 0.45 = 4.5 次 \times P(A)=10\times0.45=4.5次 ×P(A)=10×0.45=4.5,其中正面为 2.25 次,反面为 2.25 次。同理,B 抛了 10 10 10 × P ( A ) = 10 × 0.55 = 5.5 次 \times P(A)=10\times0.55=5.5次 ×P(A)=10×0.55=5.5,其中正面为 2.75 次,反面为 2.75 次。

  • 3、 同步骤 2 中一样,分别计算第二至第五次得到下表(注意:下表只保留了一位小数):

  • 4、 得到上表后,与案例 a 一样:相当于 A 和 B 抛的总次数和正面的次数都已知,就可以对 θ A \color{blue}\theta_A θA θ B \color{blue}\theta_B θB进行估计: θ ^ A ( 1 ) = A正面次数 A 正 面 + 反 面 总 次 数 = 21.3 21.3 + 8.6 = 0.71 θ ^ B ( 1 ) = B正面次数 B 正 面 + 反 面 总 次 数 = 11.7 11.7 + 8.4 = 0.58 {\color{blue}\hat\theta^{(1)}_A}=\frac{\text{A正面次数}}{A正面+反面总次数}=\frac{21.3}{21.3+8.6}=0.71\\[12pt]{\color{blue}\hat\theta^{(1)}_B}=\frac{\text{B正面次数}}{B正面+反面总次数}=\frac{11.7}{11.7+8.4}=0.58 θ^A(1)=A+A正面次数=21.3+8.621.3=0.71θ^B(1)=B+B正面次数=11.7+8.411.7=0.58

  • 5、 θ ^ A ( 1 ) {\color{blue}\hat\theta^{(1)}_A} θ^A(1) θ ^ B ( 1 ) {\color{blue}\hat\theta^{(1)}_B} θ^B(1) 作为初始值重复 1 → 4 1\to 4 14 ,直到迭代 t t t 次之后 θ ^ A ( t ) {\color{blue}\hat\theta^{(t)}_A} θ^A(t) θ ^ B ( t ) {\color{blue}\hat\theta^{(t)}_B} θ^B(t) 趋于稳定,,即可将其作为最终估计值。本例迭代十次后 θ ^ A ( 10 ) = 0.80 {\color{blue}\hat\theta^{(10)}_A}=0.80 θ^A(10)=0.80 θ ^ B ( 10 ) = 0.52 {{\color{blue}\hat\theta^{(10)}_B}=0.52} θ^B(10)=0.52,与案例 a中的估计值已经较为接近了

E-step:步骤 1 → 3 1\to 3 13 根据模型参数 θ A \color{blue}\theta_A θA θ B \color{blue}\theta_B θB 计算期望(隐变量分布),即 A 和 B 分布情况
M-step:步骤 4 4 4 根据 A 和 B 分布情况重新估算参数 θ ^ A \color{blue}\hat\theta_A θ^A θ ^ B \color{blue}\hat\theta_B θ^B ,可作为下一次迭代输入

补充

M − s t e p M-step Mstep M M M M L E MLE MLE 体现,令 i i i 表示第 i i i 次抛硬币, x i = 1 x_i=1 xi=1 表示第 i i i 次为正面 H H H,否则为反面 F F F,则每次抛硬币的概率可表示为:
p ( x i , θ ) = θ x i ( 1 − θ ) 1 − x i = { θ x i = 1 1 − θ    x i = 0 p(x_i,\theta)=\theta^{x_i}(1-\theta)^{1-x_i}=\left\{\begin{aligned}&\theta\qquad\qquad x_i=1\\ &1-\theta\qquad\; x_i = 0\\ \end{aligned}\right. p(xi,θ)=θxi(1θ)1xi={θxi=11θxi=0

每次试验 N N N 次,用极大似然估计出参数 θ \theta θ
θ ^ = arg max ⁡ θ L ( θ ) = arg max ⁡ θ ∏ i = 1 N p ( x i , θ ) MLE ≃ arg min ⁡ θ − ∑ i = 1 N log ⁡ p ( x i , θ ) = arg min ⁡ θ − ∑ i = 1 N θ x i ( 1 − θ ) 1 − x i NLL ∂ L ( θ ) ∂ θ = − ∑ i = 1 N ( x i θ + ( 1 − x i ) − 1 1 − θ ) = 0 令偏导为0 ⟹ θ ^ = ∑ i = 1 N x i N \begin{aligned} \hat\theta&=\argmax_\theta\mathcal L(\theta)=\argmax_\theta\prod^N_{i=1}p(x_i,\theta)\quad{\color{blue}\text{MLE}}\\ &\simeq \argmin_\theta-\sum^N_{i=1}\log p(x_i,\theta)=\argmin_\theta-\sum^N_{i=1}\theta^{x_i}(1-\theta)^{1-x_i}\quad{\color{blue}\text{NLL}}\\ &\frac{\partial \mathcal L(\theta)}{\partial\theta}=-\sum^N_{i=1}\left(\frac{x_i}{\theta}+(1-x_i)\frac{-1}{1-\theta}\right)=0\quad{\color{blue}\text{令偏导为0}}\\ &\qquad\qquad\qquad\Longrightarrow \color{blue}\hat\theta=\frac{\sum^N\limits_{i=1}x_i}{N} \end{aligned} θ^=θargmaxL(θ)=θargmaxi=1Np(xi,θ)MLEθargmini=1Nlogp(xi,θ)=θargmini=1Nθxi(1θ)1xiNLLθL(θ)=i=1N(θxi+(1xi)1θ1)=0令偏导为0θ^=Ni=1Nxi

由此可知 案例 b 中第 4 \color{blue}4 4 步已经蕴含了极大似然的思想

EM算法

期望最大算法的目的是解决具有隐变量的混合模型的参数估计,隐变量可以是每个样本类别 z i z_i zi(如案例 b 中的 A 和 B),该变量属于位置状态。

MLE 对 p ( x ∣ θ ) p(x|\theta) p(xθ) 参数的估计记为: θ M L E = a r g m a x θ log ⁡ p ( x ∣ θ ) \theta_{MLE}=\mathop{argmax}\limits_\theta\log p(x|\theta) θMLE=θargmaxlogp(xθ)。但多了一个未知隐变量不好求解,于是就要用到 EM 算法对其迭代求解: θ t + 1 = a r g m a x θ ∫ z log ⁡ [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) ⏟ 类 似 θ ^ A ( 0 ) θ ^ A ( 0 ) d z = a r g m a x θ E z ∣ x , θ t [ log ⁡ p ( x , z ∣ θ ) ] ⏞ 期望 ⏟ 期 望 最大化 \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]\underbrace{p(z|x,\theta^t)}_{类似{\color{blue}\hat\theta^{(0)}_A}{\color{blue}\hat\theta^{(0)}_A}}dz=\underbrace{\mathop{arg{\color{blue}max}}\limits_{\theta}\overbrace{{\color{blue}\mathbb{E}}_{z|x,\theta^t}[\log p(x,z|\theta)] }^{\color{blue}\text{期望}}}_{期望\color{blue}\text{最大化}} θt+1=θargmaxzlog[p(x,zθ)]θ^A(0)θ^A(0) p(zx,θt)dz=最大化 θargmaxEzx,θt[logp(x,zθ)] 期望

p ( z ∣ x , θ t ) p(z|x,\theta^t) p(zx,θt) 为隐变量概率分布(当 t = 1 t=1 t=1时,需要手动初始化其分布,与案例 b 中初始化 θ ^ A ( 0 ) {\color{blue}\hat\theta^{(0)}_A} θ^A(0) θ ^ B ( 0 ) {\color{blue}\hat\theta^{(0)}_B} θ^B(0)类似),上式具体可分为两步:

  • E step:给定初始参数,计算 log ⁡ p ( x , z ∣ θ ) \log p(x,z|\theta) logp(x,zθ) 在概率分布 p ( z ∣ x , θ t ) p(z|x,\theta^t) p(zx,θt) 下的期望
  • M step:计算得到使期望最大化的参数,新的参数可作为下一次迭代的输入
为什么迭代

怎么保证每次迭代都是朝着更好的方向?也就是需要证明: log ⁡ p ( x ∣ θ t ) ≤ log ⁡ p ( x ∣ θ t + 1 ) \color{blue}\log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1)
证明: log ⁡ p ( x ∣ θ ) = log ⁡ p ( z , x ∣ θ ) − log ⁡ p ( z ∣ x , θ ) \log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta) logp(xθ)=logp(z,xθ)logp(zx,θ),对左右两边求积分(关于概率分布 p ( z ∣ x , θ t ) p(z|x,\theta^t) p(zx,θt) 的积分): L e f t : ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x ∣ θ ) d z = log ⁡ p ( x ∣ θ ) ∫ z p ( z ∣ x , θ t ) d z ⏟ 1 = log ⁡ p ( x ∣ θ ) R i g h t : ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) d z ⏟ Q ( θ , θ t ) − ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ ) d z ⏟ H ( θ , θ t ) = Q ( θ , θ t ) − H ( θ , θ t ) \begin{aligned} &Left:\int_zp(z|x,\theta^t)\log p(x|\theta)dz=\log p(x|\theta)\underbrace{\int_zp(z|x,\theta^t)dz}_{1}=\log p(x|\theta)\\ &Right:\underbrace{\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz}_{Q(\theta,\theta^t)}-\underbrace{\int_zp(z|x,\theta^t)\log p(z|x,\theta)dz}_{H(\theta,\theta^t)}\\ &\qquad\qquad=Q(\theta,\theta^t)-H(\theta,\theta^t) \end{aligned} Left:zp(zx,θt)logp(xθ)dz=logp(xθ)1 zp(zx,θt)dz=logp(xθ)Right:Q(θ,θt) zp(zx,θt)logp(x,zθ)dzH(θ,θt) zp(zx,θt)logp(zx,θ)dz=Q(θ,θt)H(θ,θt)所以: log ⁡ p ( x ∣ θ ) = Q ( θ , θ t ) − H ( θ , θ t ) \log p(x|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t) logp(xθ)=Q(θ,θt)H(θ,θt) 由于 Q ( θ , θ t ) = ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) d z Q(\theta,\theta^t)=\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz Q(θ,θt)=zp(zx,θt)logp(x,zθ)dz θ t + 1 \theta^{t+1} θt+1 本身就是由最大化 Q ( θ , θ t ) Q(\theta,\theta^t) Q(θ,θt) 得到: θ t + 1 = a r g m a x θ ∫ z log ⁡ [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz θt+1=θargmaxzlog[p(x,zθ)]p(zx,θt)dz所以自然有: Q ( θ t + 1 , θ t ) ≥ Q ( θ , θ t ) Q(\theta^{t+1},\theta^t)\ge Q(\theta,\theta^t) Q(θt+1,θt)Q(θ,θt) θ \theta θ为随机变量,因此取 θ = θ t \theta=\theta^{t} θ=θt 也是成立的: Q ( θ t + 1 , θ t ) ≥ Q ( θ t , θ t ) Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t) Q(θt+1,θt)Q(θt,θt)要证 log ⁡ p ( x ∣ θ t ) ≤ log ⁡ p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1),需证: H ( θ t , θ t ) ≥ H ( θ t + 1 , θ t ) H(\theta^t,\theta^t)\ge H(\theta^{t+1},\theta^t) H(θt,θt)H(θt+1,θt) H ( θ t + 1 , θ t ) − H ( θ t , θ t ) = ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ t + 1 ) d z − ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ t ) d z = ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) = − K L ( p ( z ∣ x , θ t ) , p ( z ∣ x , θ t + 1 ) ) ≤ 0 \begin{aligned} &H(\theta^{t+1},\theta^t)-H(\theta^{t},\theta^t)\\&=\int_zp(z|x,\theta^{t})\log p(z|x,\theta^{t+1})dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta^{t})dz\\ &=\int_zp(z|x,\theta^t)\log\frac{p(z|x,\theta^{t+1})}{p(z|x,\theta^t)}\\ &=-KL(p(z|x,\theta^t),p(z|x,\theta^{t+1}))\le0 \end{aligned} H(θt+1,θt)H(θt,θt)=zp(zx,θt)logp(zx,θt+1)dzzp(zx,θt)logp(zx,θt)dz=zp(zx,θt)logp(zx,θt)p(zx,θt+1)=KL(p(zx,θt),p(zx,θt+1))0 综合上面的结果: log ⁡ p ( x ∣ θ t ) ≤ log ⁡ p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1)根据上面的证明可知似然函数每一步都会增大。

EM 公式推导

引入关于 z z z 的分布 q ( z ) ≠ 0 q(z)\neq 0 q(z)=0
log ⁡ p ( x ∣ θ ) = log ⁡ p ( z , x ∣ θ ) − log ⁡ p ( z ∣ x , θ ) = log ⁡ p ( z , x ∣ θ ) q ( z ) − log ⁡ p ( z ∣ x , θ ) q ( z ) \log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)=\log \frac{p(z,x|\theta)}{q(z)}-\log \frac{p(z|x,\theta)}{q(z)} logp(xθ)=logp(z,xθ)logp(zx,θ)=logq(z)p(z,xθ)logq(z)p(zx,θ)

分别对两边求期望 E q ( z ) \mathbb{E}{q(z)} Eq(z) L e f t : ∫ z q ( z ) log ⁡ p ( x ∣ θ ) d z = log ⁡ p ( x ∣ θ ) R i g h t : ∫ z q ( z ) log ⁡ p ( z , x ∣ θ ) q ( z ) d z − ∫ z q ( z ) log ⁡ p ( z ∣ x , θ ) q ( z ) d z = E L B O − K L ( q ( z ) , p ( z ∣ x , θ ) ) \begin{aligned} &Left:\int_zq(z)\log p(x|\theta)dz=\log p(x|\theta)\\ &Right:\int_zq(z)\log \frac{p(z,x|\theta)}{q(z)}dz-\int_zq(z)\log \frac{p(z|x,\theta)}{q(z)}dz\\&\qquad\qquad=ELBO-KL(q(z),p(z|x,\theta)) \end{aligned} Left:zq(z)logp(xθ)dz=logp(xθ)Right:zq(z)logq(z)p(z,xθ)dzzq(z)logq(z)p(zx,θ)dz=ELBOKL(q(z),p(zx,θ))

上式中,Evidence Lower Bound(ELBO)为下界,所以 log ⁡ p ( x ∣ θ ) ≥ E L B O \log p(x|\theta)\ge ELBO logp(xθ)ELBO,等于号取在 KL 散度为0是,即: q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(zx,θ),EM 算法的目的是将 ELBO 最大化,根据上面的证明过程,在每一步 EM 后,求得了最大的ELBO,并根据这个使 ELBO 最大的参数代入下一步中: θ ^ = a r g m a x θ E L B O = a r g m a x θ ∫ z q ( z ) log ⁡ p ( x , z ∣ θ ) q ( z ) d z \hat{\theta}=\mathop{argmax}\limits_{\theta}ELBO=\mathop{argmax}\limits_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz θ^=θargmaxELBO=θargmaxzq(z)logq(z)p(x,zθ)dz

由于 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta^t) q(z)=p(zx,θt) 的时候,这一步的最大值才能取等号,所以:
θ ^ = a r g m a x θ E L B O = a r g m a x θ ∫ z q ( z ) log ⁡ p ( x , z ∣ θ ) q ( z ) d z = a r g m a x θ ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) p ( z ∣ x , θ t ) d z = a r g m a x θ ∫ z p ( z ∣ x , θ t ) [ log ⁡ p ( x , z ∣ θ ) − log ⁡ p ( z ∣ x , θ t ) ⏟ θ 无关项,可看作常数 ] d z = a r g m a x θ ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) \begin{aligned} \hat{\theta}&=\mathop{argmax}\limits_{\theta}ELBO=\mathop{argmax}\limits_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{\color{blue}q(z)}dz\\ &=\mathop{argmax}\limits_\theta\int_zp(z|x,\theta^t)\log\frac{p(x,z|\theta)}{\color{blue}p(z|x,\theta^t)}d z\\ &=\mathop{argmax}\limits_\theta\int_zp(z|x,\theta^t)[\log{p(x,z|\theta)}-\underbrace{\log{\color{blue}p(z|x,\theta^t)}}_{\color{blue}\theta\text{无关项,可看作常数}}]d z\\ &=\color{blue}\mathop{argmax}\limits_\theta\int_z p(z|x,\theta^t)\log p(x,z|\theta) \end{aligned} θ^=θargmaxELBO=θargmaxzq(z)logq(z)p(x,zθ)dz=θargmaxzp(zx,θt)logp(zx,θt)p(x,zθ)dz=θargmaxzp(zx,θt)[logp(x,zθ)θ无关项,可看作常数 logp(zx,θt)]dz=θargmaxzp(zx,θt)logp(x,zθ)

上式就是 EM 迭代公式

由 Jensen 不等式导出 EM 公式

从 Jensen 不等式出发,也可导出 EM 公式:
log ⁡ p ( x ∣ θ ) = log ⁡ ∫ z p ( x , z ∣ θ ) d z = log ⁡ ∫ z p ( x , z ∣ θ ) q ( z ) q ( z ) d z = log ⁡ E q ( z ) [ p ( x , z ∣ θ ) q ( z ) ] ≥ E q ( z ) [ log ⁡ p ( x , z ∣ θ ) q ( z ) ] \begin{aligned} \log p(x|\theta)&=\log\int_zp(x,z|\theta)dz=\log\int_z\frac{p(x,z|\theta)q(z)}{q(z)}dz\\ &=\log \mathbb{E}{q(z)}\left[\frac{p(x,z|\theta)}{q(z)}\right]\ge \color{blue}{\mathbb{E}{q(z)}\left[\log\frac{p(x,z|\theta)}{q(z)}\right] } \end{aligned} logp(xθ)=logzp(x,zθ)dz=logzq(z)p(x,zθ)q(z)dz=logEq(z)[q(z)p(x,zθ)]Eq(z)[logq(z)p(x,zθ)]

上式蓝色项就是 ELBO,等号在 p ( x , z ∣ θ ) = C q ( z ) p(x,z|\theta)=Cq(z) p(x,zθ)=Cq(z) 时成立,于是:
∫ z q ( z ) d z = 1 C ∫ z p ( x , z ∣ θ ) d z = 1 C p ( x ∣ θ ) = 1 ⇒ q ( z ) = 1 p ( x ∣ θ ) p ( x , z ∣ θ ) = p ( z ∣ x , θ ) \begin{aligned} \int_zq(z)dz=\frac{1}{C}\int_zp(x,z|\theta)dz=\frac{1}{C}p(x|\theta)=1\\ \Rightarrow q(z)=\frac{1}{p(x|\theta)}p(x,z|\theta)=p(z|x,\theta) \end{aligned} zq(z)dz=C1zp(x,zθ)dz=C1p(xθ)=1q(z)=p(xθ)1p(x,zθ)=p(zx,θ)

其中 , θ ,\theta ,θ 应该是上一次迭代得到的 θ t \theta^t θt,于是就推导得到了 EM 迭代公式

广义 EM

EM 模型解决了概率生成模型的参数估计的问题,通过引入隐变量 z z z来学习模型参数 θ \theta θ,不同的模型对 z z z 可以有不同的假设。对学习任务 p ( x ∣ θ ) p(x|\theta) p(xθ),就是学习任务 p ( x , z ∣ θ ) p ( z ∣ x , θ ) \frac{p(x,z|\theta)}{p(z|x,\theta)} p(zx,θ)p(x,zθ)。在这个式子中,假定了在 E 步骤中, q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(zx,θ),如果 p ( z ∣ x , θ ) p(z|x,\theta) p(zx,θ) 无法求解,那么就需要使用采样(MCMC)或者变分推断等方法来近似推断这个后验。观察 KL 散度(衡量两个分布的距离)的表达式,为了最大化 ELBO,在固定的 θ \theta θ 时,需要最小化 KL 散度,于是: q ^ ( z ) = a r g m i n q K L ( p , q ) = a r g m a x q E L B O \hat{q}(z)=\mathop{argmin}\limits_qKL(p,q)=\mathop{argmax}\limits_qELBO q^(z)=qargminKL(p,q)=qargmaxELBO

广义 EM 的基本思路

E step: 固定模型参数的值,优化隐含数据的分布 q ^ t + 1 ( z ) = a r g m a x q ∫ z q t ( z ) log ⁡ p ( x , z ∣ θ ) q t ( z ) d z , f i x e d   θ \hat{q}^{t+1}(z)=\mathop{argmax}\limits_q\int_zq^t(z)\log\frac{p(x,z|\theta)}{q^t(z)}dz,\quad fixed\ \theta q^t+1(z)=qargmaxzqt(z)logqt(z)p(x,zθ)dz,fixed θ

M step:固定隐含数据分布,优化模型参数的值 θ ^ = a r g m a x θ ∫ z q t + 1 ( z ) log ⁡ p ( x , z ∣ θ ) q t + 1 ( z ) d z , f i x e d   q ^ \hat{\theta}=\mathop{argmax}\limits_\theta \int_zq^{t+1}(z)\log\frac{p(x,z|\theta)}{q^{t+1}(z)}dz,\quad fixed\ \hat{q} θ^=θargmaxzqt+1(z)logqt+1(z)p(x,zθ)dz,fixed q^

对于上面的积分: E L B O = ∫ z q ( z ) log ⁡ p ( x , z ∣ θ ) q ( z ) d z = E q ( z ) [ p ( x , z ∣ θ ) ] + E n t r o p y ( q ( z ) ) ELBO=\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathbb{E}_{q(z)}[p(x,z|\theta)]+Entropy(q(z)) ELBO=zq(z)logq(z)p(x,zθ)dz=Eq(z)[p(x,zθ)]+Entropy(q(z))

EM 的推广

EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再一遍一遍的迭代。如果在 EM 框架中,无法求解 z z z 后验概率,那么需要采用一些变种的 EM 来估算这个后验。

  • 基于平均场的变分推断,VBEM/VEM
  • 基于蒙特卡洛的EM,MCEM

参考文献

【1】期望最大
【2】EM算法原理总结
【3】从最大似然到EM算法浅解
【4】What is the expectation maximization algorithm?
【5】EM算法通俗实例(What is the expectation maximization algorithm?)
【6】EM算法求高斯混合模型參数预计——Python实现
【7】EM算法Python实战
【8】EM算法及其推广

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值