shenwl的个人博客分享 http://blog.sciencenet.cn/u/shenwl

博文

Expectation Maximization Algorithm

已有 2252 次阅读 2017-2-27 09:40 |系统分类:科研笔记

掐指一算,概率最大的模型最有可能出现…

最大似然

建立模型,求得其中各个参数、分布,是对生物学问题的数学解决之道。然而如何做参数估计?“最大似然(maximum likelihood)”给出了这样一种理论,即从模型总体随机抽取n组样本观测值后,最合理的参数估计应该使得从模型中抽取该n组样本观测值的概率最大。为此,我们可以定义这样一个函数:


L(θ)=L(x1,...,xn;θ)=ip(xi;θ)

称为参数θ相对于样本集X的似然函数(likelihood function)。我们的目的就是求得使L(θ)最大的参数θ,即:


θ^=argmaxL(θ)

为计算方便,我们可以进一步使用对数似然函数:


H(θ)=logL(θ)=logip(xi;θ)=ilogp(xi;θ)

到这里,我们就可以通过求导数(偏导数)的方式,解出该似然函数的极值点,从而得到相关参数θ了。最大似然估计,可以看作是已知观测结果,反推未知参数条件的过程。举个例子,假设我们有两个灌铅骰子A和B,分别投掷100次,我们就可以通过投掷结果来反推出这两个骰子各自的偏性。不过现实生活往往缺少如此直接的证据,很多数据我们观测不到,比如我们可能知道一共投掷了200次骰子,知道每次掷出的结果,但我们可能忘记了投掷的顺序,一会儿A一会儿B,使得我们无法直接计算似然函数,这时,我们就需要用到EM算法。


E一步,M一步

至此,由于存在未知变量z,我们原有的似然函数公式会发生变化,同时利用Jensen不等式,我们可以得到如下推导:


ilogp(xi;θ)=ilogzip(xi,zi;θ)=ilogziQi(zi)p(xi,zi;θ)Qi(zi)iziQi(zi)logp(xi,zi;θ)Qi(zi)

可见,为使L(θ)达到最大值,就是不断地固定θ,调整Q(z),再固定Q(z),调整θ,直至收敛。其中,p(xi,zi;θ)Qi(zi)值为常数,且zQi(zi)=1,可得如下推导:


Qi(zi)=p(xi,zi;θ)zp(xi,z;θ)=p(xi,zi;θ)p(xi;θ)=p(zi|xi;θ)

即一旦固定θQ(z)的计算公式就是后验概率问题。我们总结出一般的EM算法的步骤如下:

  1. 初始化分布参数θ

  2. 重复E步和M步直至收敛:

    • E-step:根据初始参数或者上一次迭代出来的参数值,计算未知变量的后验概率(即期望),作为新的估计值:

      Qi(zi)=p(zi|xi;θ)

    • M-step:根据未知变量新的估计值,最大化似然函数以得到新的参数:

      θ^=argmaxiziQi(zi)logp(xi,zi;θ)Qi(zi)


不过需要注意的是,EM算法实际需要知道样本的概率分布,否则似然函数里的p无法得到…

应用

对于贝叶斯和隐马等模型,未知变量是常有的事儿,EM算法在这些模型的建立过程中发挥了至关重要的作用。这里仅仅举一个基因表达聚类的简单例子,已知部分基因的表达谱,且采样数据符合广义高斯分布,未知变量是各个基因所属的类别,模型参数是高斯分布的均值、协方差矩阵等。这时,在参数估计的过程中,E步就是根据上一次迭代数据,将各个基因概率划分为各个类别,M步就是根据当前划分的类别重新计算各分布的参数。


原文链接https://wenlongshen.github.io/2017/02/26/EM/



https://blog.sciencenet.cn/blog-543513-1036344.html

上一篇:Principal Component Analysis
下一篇:Single Nucleotide Polymorphisms
收藏 IP: 103.19.64.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 04:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部