当前位置: 首页 > ds >正文

深入剖析EM算法:原理、推导与应用

内容摘要

本文详细介绍了最大期望算法(EM算法)。阐述其作为迭代进行极大似然估计的优化算法,在处理包含隐变量或缺失数据的概率模型参数估计中的应用。深入探讨EM算法的基本思想、推导过程、求解步骤及算法流程,助力读者理解并运用该算法解决实际问题。

关键词:EM算法;最大期望算法;极大似然估计;隐变量;参数估计

一、引言

在机器学习和统计学领域,处理包含隐变量或缺失数据的概率模型时,参数估计往往面临诸多挑战。最大期望算法(Expectation - Maximization Algorithm,EM算法)作为一种强大的迭代优化算法,为这类问题提供了有效的解决方案。EM算法通过迭代的方式进行极大似然估计,能够在复杂模型中高效地估计参数,在数据挖掘、机器学习、计算机视觉等众多领域有着广泛的应用。本文将深入剖析EM算法的原理、推导过程、算法流程以及实际应用,帮助读者全面掌握这一重要算法。

二、EM算法的基本思想

EM算法的基本思想基于两个步骤的交替计算,通过不断迭代来逐步逼近最优的参数估计值。

  1. 计算期望(E步):利用对隐藏变量的现有估计值,计算其极大似然估计值。在这一步中,根据当前模型参数的估计值,计算隐藏变量的后验概率分布,进而得到隐藏变量的期望。可以理解为在已知当前模型参数的情况下,对隐藏变量的可能取值进行合理推测和加权平均。
  2. 最大化(M步):最大化在E步上求得的极大似然值来计算参数的值。通过对期望似然函数进行最大化操作,更新模型的参数。这一步的目的是找到一组新的参数,使得模型在给定数据下的似然函数值更大,从而提高模型对数据的拟合程度。

M步上找到的参数估计值会被用于下一个E步计算中,这个过程不断交替进行,直到模型收敛,即参数估计值不再发生显著变化,或者似然函数值不再显著增加。

三、EM算法推导

对于 m m m个样本观察数据 x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) x^{(1)},x^{(2)},\cdots,x^{(m)} x(1),x(2),,x(m),假设样本的模型参数为 θ \theta θ,其极大化模型分布的对数似然函数为: θ = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ P ( x ( i ) ; θ ) \theta = \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\log P(x^{(i)};\theta) θ=θargmaxi=1mlogP(x(i);θ)

当得到的观察数据存在未观察到的隐含数据 z ( 1 ) , z ( 2 ) , ⋯ , z ( m ) z^{(1)},z^{(2)},\cdots,z^{(m)} z(1),z(2),,z(m)时,极大化模型分布的对数似然函数变为: θ = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ P ( x ( i ) ; θ ) = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \theta = \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\log P(x^{(i)};\theta)=\underset{\theta}{\arg\max}\sum_{i = 1}^{m}\log\sum_{z^{(i)}}Q_{i}(z^{(i)})\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} θ=θargmaxi=1mlogP(x(i);θ)=θargmaxi=1mlogz(i)Qi(z(i))Qi(z(i))P(x(i),z(i);θ)

由于上式不能直接求出 θ \theta θ,所以采用缩放技巧。根据Jensen不等式: log ⁡ ∑ j λ j y j ≥ ∑ j λ j log ⁡ y j \log\sum_{j}\lambda_{j}y_{j}\geq\sum_{j}\lambda_{j}\log y_{j} logjλjyjjλjlogyj,其中 λ j ≥ 0 \lambda_{j}\geq0 λj0 ∑ j λ j = 1 \sum_{j}\lambda_{j}=1 jλj=1

引入一个未知的新分布 Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i)),使得 ∑ i = 1 m log ⁡ ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m log ⁡ ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \sum_{i = 1}^{m}\log\sum_{z^{(i)}}P(x^{(i)},z^{(i)};\theta)=\sum_{i = 1}^{m}\log\sum_{z^{(i)}}Q_{i}(z^{(i)})\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}\geq\sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} i=1mlogz(i)P(x(i),z(i);θ)=i=1mlogz(i)Qi(z(i))Qi(z(i))P(x(i),z(i);θ)i=1mz(i)Qi(z(i))logQi(z(i))P(x(i),z(i);θ)

为了满足Jensen不等式中的等号,令 P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = c \frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}=c Qi(z(i))P(x(i),z(i);θ)=c c c c为常数)。又因为 Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i))是一个分布,满足 ∑ z Q i ( z ( i ) ) = 1 \sum_{z}Q_{i}(z^{(i)}) = 1 zQi(z(i))=1,综上可得: Q i ( z ( i ) ) = P ( x ( i ) , z ( i ) ; θ ) ∑ z P ( x ( i ) , z ( i ) ; θ ) = P ( x ( i ) , z ( i ) ; θ ) P ( x ( i ) ; θ ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_{i}(z^{(i)})=\frac{P(x^{(i)},z^{(i)};\theta)}{\sum_{z}P(x^{(i)},z^{(i)};\theta)}=\frac{P(x^{(i)},z^{(i)};\theta)}{P(x^{(i)};\theta)}=P(z^{(i)}|x^{(i)};\theta) Qi(z(i))=zP(x(i),z(i);θ)P(x(i),z(i);θ)=P(x(i);θ)P(x(i),z(i);θ)=P(z(i)x(i);θ)

此时,如果 θ \theta θ使得上式成立,那么 ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} i=1mz(i)Qi(z(i))logQi(z(i))P(x(i),z(i);θ)是包含隐藏数据的对数似然的一个下界。如果能极大化这个下界,则也在尝试极大化对数似然。即需要最大化下式: arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} θargmaxi=1mz(i)Qi(z(i))logQi(z(i))P(x(i),z(i);θ),简化得: arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x ( i ) , z ( i ) ; θ ) \underset{\theta}{\arg\max}\sum_{i = 1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})\log P(x^{(i)},z^{(i)};\theta) θargmaxi=1mz(i)Qi(z(i))logP(x(i),z(i);θ),这就是EM算法的M步

Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_{i}(z^{(i)}) = P(z^{(i)}|x^{(i)};\theta) Qi(z(i))=P(z(i)x(i);θ)可理解为基于条件概率分布 P ( z ( i ) ∣ x ( i ) ; θ ) P(z^{(i)}|x^{(i)};\theta) P(z(i)x(i);θ)计算 z ( i ) z^{(i)} z(i)的期望,即为E步。

四、图解EM算法

考虑到含有隐变量的模型 p ( x ∣ θ ) p(x|\theta) p(xθ)复杂,难以求解析解,为了消除隐变量的影响,可以选择一个不包含隐变量的模型 r ( x ∣ θ ) r(x|\theta) r(xθ),使其满足一定条件。EM算法求解示意图如下:
在这里插入图片描述

图1 EM算法求解示意图

在图中,目标模型 p ( x ∣ θ ) p(x|\theta) p(xθ)复杂,难以直接求解。求解步骤如下:

  1. 选取 θ 1 \theta_{1} θ1,使得 r ( x ∣ θ 1 ) ≤ p ( x ∣ θ 1 ) r(x|\theta_{1})\leq p(x|\theta_{1}) r(xθ1)p(xθ1),然后对此时的 r r r求取最大值,得到极值点 θ 2 \theta_{2} θ2,实现参数的更新。
  2. 重复以上过程到收敛为止,在更新过程中始终满足 r ≤ p r\leq p rp。通过不断迭代,逐步逼近最优的参数估计值,使得模型能够更好地拟合数据。

五、EM算法流程

EM算法的输入包括观察数据 x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) x^{(1)},x^{(2)},\cdots,x^{(m)} x(1),x(2),,x(m),联合分布 p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ),条件分布 p ( z ∣ x ; θ ) p(z|x;\theta) p(zx;θ)以及最大迭代次数 J J J

  1. 随机初始化模型参数 θ \theta θ的初值 θ 0 \theta^{0} θ0
  2. 设当前迭代次数为 j j j j j j从1到 J J J进行迭代:
    • E步:计算联合分布的条件概率期望。
      • 计算 Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ j ) Q_{i}(z^{(i)}) = P(z^{(i)}|x^{(i)};\theta^{j}) Qi(z(i))=P(z(i)x(i);θj)
      • 计算 L ( θ , θ j ) = ∑ i = 1 m ∑ z ( i ) log ⁡ P ( z ( i ) ∣ x ( i ) ; θ j ) log ⁡ P ( x ( i ) , z ( i ) ; θ ) L(\theta,\theta^{j})=\sum_{i = 1}^{m}\sum_{z^{(i)}}\log P(z^{(i)}|x^{(i)};\theta^{j})\log P(x^{(i)},z^{(i)};\theta) L(θ,θj)=i=1mz(i)logP(z(i)x(i);θj)logP(x(i),z(i);θ)
    • M步:极大化 L ( θ , θ j ) L(\theta,\theta^{j}) L(θ,θj),得到 θ j + 1 \theta^{j + 1} θj+1,即 θ j + 1 = arg ⁡ max ⁡ θ L ( θ , θ j ) \theta^{j + 1}=\underset{\theta}{\arg\max}L(\theta,\theta^{j}) θj+1=θargmaxL(θ,θj)
    • 如果 θ j + 1 \theta^{j + 1} θj+1收敛,则算法结束,否则继续进行E步迭代。
  3. 输出模型参数 θ \theta θ

在实际应用中,需要根据具体问题选择合适的联合分布 p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ)和条件分布 p ( z ∣ x ; θ ) p(z|x;\theta) p(zx;θ),并合理设置最大迭代次数 J J J,以确保算法能够收敛到满意的结果。

六、总结

EM算法作为处理包含隐变量或缺失数据概率模型参数估计的有效方法,通过巧妙的迭代策略,在E步和M步的交替执行中不断优化模型参数。其基本思想简单而深刻,推导过程严谨且富有逻辑性,为解决复杂模型的参数估计问题提供了有力的工具。

从图解EM算法的过程可以直观地看到,它如何通过逐步迭代逼近最优解,使得模型更好地拟合数据。

http://www.xdnf.cn/news/2157.html

相关文章:

  • CV大模型、NLP大模型与语音处理技术全景解析-AI学习Day5
  • 三维天地智能路径规划引擎:以算法驱动,重新定义智能路径优化技术
  • 前端面试(Vue React)内容目录与备考建议
  • NCCL通信中Group与独立操作的区别
  • OpenCv高阶(九)——背景建模
  • 每天学一个 Linux 命令(31):md5sum
  • SQL语句练习 自学SQL网 基础查询
  • 伟世通与火山引擎深度合作 前沿AI智能座舱解决方案亮相上海车展
  • playwright的简单使用
  • 信令与流程分析
  • 谷歌终止新冠疫情时期结构化数据支持:SEO影响与应对策略
  • 14-DevOps-快速部署Kubernetes
  • K8S Service 原理、案例
  • 零基础教学:用GISBox将RVT转为3DTiles
  • 力扣-hot100(滑动窗口最大值)
  • Promise简介和使用
  • HDRnet——双边滤波和仿射变换的摇身一变
  • 如何在 MinGW 和 Visual Studio (MSVC) 之间共享 DLL
  • Freertos--统计所有任务栈信息以及CPU占比和钩子函数
  • Flutter Dart 集合类型List Set Map详解军 以及循环语句 forEaclh map where any every
  • 【动手学大模型开发】VSCode 连接远程服务器
  • 苹果iosApp提交审核常见问题--内购订阅篇
  • 技术视界 | 从自然中获取智慧: 仿生机器人如何学会“像动物一样思考和行动”
  • 《算法笔记》4.2小节——算法初步->哈希
  • 【Redis】hash类型
  • 每日c/c++题 备战蓝桥杯(P1252洛谷 马拉松接力赛)
  • 《深入理解 AOP》
  • 数图信息科技邀您共赴第二十五届中国零售业博览会
  • spring中的@bean注解详解
  • Springoot、Flowable快速学习