5

Expectation Maximization Algorithm - 1zeryu

 2 years ago
source link: https://www.cnblogs.com/ykzhou/p/16255374.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Expectation Maximization Algorithm

Introduction

假设我们需要调查我们学校的身高发布,并且假设这个身高分布满足正态分布,那么我们的目的就是找到满足最符合这个分布的参数μ和σ2,对此我们抽样取得数据,并且抽样样本n=200

对于以上问题,由于我们对参数μ和σ2未知,也就是我们对概率函数未知,并且我们的目的是由已知数据推导我们的概率参数,暂且对每个数据建立概率模型

P(xi)=1√2πσe−(xi−μ)22σ2L(θ)=L(x1,x2,⋯,xn;θ)=n∏i=1p(xi∣θ),θ∈Θ

上述公式的θ表示概率参数的μ和σ,L(θ)表示多个数据的联合概率函数,那么对于这个函数的处理就用到了我们极大似然的思想,即我们的目的是max L(θ),由于连乘符号不便于计算,以此取对数得到对数似然函数

H(θ)=lnL(θ)=lnn∏i=1p(xi∣θ)=n∑i=1lnp(xi∣θ)

极大似然思想

就像我们对于线性回归时希望我们构造出来的曲线对已有数据的拟合最佳,这样才能更好的预测未来数据,极大似然的思想也是如此,希望对已有数据的解释最佳,也就是我们的概率函数要"站的住脚",就需要似然函数越大越好,这有点像数据的反推

计算极大似然的一般步骤

  1. 写出似然函数;
  2. 对似然函数取对数,并整理;
  3. 求导数,令导数为 0,得到似然方程;
  4. 解似然方程,得到的参数。

三硬币问题 -- 计算极大似然的困境

对于一个抛硬币的问题,我们可以取随机变量X,它满足伯努利分布,假设p是硬币朝上的概率,q=1−p,f(x|p)表示概率函数

f(x∣p)={pxq1−x,x=0,10,x≠0,1

但是我们假设我们获得了三个神奇的硬币,这三个硬币我们并不知道它正面朝上的概率,于是我们只能通过试验获得样本反推它的概率,这里就要用到我们的极大似然的方法,我们对这个问题建立相应的概率模型

由于技术问题,我们只能进行一下试验,对于三个硬币a,b,c,我们抛三次硬币,如果a=1,那么我们取b的值,反之我们取c的值,(这里的取值是0和1,正面表示1,反面表示0)

假设对于三个硬币a,b,c它们的正面朝上的概率为π,p,qP(y∣θ)=∑zP(y,z∣θ)=∑zP(z∣θ)P(y∣z,θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y

符号说明: P(y|θ)表示再概率参数π,p,q下y的取值概率,z表示硬币a的取值,作为本次试验的隐数据(因为我们并不对a的取值做统计,所以是为观测数据)

似然函数:

P(Y∣θ)=n∏i=1[πpyf(1−p)1−yJ+(1−π)qyj(1−q)1−yj]

极大似然估计:

ˆθ=argmaxθlogP(Y∣θ)

好的,我们省略了中间的许多步骤,但是最终的目的是明确的,就是找到最佳的θ来最大化我们的联合似然函数,但是问题来了,这个似然函数似乎不好计算,

  1. 变量不止一个,包含概率参数π,p,q
  2. 联合概率密度,要通过对数化计算

如果用一般的方法,我们似乎要废掉很多头发,但是这就是我要引入的EM算法,也就是说EM算法可以用来计算这种极大似然非常复杂的情况

Algorithm

img

  1. 通过样本更新迭代参数值
  2. 多次迭代直到收敛

我们用三硬币问题来解释这个算法的步骤,

对于这个问题,我们首先把我们的概率参数π,p,q随机初始化获得初始值,再通过n次试验获得数据样本,对于样本的描述如下,我们已知进行了n次采样,并且获得了每次采样的值yi,接下来就是算法的第三步,通过样本结合概率函数来优化你的参数,这里的数学原理要仔细思考

对于每一次实验,我们可以得到我们的概率函数如下

X=1α(yi)=πpπp+(1−π)qλ(yi)=(1−π)qπp+(1−π)q
X=0β(yi)=π(1−p)π(1−p)+(1−π)(1−q)γ(yi)=(1−π)(1−q)π(1−p)+(1−π)(1−q)

符号说明:

a(yi)表示实验序号i下,实验结果X=1,结果来自硬币b的概率;λ(yi)表示同样条件下,结果来自硬币c的概率;β(yi)表示实验结果X=0,结果来源于硬币b的概率,γ(yi)表示结果出自c的概率

那么我们可以给出下面的优化方程来迭代你概率参数

π=∑x=1α(yi)+∑x=0β(yi)np=∑x=1α(yi)∑x=1α(yi)+∑x=0β(yi)q=∑x=1λ(yi)∑x=1λ(yi)+∑x=0γ(yi)

理解上面的优化方程,那么EM算法的基本层面是没有问题了,这里就不能给出更过的解释了,其实也是一种基于先验计算后验的方法

后续就是循环迭代,对于这个算法其实和K-means算法有相似之处,并且可以说明的是,它和K-means都可以用于聚类模型

再循环迭代上,可以说明的是,对于循环的结束怎么判断,

  • 参数变动小于临界值: $\left|\theta{(i+1)}-\theta{(i)}\right|<\varepsilon_{1} $
  • Q函数变动小于临界值:‖Q(θ(i+1),θ(i))−Q(θ(i),θ(i))‖<ε2

对于Q函数的解释: 完全数据的对数似然函数logP(Y,Z|Θ)关于在给定观测数 据Y和当前函数Θ(i)下对未观测数据Z的条件概率分布$ P(Z|Y, Θ(i)),的期望称为Q$函数

Q(θ,θ(l))=EZ[logP(Y,Z∣θ)∣Y,θ(l)]

对Q函数的理解具体看后面的数学推导

Mathematical Explanation of Algorithms

我们已经了解了EM算法的步骤,但是对于其中较为深刻的数学原理还不知道,这里其中包括了一下几个问题,

  1. 为什么EM算法能近似实现对观测数据的极大似然估计
  2. 为什么在EM算法下,概率参数最终能够收敛

对于上面的一些问题包括Q函数的来源包含复杂的数学推导,由于这些的数学推导不简单,内容比较多,推荐取看李航的《统计学习方法》,这本书给出了详细的解释

Application of EM Algorithm

在高斯混合模型(GMM)上的运用

EM算法的一个重要应用是高斯混合模型的参数估计,高斯混合模型应用广泛(比如机器学习的聚类),且由于他再极大似然上存在难度,所以EM算法是高斯混合模型参数估计的很有效的方法,

对于这个的具体内容可以详细看我的其他博客

在无监督学习上的应用

Conclusion

自我收获: EM算法是我目前学习的数学推导最多的算法,算上去,我从了解各种概率模型开始,然后先验分布和后验分布,其中看了很多他人的博客,在最开始理解算法的时候是看了B站的复旦老师的课程,后面对公式理解最多的地方是从李航的书上


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK