EM算法定义及推导

EM算法是一种迭代算法,传说中的上帝算法,俗人可望不可及。用以含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计EM算法定义输入:观测变量数据X,隐变量数据Z,联合分布$P(X,Z|\th

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

EM算法是一种迭代算法,传说中的上帝算法,俗人可望不可及。用以含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计

EM算法定义

输入:观测变量数据X,隐变量数据Z,联合分布\(P(X,Z|\theta)\)

输出:模型参数\(\theta\)

(1)选择初始模型参数\(\theta^{(0)}\),开始迭代

(2)E步:记\(\theta^{i}\)为第i次迭代参数\(\theta\)的估计值,计算在第i次迭代的期望$$Q(\theta,\theta^{(i)}) = E(logP(x,z|\theta)|x,\theta{(i)}))=\int_zlogp(x,z|\theta)p(z|\theta{(i)})$$
(3)M步:求使\(\theta^{(i+1)} = Q(\theta,\theta^{(i)})的最大值\)

(4)重复第(2)步和第(3)步

EM算法几点说明

(1)参数的初值可以任意选择,但需注意EM算法初始是敏感的

(2)E步求\(Q(\theta,\theta^{(i)})\),Q函数种的Z是为观测数据,X是观测数据,\(Q(\theta,\theta^{(i)})\)中的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值,每次迭代实际在求Q的极大值

(3)给出停止迭代的条件,一般是对较小的正数\(\xi_i,\xi_2\),若满足\(||\theta^{(i+1)} – \theta^{(i)} < \xi_i||或||Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})|| < \xi_2\)

EM算法推导

\[L(\theta)= argmaxlogP(x|\theta) = argmaxlog\int_zp(x,z|\theta)dz \]

\[L(\theta) = argmaxlog\int_z\frac{p(x,z|\theta)}{p(z|\theta^{(i)})}p(z|\theta^{(i)})dz \]

由于log函数为凹函数,则$$L(\theta) \geq \int_zlog\frac{p(x,z|\theta)}{p(z|\theta{(i)})}p(z|\theta{(i)})dz$$

\[L(\theta) \geq \int_zlogp(x,z|\theta)p(z|\theta^{(i)})dz – \int_zlog(p(z|\theta^{(i)}))p(z|\theta^{(i)})dz \]

由于减式后面与模型参数\(\theta\)无关,\(P(z|\theta^{(i)})是已知的\),所以只需关注减式前面的式自,令$$Q(\theta,\theta{(i)})=\int_zlogp(x,z|\theta)p(z|\theta{(i)})$$

和算法定义中的步骤(2)相同,将原L的优化问题转换为求原问题下界\(Q(\theta,\theta^{(i)})\)的最大值

因此,任何可以使\(Q(\theta,\theta^{(i)})\)增大的\(\theta\)都可以使\(L(\theta)\)增大,为了使\(L(\theta)\)有尽可能的增长,选择使\(Q(\theta,\theta^{(i)})\)达到最大,即$$\theta^{(i+1)} = argmaxQ(\theta,\theta^{(i)})$$

EM算法收敛性

定理1\(设P(x|\theta)为观测数据的似然函数,\theta^{(i)}为EM算法得到的参数估计序列,P(x|\theta^{(i)})为对应的似然函数序列,则P(x|\theta^{(i)})单调递增\)

定理2\(设L(\theta) = logP(x|\theta)为观测数据的似然函数,\theta^{(i)}为EM算法得到的参数估计序列,L(\theta^{(i)})为对应的似然函数序列\)

(1)\(如果P(x|\theta)有上界,则L(\theta^{(i)})收敛到某一值L^*\)
(2)\(在函数Q(\theta,\theta^{(i)})与L(\theta)满足一定条件下,由EM算法得到的参数估计序列\theta^{(i)}的收敛值\theta^*是L(\theta)的稳定值\)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120022.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 每天5分钟玩转docker容器技术 pdf_docker 创建容器

    每天5分钟玩转docker容器技术 pdf_docker 创建容器Docker介绍Docker简介和安装Docker是什么为什么使用Docker和普通虚拟机的对比打包、分发、部署小结Docker部署的优势Docker通常用来做什么重要概念:镜像、容器安装Ubuntu安装DockerWindows安装DockerDocker架构镜像加速源Docker命令服务相关命令镜像相关命令容器相关命令数据卷数据卷概念及其作用配置数据卷数据卷容器应用部署部署MySQL部署tomcat部署Nginx部署reids镜像原理容器转为镜像Dockfile案例部署springboot项目自定义ce

    2025年6月10日
    0
  • LLDP协议原理

    LLDP协议原理目录LLDP概念LLDP报文LLDP工作原理1、LLDP概念LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)。LLDP定义在802.1ab中,它是一个二层协议,它提供了一种标准的链路层发现方式。LLDP协议使得接入网络的一台设备可以将其主要的能力,管理地址,设备标识,接口标识等信息发送给接入同一个局域网络的其它设备。当一个设备从网络中接收到其它设备的这些信息时,它就将这些信息以MIB的形式存储起来。 这些MIB信息可用于发现设备的物理拓扑结构以及管理配置信息。

    2022年6月2日
    36
  • android toast全屏,Android Toast实现全屏显示

    android toast全屏,Android Toast实现全屏显示本文为大家分享了AndroidToast全屏显示的具体代码,供大家参考,具体内容如下废话不说,直接上代码:privatevoidtoastFullScreen(){Toasttoast=Toast.makeText(this,null,Toast.LENGTH_LONG*10*1000);toast.setGravity(Gravity.CENTER,0,0);Line…

    2022年9月13日
    0
  • 查看Android apk签名信息

    查看Android apk签名信息必须先安装jdk并配置好环境变量,然后运行->CMD->输入以下命令keytool-list-printcert-jarfileapp.apkWmImac-52:~fanyuanhua$keytool-list-printcert-jarfile/Users/fanyuanhua/2019-10/备忘录记事本/10.25/app-tencent-release-…

    2022年6月8日
    37
  • policy服务器未能登录,win7电脑提示group policy client服务未能登录的解决方法[通俗易懂]

    policy服务器未能登录,win7电脑提示group policy client服务未能登录的解决方法[通俗易懂]我们都清楚电脑使用久了总是会出现各种各样的问题,其中比较常见的就是系统提示了,最近有位win7系统用户使用电脑的过程中,系统总是会提示“grouppolicyclient服务未能登录”,用户不知道怎么解决,我们都清楚电脑使用久了总是会出现各种各样的问题,其中比较常见的就是系统提示了,最近有位win7系统用户使用电脑的过程中,系统总是会提示“grouppolicyclient服务未能登录”,…

    2022年5月14日
    76
  • db2操作字段

    db2操作字段

    2021年6月10日
    90

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号