• Expectation Maximization Algorithm


    Expectation Maximization Algorithm

    Introduction

    极大似然

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

    似然函数

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

    P(xi)=12πσe(xiμ)22σ2L(θ)=L(x1,x2,,xn;θ)=ni=1p(xiθ),θΘ

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

    H(θ)=lnL(θ)=lnni=1p(xiθ)=ni=1lnp(xiθ)

    极大似然思想

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

    计算极大似然的一般步骤

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

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

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

    f(xp)={pxq1x,x=0,10,x0,1

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

    试验

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

    a,b,cπ,p,qP(yθ)=zP(y,zθ)=zP(zθ)P(yz,θ)=πpy(1p)1y+(1π)qy(1q)1y

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

    极大似然

    似然函数:

    P(Yθ)=ni=1[πpyf(1p)1yJ+(1π)qyj(1q)1yj]

    极大似然估计:

    ˆθ=argmaxθlogP(Yθ)

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

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

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

    Algorithm

    img

    STEP

    1. 选取初值
    2. 获取样本
    3. 通过样本更新迭代参数值
    4. 多次迭代直到收敛

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

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

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

    X=1α(yi)=πpπp+(1π)qλ(yi)=(1π)qπp+(1π)q

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

    符号说明:

    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站的复旦老师的课程,后面对公式理解最多的地方是从李航的书上

  • 相关阅读:
    为什么Transformer模型中使用Layer Normalization(Layer Norm)而不是Batch Normalization(BN)
    MobileViT代码分析及添加SE注意力的实验结果
    jQuery实现动画登录页面+表单验证+数据采用localStorage本地储存
    关于Unity Inspector上的一些常用技巧,一般用于编辑器扩展或者其他
    系统分析与设计 复习
    Could not read from boot medium. System halted.
    前端研习录(32)——JavaScript 基于定时器实现防抖、节流
    Day802.JVM热点问题 -Java 性能调优实战
    关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决
    喜迎国庆,居家五黑,自己写个组队匹配叭
  • 原文地址:https://www.cnblogs.com/ykzhou/p/16255374.html