10 EM(期望最大)算法

news2024/10/7 10:21:58

文章目录

  • 10 EM(期望最大)算法
    • 10.1 背景介绍
    • 10.2 EM算法公式
      • 10.2.1 EM算法公式收敛性证明
      • 10.2.2 EM算法公式导出
    • 10.3 广义EM算法
      • 10.3.1 EM有什么作用?
      • 10.3.2 为什么要引入广义EM?
      • 10.3.3 广义EM公式导出
      • 10.3.4 广义EM有什么不同
    • 10.4 EM算法变种

10 EM(期望最大)算法

10.1 背景介绍

概率图模型中,两个核心问题:学习参数、求解后验分布。EM算法就是一种通过MLE求出参数近似解的方法

10.2 EM算法公式

EM算法的具体公式表示为:
θ ( t + 1 ) = a r g max ⁡ θ ∫ Z log ⁡ P ( X , Z ∣ θ ) ⋅ P ( Z ∣ X , θ ( t ) ) d Z = a r g max ⁡ θ E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] \begin{align} \theta^{(t+1)} & = arg\max_{\theta} \int_Z { \log{P(X, Z| \theta)} \cdot P(Z| X, \theta^{(t)}) } {\rm d}Z \\ & = arg\max_{\theta} E_{Z|X, \theta^{(t)}} [\log P(X, Z| \theta)] \end{align} θ(t+1)=argθmaxZlogP(X,Zθ)P(ZX,θ(t))dZ=argθmaxEZX,θ(t)[logP(X,Zθ)]
其中上标中的 t t t t + 1 t+1 t+1表示第 t t t t + 1 t+1 t+1次迭代的参数结果,且参数满足: X = { x i } i = 1 N X = {\lbrace x_i \rbrace}_{i=1}^N X={xi}i=1N Z = { z i } i = 1 N Z = {\lbrace z_i \rbrace}_{i=1}^N Z={zi}i=1N,且 z z z为离散分布:

z z z C 1 C_1 C1 C 2 C_2 C2 … \dots C k C_k Ck
P ( z ) P(z) P(z) p 1 p_1 p1 p 2 p_2 p2 … \dots p k p_k pk

且EM算法分为E-Step和M-Step:

  1. E-Step——通过 t t t时刻的参数得到 t t t时刻的期望:
    θ ( t ) → E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] \theta^{(t)} \rightarrow E_{Z|X, \theta^{(t)}} [\log P(X, Z| \theta)] θ(t)EZX,θ(t)[logP(X,Zθ)]

  2. M-Step——将当前的最大期望作为移动方向求 t + 1 t+1 t+1​时刻的参数:
    θ ( t + 1 ) = a r g max ⁡ θ E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] \theta^{(t+1)} = arg\max_{\theta} E_{Z|X, \theta^{(t)}} [\log P(X, Z| \theta)] θ(t+1)=argθmaxEZX,θ(t)[logP(X,Zθ)]

10.2.1 EM算法公式收敛性证明

若要用EM算法求解参数的近似解,我们需要证明EM算法公式是收敛的,以保证迭代结果离实际结果越来越近。

若要证明EM算法公式收敛,需要有以下条件:

  1. 该算法公式有上确界
  2. 每一次的迭代结果递增

证明过程如下:

在这里插入图片描述

总而言之:

  1. 要证明 log ⁡ ( X ∣ θ ( t ) ) ≤ log ⁡ ( X ∣ θ ( t + 1 ) ) \log(X|\theta^{(t)}) \leq \log(X|\theta^{(t+1)}) log(Xθ(t))log(Xθ(t+1)),可以将其看作 log ⁡ ( X ∣ θ ) \log(X|\theta) log(Xθ) t + 1 t+1 t+1时刻比 t t t时刻大
  2. 上文通过证明 log ⁡ ( X ∣ θ ) \log(X|\theta) log(Xθ) t + 1 t+1 t+1时刻减 t t t时刻的值 ≥ 0 \geq 0 0,从而得出收敛性。

10.2.2 EM算法公式导出

下文通过两种方法将EM公式导出,核心思想很简单,就是分解likelihood:

在这里插入图片描述

10.3 广义EM算法

10.3.1 EM有什么作用?

  • 能够解决概率生成模型。条件有 P ( X ∣ θ ) P(X|\theta) P(Xθ)——likelihood、 X X X θ \theta θ时,EM用于估计 θ ^ \hat \theta θ^
  • 具体通过引入隐变量Z,使得 P ( X ) = ∫ Z P ( X , Z ) d Z P(X) = \int_Z P(X, Z) {\rm d}Z P(X)=ZP(X,Z)dZ,然后用MLE求解

10.3.2 为什么要引入广义EM?

引入广义EM必然是因为狭义的EM有问题,狭义的EM可以写为:
{ E − S t e p : q ^ = P ( Z ∣ X , θ )    ⟸    K L = 0 M − S t e p : θ ( t + 1 ) = a r g max ⁡ θ E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] \begin{cases} E-Step: & {\hat q} = P(Z|X, \theta) \impliedby KL = 0 \\ M-Step: & \theta^{(t+1)} = arg\max_{\theta} E_{Z|X, \theta^{(t)}} [\log P(X, Z| \theta)] \end{cases} {EStep:MStep:q^=P(ZX,θ)KL=0θ(t+1)=argmaxθEZX,θ(t)[logP(X,Zθ)]
从上面可以看出来我们引入了一个条件: K L = 0 KL=0 KL=0,这个条件并不是很好用:

  • 若非模型非常简单, q ^ = P ( Z ∣ X , θ ) {\hat q} = P(Z|X, \theta) q^=P(ZX,θ)实际上很难求解
  • 所以 q ^ \hat q q^这个参数也需要通过别的方法求出近似解

10.3.3 广义EM公式导出

我们将EM公式重新拆分到优化前的状态:
log ⁡ P ( X ∣ θ ) = L ( q , θ ) + K L ( q ∣ ∣ p ) , L ( q , θ ) = E L B O \log P(X|\theta) = {\mathcal L}(q, \theta) + KL(q||p), \quad {\mathcal L}(q, \theta) = ELBO logP(Xθ)=L(q,θ)+KL(q∣∣p),L(q,θ)=ELBO

{ E L B O = E q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) q ( Z ) ] K L ( q ∣ ∣ p ) = ∫ q ( Z ) ⋅ log ⁡ q ( Z ) P ( Z ∣ X , θ ) d Z \begin{cases} ELBO = E_{q(Z)} [\log \frac{P(X, Z|\theta)}{q(Z)}] \\ KL(q || p) = \int q(Z) \cdot \log \frac{q(Z)}{P(Z|X, \theta)} {\rm d}Z \end{cases} {ELBO=Eq(Z)[logq(Z)P(X,Zθ)]KL(q∣∣p)=q(Z)logP(ZX,θ)q(Z)dZ

所以可以将计算在这里添加一步:

  1. log ⁡ P ( X ∣ θ ) = L ( q , θ ) + K L ( q ∣ ∣ p ) \log P(X|\theta) = {\mathcal L}(q, \theta) + KL(q||p) logP(Xθ)=L(q,θ)+KL(q∣∣p)时固定 θ \theta θ(表示在同一个 θ \theta θ下),此时 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(Xθ)为定值,得到:
    q ^ = a r g min ⁡ q K L ( q ∣ ∣ p ) = a r g max ⁡ L ( q , θ ) {\hat q} = arg\min_q KL(q||p) = arg\max {\mathcal L}(q, \theta) q^=argqminKL(q∣∣p)=argmaxL(q,θ)

  2. 求出了 q ^ {\hat q} q^后,固定 q ^ {\hat q} q^ log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(Xθ)​依旧为定值,求:
    θ ^ = a r g max ⁡ θ L ( q ^ , θ ) {\hat \theta} = arg\max_{\theta} {\mathcal L}({\hat q}, \theta) θ^=argθmaxL(q^,θ)

于是就得到了广义EM的E-Step和M-Step:
{ E − S t e p : q ( t + 1 ) = a r g max ⁡ q L ( q , θ ( t ) ) M − S t e p : θ ( t + 1 ) = a r g max ⁡ θ L ( q ( t + 1 ) , θ ) \begin{cases} E-Step: & q^{(t+1)} = arg\max_q {\mathcal L}(q, \theta^{(t)}) \\ M-Step: & \theta^{(t+1)} = arg\max_{\theta} {\mathcal L}(q^{(t+1)}, \theta) \end{cases} {EStep:MStep:q(t+1)=argmaxqL(q,θ(t))θ(t+1)=argmaxθL(q(t+1),θ)
形式上也可以写成下面这两步(也可以叫做MM算法):
{ M 1 − S t e p : q ( t + 1 ) = a r g max ⁡ q L ( q , θ ( t ) ) M 2 − S t e p : θ ( t + 1 ) = a r g max ⁡ θ E q ( t + 1 ) [ log ⁡ P ( X , Z ∣ θ ) ] \begin{cases} M_1-Step: & q^{(t+1)} = arg\max_q {\mathcal L}(q, \theta^{(t)}) \\ M_2-Step: & \theta^{(t+1)} = arg\max_{\theta} E_{q^{(t+1)}} [\log P(X, Z| \theta)] \end{cases} {M1Step:M2Step:q(t+1)=argmaxqL(q,θ(t))θ(t+1)=argmaxθEq(t+1)[logP(X,Zθ)]

10.3.4 广义EM有什么不同

前后在计算上的差别就是期望的分布产生了变化:
E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ]    ⟹    E q ( t + 1 ) [ log ⁡ P ( X , Z ∣ θ ) ] = L ( q ( t + 1 ) , θ ) E_{Z|X, \theta^{(t)}} [\log P(X, Z| \theta)] \implies E_{q^{(t+1)}} [\log P(X, Z| \theta)] = {\mathcal L}(q^{(t+1)}, \theta) EZX,θ(t)[logP(X,Zθ)]Eq(t+1)[logP(X,Zθ)]=L(q(t+1),θ)
其实如果我们分解 L ( q , θ ) {\mathcal L}(q, \theta) L(q,θ)可以得到:
L ( q , θ ) = E q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) q ( Z ) ] = E q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) ] − E q ( Z ) [ log ⁡ q ( Z ) ] {\mathcal L}(q, \theta) = E_{q(Z)} [ \log \frac{P(X,Z|\theta)}{q(Z)} ] = E_{q(Z)} [ \log P(X,Z|\theta) ] - E_{q(Z)} [ \log q(Z) ] L(q,θ)=Eq(Z)[logq(Z)P(X,Zθ)]=Eq(Z)[logP(X,Zθ)]Eq(Z)[logq(Z)]
我们发现广义的EM就是比狭义的EM多减去了一个 E q ( Z ) [ log ⁡ q ( Z ) ] E_{q(Z)} [ \log q(Z) ] Eq(Z)[logq(Z)],我们发现这就是熵的定义,且熵 H [ q ( Z ) ] H[q(Z)] H[q(Z)] θ \theta θ无关:
H [ q ( Z ) ] = E q ( Z ) [ log ⁡ q ( Z ) ] H[q(Z)] = E_{q(Z)} [ \log q(Z) ] H[q(Z)]=Eq(Z)[logq(Z)]

10.4 EM算法变种

EM算法无法解决一切问题,若有条件无法求解,就可能要用变分推断、蒙特卡洛等方法做近似估计。

所以变种有:VI/VB、VBEM/VEM,MCEM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RS-232 RS-485 TTL电平标准 以及串口、COM口、UART口、USB转TTL、USB转串口

串口 即串行通信接口,与之相对应的另一种接口叫并口,并行接口。两者的区别是,传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输,而并口则将8个位一字排开…

2023 华为 Datacom-HCIE 真题题库 12(完结)--含解析

单项选择题 1.[试题编号:190728] (单选题)以下哪种工具不能用来匹配BGP路由条目? A、基本ACL B、高级ACL C、IP PREFIX LIST D、Community Filter 答案:B 解析:高级ACL是一种用于过滤IPv4报文的ACL&#…

记一次通过binlog日志恢复MySQL数据库的经历

通过binlog日志恢复MySQL数据库的数据 一、起因 起因是我在自己服务器上搭建的博客被黑客攻击,黑客删除了我的数据库并且要求支付比特币才给我恢复。 博客所有的表和数据都被清空,只留下了勒索金额和地址。如图 穷鬼如我当然是: 二、恢复数…

单源最短路的建图

1.热浪 信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/problem_show.php?pid1379 很裸的单源最短路问题&#xff0c;n2500,可以用dijksta或者spfa都能过&#xff0c;下面展示spfa的做法 #include<bits/stdc.h> usi…

【蓝桥杯选拔赛真题58】Scratch打气球游戏 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch打气球游戏 一、题目要求 编程实现 二、案例分析 1、角色分析

微信小程序——Git版本管理

一篇文章带你学会微信小程序中的Git版本管理 场景复现微信开发者工具中的Git连接远程仓库配置网络和认证提交工作区更改查看历史查看文件修改历史切换分支创建分支拉取、推送与抓取 微信官方开发文档&#xff1a;微信开放文档 场景复现 最近在前端的学习过程中&#xff0c;接触…

普通二本程序员想进大厂,我需要考研吗?好程序员来答!

最近好程序员看知乎有某网友提问&#xff1a; 1 普通二本&#xff0c;非科班出身&#xff0c;对Java感兴趣 2 已经开始工作半年了&#xff0c;普通技术 java 岗位 3 英语不好&#xff0c;四级没过&#xff0c;最高才 400 4 通过培训进入 java 岗位&#xff0c;基础知识不太好 5…

Python编程环境搭建:Linux(Ubuntu)系统安装Python

Linux 系统是为编程而生的&#xff0c;因此绝大多数的 Linux 发行版&#xff08;Ubuntu、CentOS 等&#xff09;都默认自带了 Python。有的 Linux 发行版甚至还会自带两个版本的 Python&#xff0c;例如最新版的 Ubuntu 会自带 Python 2.x 和 Python 3.x。 打开 Linux 发行版内…

浏览器相关开发事项

文章目录 存储浏览器持久化存储&#xff08;F12->应用->存储&#xff09;浏览器缓存&#xff08;F12->内存&#xff09;浏览器存储管理单位&#xff08;域名/IP为单位&#xff09;区别localStorage VS 浏览器缓存localStorage VS cookies 存储 浏览器持久化存储&…

Linux :: 【基础指令篇 :: (补充):(5)】:: 初步认识并解析文件详细信息内容:文件类型与用户访问权限说明、文件类型分类说明

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 经过了前面内…

如何理解数字化转型模式,适用于哪些企业?

如何理解「数字化转型」模式&#xff0c;适用于哪些企业&#xff0c;有何利弊&#xff1f; 这是一个很大的话题&#xff0c;本篇内容较长&#xff0c;全文6000字&#xff0c;心急的伙伴可先看目录&#xff0c;衷心希望以下内容能给大家带来帮助。&#xff08;如果担心一次看不…

案例分析 | 无代码助力国企数字化转型破旧立新

数字经济已成为国策&#xff0c;国企数字化转型更是排头兵&#xff0c;正成为数字化转型标杆。企业数字化转型是用信息技术全面重塑企业经营管理模式&#xff0c;是企业发展模式的变革与创新&#xff0c;是迈向数字经济时代的必然选择。 2022年9月底&#xff0c;国资委下发了重…

docker-compose启动mysql双机热备互为主从

1、环境准备 IP地址名称192.168.123.78mysql-m192.168.123.82mysql-s 2、安装mysql-m&#xff08;192.168.123.78&#xff09; 创建M主节点&#xff0c;通过下面的docker编排配置创建响应的目录和文件&#xff0c;目录下边创建 docker-compose.yml和my.cnf文件 docker-compo…

机器学习笔记 - 深度相机技术原理路线概览

一、深度相机的应用和原理 机器学习、人工智能、嵌入式视觉和处理技术的进步帮助创新者构建了能够在几乎没有人工监督的情况下导航环境的自主机器。此类设备的示例包括AMR(自主移动机器人),自动拖拉机,自动叉车等。 使这些设备真正自主需要它们能够在没有任何手动…

定时器搭配GPIO做定时扫描按键 -- STM32

STM32学习 定时器&#xff08;TIM&#xff09;定时器工作原理定时器相关参数相关函数和配置参数 通用输入/输出&#xff08;GPIO&#xff09;GPIO原理GPIO相关函数 实现定时扫描按键总结 在STM32F103系列的单片机应用中&#xff0c;定时器&#xff08;TIM&#xff09;和通用输入…

【名词解释】KiB和KB,MiB和MB,GiB和GB 等的区别以及1M带宽到底是多少?

目录 1. KiB和KB&#xff0c;MiB和MB&#xff0c;GiB和GB 2. 宽带速度 3. 单位换算 1. KiB和KB&#xff0c;MiB和MB&#xff0c;GiB和GB KiB和KB&#xff0c;MiB和MB&#xff0c;GiB和GB 等的区别: 1KB(kilobyte)10^31000byte, 1KiB(kibibyte)2^101024byte …

虹科干货 | 虹科Redis企业版数据库的延迟如此之小,proxy功不可没!

在Redis企业版集群的后台发生了许多事件&#xff0c;proxy&#xff08;代理&#xff09;隐藏了数据库客户端的所有活动。 大多数开发人员在构建应用程序时都会从小规模开始&#xff0c;使用简单的Redis开源&#xff08;Redis OSS&#xff09;数据库。在初期阶段&#xff0c;使用…

lnmp安装部署

文章目录 一、安装部署nginx二、安装部署mysql三、安装配置 PHP 解析环境四、部署 Discuz&#xff01;社区论坛 Web 应用 一、安装部署nginx 1、安装依赖包 systemctl stop firewalld setenforce 0 yum -y install pcre-devel zlib-devel gcc gcc-c make2、创建运行用户 use…

设计模式之~解释器模式

简述&#xff1a; 解释器模式&#xff0c;给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;这个解释器使用该表示来解释语言中的句子。 解释器模式需要解决的是&#xff0c;如果一种特定类型的问题发生的频率足够高&#xff0c;那么可…

基于安全产品DNS隧道流量分析

域名准备 选择哪家的云都没问题&#xff0c;这里我选择的TX云&#xff0c;因为之前注册过了&#xff0c;自己拿来做个流量分析不成问题。 域名添加解析记录 需要准备自己的vps作为DNS隧道的服务端&#xff0c;且需要添加ns记录 iodined 关闭53端口关闭开机自启 systemctl …