Expectation Maximization


1 Introduction

EM算法!这个是PCA外的,另外一个无监督学习的经典1。它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等2

我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数

但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。怎么办呢?这就是EM算法可以派上用场的地方了。

EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。不过没关系,我们基于当前得到的模型参数,继续猜测隐含数据(EM算法的E步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。

从上面的描述可以看出,EM算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E步和M步。一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。
    
eg: 一个最直观了解 EM算法思路的是K-Means算法,见之前写的 K-Means 聚类算法原理。在 K-Means 聚类时,每个聚类簇的质心是隐含数据。我们会假设 K 个初始化质心,即 EM 算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即 EM 算法的 M 步。重复这个 E 步和 M 步,直到质心不再变化为止,这样就完成了 K-Means 聚类。


2 Algorithm

2.1 Convex function

在这里插入图片描述

  • 理解为,期望的函数小于等于函数的期望
  • 我们一般把 t 当成 1/2 了,这里是更普世的定义(线性插值)

2.2 Jensens inequality(琴生不等式)

  • 推导
    在这里插入图片描述

  • 当 函数为 -log 时
    在这里插入图片描述

2.3 Gauss

高斯

高斯混合

3 Algorithm

3.1 问题引入

以高斯混合模型为例,When you have data that looks like:

Can you fit them using a single-mode Gaussian distribution? 显然是不行的咯。得用到 Gaussian Mixture Model(GMM)
在这里插入图片描述

  • l l l:模型的个数( 1 … … k 1……k 1k
  • α l \alpha _l αl:第 l l l 个高斯模型的权重,为啥不为 1/k 呢?因为不同高斯模型的 Σ \Sigma Σ(高低)不同, 1/k 加权的方式并不好
  • N N N:高斯的概率密度函数
  • X X X:样本( x 1 … … x N x_1……x_N x1xN
  • μ l \mu _l μl:高斯模型的均值
  • Σ l \Sigma _l Σl:高斯模型的方差

高斯混合高维情况

图中可以看出,不同区域的数据受到不同高斯分布的概率影响不同,是 soft 的不是 hard 的。

3.2 Maximum Likelihood Estimate(MLE)

Maximum Likelihood Estimate (MLE) 求参数 Θ \Theta Θ

在这里插入图片描述

  • Unlike single mode Gaussian, we can’t just take derivatives and let it equal zero easily.
  • We need to use Expectation-Maximization to help us solving this.

我们用迭代的思想 Θ ( g + 1 ) = f ( Θ ( g ) ) \Theta ^{(g+1)} = f(\Theta^{(g)}) Θ(g+1)=f(Θ(g)),EM的迭代方式如下
在这里插入图片描述

  • Θ \Theta Θ是常数
  • θ \theta θ是变量

3.2.1 Latent Variable

问题来了。Z是啥,原问题 Θ M L E \Theta_{MLE} ΘMLE 本来就很难求了(求导容易,求导后变量的结果不好计算),为什么还加入一个变量 Z,使问题复杂。这不符合逻辑啊!

非也,Z 叫做 “latent” variable(隐变量),在原问题中加入隐变量需要满足如下条件

  • 使原问题更容易求解(eg: 如上面的草图, Z 告诉了数据属于哪个高斯分布)
  • 不改变原数据的边缘分布 p ( x i ) = ∫ z i p ( x i ∣ z i ) ⋅ p ( z i ) d z i p\left ( x_i \right ) = \int_{z_i }p(x_i | z_i)\cdot p(z_i)d_{z_i} p(xi)=zip(xizi)p(zi)dzi
    (严格一点写大话每个概率都要加上条件概率 ∣ θ | \theta θ

证明加入latent variable 后没有改变x的边缘分布

  • p ( z i ) p(z_i) p(zi) 表示数据在哪个高斯中,也即是权重 α z i \alpha_{z_i} αzi

  • p ( x i ∣ z i ) p(x_i | z_i) p(xizi) 知道哪个高斯后可以写为 N ( x i ∣ μ z i , Σ z i ) N(x_i | \mu _{z_i},\Sigma _{z_i}) N(xiμzi,Σzi),N表示高斯分布。

立即推

  • p ( x i ) = ∫ z i p ( x i ∣ z i ) ⋅ p ( z i ) d z i = ∫ z i α z i ⋅ N ( x i ∣ μ z i , Σ z i ) d z i = ∑ z i k α z i ⋅ N ( x i ∣ μ z i , Σ z i ) p\left ( x_i \right ) = \int_{z_i }p(x_i | z_i)\cdot p(z_i)d_{z_i} = \int_{z_i }\alpha_{z_i}·N(x_i | \mu _{z_i},\Sigma _{z_i})d_{z_i} = \sum_{z_i}^{k}\alpha_{z_i}·N(x_i | \mu _{z_i},\Sigma _{z_i}) p(xi)=zip(xizi)p(zi)dzi=ziαziN(xiμzi,Σzi)dzi=zikαziN(xiμzi,Σzi)

    (严格一点的写的话要加上条件概率 ∣ θ | \theta θ

和公式1中 p ( x i ∣ θ ) p\left ( x_i| \theta \right ) p(xiθ) 相同( z i z_i zi 改写为 l l l 即可),所以加入Z并没有改变 x 的边缘分布
在这里插入图片描述

3.2.2 收敛性

用迭代的方法的话,要保证收敛咯,如何保证收敛性呢?
在这里插入图片描述
由公式1可知,保证 l o g p ( x ∣ Θ ( g + 1 ) ) > l o g p ( x ∣ Θ ( g ) ) log p(x | \Theta^{(g+1)})>log p(x | \Theta^{(g)}) logp(xΘ(g+1))>logp(xΘ(g))即可

显然 l o g p ( x ∣ θ ) = l o g p ( x , z ∣ θ ) − l o g p ( z ∣ x , θ ) log p(x | \theta) = log p(x,z | \theta) - logp(z|x,\theta) logp(xθ)=logp(x,zθ)logp(zx,θ) (联合概率密度的那个公式就可以看出来)

两边同时加上期望得到:

E [ l o g p ( x ∣ θ ) ] = E [ l o g p ( x , z ∣ θ ) − l o g p ( z ∣ x , θ ) ] E[ log p(x | \theta) ]= E[log p(x,z | \theta) - logp(z|x,\theta)] E[logp(xθ)]=E[logp(x,zθ)logp(zx,θ)]

分布为 p ( z ∣ x , Θ ( g ) ) p(z |x, \Theta^{(g)}) p(zx,Θ(g)),由期望的定义推出左边为:

E [ l o g p ( x ∣ θ ) ] = ∫ z l o g p ( x ∣ θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z = l o g p ( x ∣ θ ) ⋅ ∫ z p ( z ∣ x , Θ ( g ) ) d z = l o g p ( x ∣ θ ) E[ log p(x | \theta) ] = \int_z log p(x | \theta) \cdot p(z |x, \Theta^{(g)}) d_z= log p(x | \theta) \cdot\int_z p(z |x, \Theta^{(g)}) d_z=log p(x | \theta) E[logp(xθ)]=zlogp(xθ)p(zx,Θ(g))dz=logp(xθ)zp(zx,Θ(g))dz=logp(xθ)

(与z无关可以从积分中提出来)

由期望的定义推出右边:

∫ z l o g p ( x , z ∣ θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z − ∫ z l o g p ( z ∣ x , θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z \int_z log p(x,z | \theta) \cdot p(z |x, \Theta^{(g)}) d_z - \int_z log p(z |x, \theta) \cdot p(z |x, \Theta^{(g)}) d_z zlogp(x,zθ)p(zx,Θ(g))dzzlogp(zx,θ)p(zx,Θ(g))dz

简化一下成如下形式

l o g p ( x ∣ θ ) = ∫ z l o g p ( x , z ∣ θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z − ∫ z l o g p ( z ∣ x , θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z = Q ( θ , Θ ( g ) ) − H ( θ , Θ ( g ) ) log p(x | \theta) = \int_z log p(x,z | \theta) \cdot p(z |x, \Theta^{(g)}) d_z - \int_z log p(z |x, \theta) \cdot p(z |x, \Theta^{(g)}) d_z= Q(\theta,\Theta^{(g)}) - H(\theta,\Theta^{(g)}) logp(xθ)=zlogp(x,zθ)p(zx,Θ(g))dzzlogp(zx,θ)p(zx,Θ(g))dz=Q(θ,Θ(g))H(θ,Θ(g))

要证迭代收敛也即证 Q ( Θ ( g + 1 ) , Θ ( g ) ) − H ( Θ ( g + 1 ) , Θ ( g ) ≥ Q ( Θ ( g ) , Θ ( g ) ) − H ( Θ ( g ) , Θ ( g ) ) Q(\Theta^{(g+1)},\Theta^{(g)}) - H(\Theta^{(g+1)},\Theta^{(g)} \geq Q(\Theta^{(g)},\Theta^{(g)}) - H(\Theta^{(g)},\Theta^{(g)}) Q(Θ(g+1),Θ(g))H(Θ(g+1),Θ(g)Q(Θ(g),Θ(g))H(Θ(g),Θ(g))

我们发现 Q ( θ , Θ ( g ) ) Q(\theta,\Theta^{(g)}) Q(θ,Θ(g)) 和我们EM算法定义的迭代方式(公式2)是一样的。
在这里插入图片描述
为什么EM算法的迭代只要求 Q ( Θ ( g + 1 ) , Θ ( g ) ) ≥ Q ( Θ ( g ) , Θ ( g ) ) Q(\Theta^{(g+1)},\Theta^{(g)}) \geq Q(\Theta^{(g)},\Theta^{(g)}) Q(Θ(g+1),Θ(g))Q(Θ(g),Θ(g))
在这里插入图片描述
H函数被无情的抛弃, H ( Θ ( g + 1 ) , Θ ( g ) ) H(\Theta^{(g+1)},\Theta^{(g)}) H(Θ(g+1),Θ(g)) H ( Θ ( g ) , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) H(Θ(g),Θ(g)) 是什么关系呢?

if H ( Θ ( g ) , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) H(Θ(g),Θ(g)) H ( θ , Θ ( g ) ) , ∀ θ H(\theta,\Theta^{(g)}),\forall \theta H(θ,Θ(g))θ 都成立,那么 H ( Θ ( g + 1 ) , Θ ( g ) ) H(\Theta^{(g+1)},\Theta^{(g)}) H(Θ(g+1),Θ(g)) H ( Θ ( g ) , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) H(Θ(g),Θ(g))

这样的话,优化公式2就能保证 Q ( Θ ( g + 1 ) , Θ ( g ) ) − H ( Θ ( g + 1 ) , Θ ( g ) ≥ Q ( Θ ( g ) , Θ ( g ) ) − H ( Θ ( g ) , Θ ( g ) ) Q(\Theta^{(g+1)},\Theta^{(g)}) - H(\Theta^{(g+1)},\Theta^{(g)} \geq Q(\Theta^{(g)},\Theta^{(g)}) - H(\Theta^{(g)},\Theta^{(g)}) Q(Θ(g+1),Θ(g))H(Θ(g+1),Θ(g)Q(Θ(g),Θ(g))H(Θ(g),Θ(g)) ,迭代的思想就可行了。这是最完美的情况,其他情况就不好说咯。

问题来了, H ( Θ ( g ) , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) H(Θ(g),Θ(g)) H ( θ , Θ ( g ) ) , ∀ θ H(\theta,\Theta^{(g)}),\forall \theta H(θ,Θ(g))θ成立吗?我现在就明确的告诉你,这个是成立的,那如何证明呢?即 H ( Θ ( g ) , Θ ( g ) ) − H ( θ , Θ ( g ) ) ≥ 0 , ∀ θ H(\Theta^{(g)},\Theta^{(g)}) - H(\theta,\Theta^{(g)})≥0,\forall \theta H(Θ(g),Θ(g))H(θ,Θ(g))0θ 都成立。(想想咯)


证明如下,会利用到前面的 convex function 和 Jensens inequality。

   H ( Θ ( g ) , Θ ( g ) ) − H ( θ , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) - H(\theta,\Theta^{(g)}) H(Θ(g),Θ(g))H(θ,Θ(g))

= ∫ z l o g p ( z ∣ x , Θ ( g ) ) ⋅ p ( z ∣ x , Θ ( g ) ) d z − ∫ z l o g p ( z ∣ x , θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z = \int_z log p(z |x, \Theta^{(g)} )\cdot p(z |x, \Theta^{(g)}) d_z - \int_z log p(z |x, \theta) \cdot p(z |x, \Theta^{(g)}) d_z =zlogp(zx,Θ(g))p(zx,Θ(g))dzzlogp(zx,θ)p(zx,Θ(g))dz

= ∫ z l o g p ( z ∣ x , Θ ( g ) ) p ( z ∣ x , θ ) ⋅ p ( z ∣ x , Θ ( g ) ) d z = \int_z log \frac{p(z |x, \Theta^{(g)})}{ p(z |x,\theta)} \cdot p(z |x, \Theta^{(g)}) d_z =zlogp(zx,θ)p(zx,Θ(g))p(zx,Θ(g))dz

= ∫ z − l o g p ( z ∣ x , θ ) p ( z ∣ x , Θ ( g ) ) ⋅ p ( z ∣ x , Θ ( g ) ) d z = \int_z -log \frac{p(z |x,\theta)}{p(z |x, \Theta^{(g)})} \cdot p(z |x, \Theta^{(g)}) d_z =zlogp(zx,Θ(g))p(zx,θ)p(zx,Θ(g))dz

由 convex function 和 Jensens inequality 知,函数( − l o g - log log)的期望(在这种分布下 p ( z ∣ x , Θ ( g ) ) ) p(z |x, \Theta^{(g)})) p(zx,Θ(g)))大于等于期望的函数

≥ − l o g ∫ z p ( z ∣ x , θ ) p ( z ∣ x , Θ ( g ) ) ⋅ p ( z ∣ x , Θ ( g ) ) d z = − l o g 1 = 0 ≥ -log\int_z \frac{p(z |x,\theta)}{p(z |x, \Theta^{(g)})} \cdot p(z |x, \Theta^{(g)}) d_z = -log1 = 0 logzp(zx,Θ(g))p(zx,θ)p(zx,Θ(g))dz=log1=0

这样就证明了 H ( Θ ( g ) , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) H(Θ(g),Θ(g)) H ( θ , Θ ( g ) ) , ∀ θ H(\theta,\Theta^{(g)}),\forall \theta H(θ,Θ(g))θ

也即 H ( Θ ( g ) , Θ ( g ) ) H(\Theta^{(g)},\Theta^{(g)}) H(Θ(g),Θ(g)) H ( Θ ( g + 1 ) , Θ ( g ) ) H(\Theta^{(g+1)},\Theta^{(g)}) H(Θ(g+1),Θ(g))

结合公式2 Q ( Θ ( g + 1 ) , Θ ( g ) ) ≥ Q ( Θ ( g ) , Θ ( g ) ) Q(\Theta^{(g+1)},\Theta^{(g)}) ≥ Q(\Theta^{(g)},\Theta^{(g)}) Q(Θ(g+1),Θ(g))Q(Θ(g),Θ(g))

就有 Q ( Θ ( g + 1 ) , Θ ( g ) ) − H ( Θ ( g + 1 ) , Θ ( g ) ≥ Q ( Θ ( g ) , Θ ( g ) ) − H ( Θ ( g ) , Θ ( g ) ) Q(\Theta^{(g+1)},\Theta^{(g)}) - H(\Theta^{(g+1)},\Theta^{(g)} \geq Q(\Theta^{(g)},\Theta^{(g)}) - H(\Theta^{(g)},\Theta^{(g)}) Q(Θ(g+1),Θ(g))H(Θ(g+1),Θ(g)Q(Θ(g),Θ(g))H(Θ(g),Θ(g))

这样就证明了迭代的方法收敛了,所以我们只要优化公式2
在这里插入图片描述
保证 Q ( Θ ( g + 1 ) , Θ ( g ) ) ≥ Q ( θ , Θ ( g ) ) Q(\Theta^{(g+1)},\Theta^{(g)}) ≥ Q(\theta,\Theta^{(g)}) Q(Θ(g+1),Θ(g))Q(θ,Θ(g)),就可以保证迭代的方法收敛了

啰嗦了半天,看下简洁的版本
在这里插入图片描述

在这里插入图片描述

3 Example

以 GMM 为例


  1. EM算法的九层境界:​Hinton和Jordan理解的EM算法 ↩︎

  2. 干货|EM算法原理总结 ↩︎

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值