首页 > 编程语言 >期望最大化EM算法(2)

期望最大化EM算法(2)

时间:2023-05-28 21:12:41浏览次数:44  
标签:EM 最大化 frac log int 算法 dZ theta old

一般形式的EM算法

  期望最大化算法或者EM算法是,求解具有潜在变量的概率模型的最大似然解的一种通用方法。这里给出一般形式的EM算法,并启发式地推导EM算法最大化了似然函数。

  考虑一个概率模型,将其中所有的观测变量联合起来记为\(X\), 将所有的与观测变量对应的潜在变量记为\(Z\)。联合概率分布\(p(X,Z|\theta)\)由一组参数控制,记为\(\theta\)。我们的目标是最大化似然函数

\[p(X|\theta) = \sum_{Z}p(X,Z|\theta) \tag{9.69} \]

  假设: 直接最优化\(p(X|\theta)\)比较困难,但是最优化完整数据似然函数 \(p(X,Z|\theta)\)就比较容易。

接下来,引入一个定义在潜在变量上的分布\(q(Z)\),于是对于任意的\(q(Z)\),下面的分解成立[注1]

\[log\ p(X|\theta) = L(q,\theta) + KL(q||p) \tag{9.70} \]

其中,

\[L(q,\theta) = \sum_{Z} q(Z) log \ \{ \frac{p(X,Z|\theta)}{q(Z)} \} \tag{9.71} \]

\[KL(q||p) = \sum_Z q(Z) log \ \{ \frac {q(Z)}{p(Z|X,\theta)} \} \tag{9.72} \]

注意:\(L(q,\theta)\) 是概率分布\(q(Z)\) 的一个泛函,也是参数参数 \(\theta\)的一个函数。

  由于KL散度始终大于等于0,因此\(L(q,\theta)\)是\(log \ p(X|\theta)\)的一个下界。 关于对数似然函数、下界和KL散度的三者关系如图9.11所示。

Fig. 9.11

  下面是想通过最大化下界\(L(q,\theta)\)来最大化\(log \ p(X|\theta)\)。

  在EM算法中E步骤中,在参数\(\theta^{old}\)固定情况下,关于分布\(q(Z)\)最大化下界\(L(q,\theta^{old})\)。由于\(log \ p(X|\theta)\)不依赖\(q(Z)\),因此\(L(q,\theta^{old})\)的最大值出现在KL散度等于零的时候,即最大值出现在\(q(Z)\)与后验概率分布\(p(Z|X,\theta^{old})\)相等的时候。此时下界等于最大似然函数,如图9.12所示。

Fig. 9.12 当$q(Z)$设置为在当前参数$\theta^{old}$下的后验概率分布时,此时KL散度为0,似然函数的下界上移到与其值相同的位置。

  在EM算法的M步骤中,分布\(q(Z)\)保持固定,下界\(L(q,\theta)\)关于\(\theta\)最大化,得到了某个新的值\(\theta^{new}\),这会是的下界增大(除非已经达到了极大值)。由于在此过程中,分布\(q(Z)\)固定不变且是由旧的参数值\(\theta^{old}\)确定(\(q(Z)=p(Z|X,\theta^{old})\)),它不会等于新的后验概率分布\(p(Z|X,\theta^{new})\),从而KL散度非零。于是对数似然函数的增加量就等于下界的增加量加上KL散度(非零),因此对数似然函数的增加量大于下界的增加量。如图9.13所示。

Fig. 9.13

  将\(q(Z) = p(Z|X,\theta^{old})\)代入(9.71),可以看到E步骤之后,下界的形式为

\[L(q,\theta) = \sum_Z p(Z|X,\theta^{old}) log \ p(X,Z|\theta) - \sum_Z p(Z|X,\theta^{old}) log \ p(Z|X,\theta^{old}) = \mathcal{Q}(\theta, \theta^{old}) + 常数 \]

注1: 公式(9.70)是如何推导的呢?
  为方便理解,下面推导省略 \(\theta\),并以连续变量形式进行,离散形式同理。\(p(X) = \frac{p(X,Z)}{p(Z|X)}\),因为要引入关于潜在变量\(Z\)的概率分布\(q(Z)\),因此自然想到

\[p(X) = \frac{p(X,Z)}{p(Z|X)} = \frac{p(X,Z)}{q(Z)} \cdot \frac{q(Z)}{p(Z|X)} \]

两边同时取对数得到

\[log \ p(X) = log \ \frac{p(X,Z)}{q(Z)} + log \ \frac{q(Z)}{p(Z|X)} \]

观察公式(9.71)和(9.72),对数前面都乘以了\(q(Z)\),这里就要用到概率分布关于对应变量求积分或求和等于1的特性。于是对上述公式两边同时乘以\(q(Z)\)再取关于变量\(Z\) 的积分得

\[\int q(Z)log \ p(X) dZ = \int q(Z) log \ \frac{p(X,Z)}{q(Z)} dZ + \int q(Z) log \ \frac{q(Z)}{p(Z|X)} dZ \]

由于\(\int q(Z)log \ p(X) dZ\)中求积分是关于变量\(Z\)的,与\(log \ p(X)\)没有关系,可以写到积分号外面,因此\(\int q(Z)log \ p(X) dZ = log \ p(X) \int q(Z)dZ = log \ p(X)\)。因此对应公式(9.70)左侧,乘以\(q(Z)\)并取积分,并没有改变其值。最终得到

\[log \ p(X) = \int q(Z) log \ \frac{p(X,Z)}{q(Z)} dZ + \int q(Z) log \ \frac{q(Z)}{p(Z|X)} dZ \]

其中,

\[L(q,\theta) = \int q(Z) log \ \frac{p(X,Z)}{q(Z)} dZ \]

\[KL(q||p) = \int q(Z) log \ \frac{q(Z)}{p(Z|X)} dZ \]

使用离散写法就是上述公式(9.70)和(9.71)。更详细地推导方式可以参考《VAE变分自编码器公式推导》https://www.cnblogs.com/wolfling/p/16452537.html

标签:EM,最大化,frac,log,int,算法,dZ,theta,old
From: https://www.cnblogs.com/wolfling/p/17418985.html

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题
    六、用Strassen算法作为子进程来进行一个knn矩阵和一个nkn矩阵相乘,最快需要花费多长时间?对两个输入矩阵规模互换的情况,回答相同的问题。文心一言:Strassen算法是一种用于矩阵乘法的分治算法,它将原始的矩阵分解为较小的子矩阵,然后使用子矩阵相乘的结果来计算原始矩阵的乘积......
  • 2023-05-25 EMC
    andcanintheinjectionclampat750mm.AndnowI'veperformedathresholdanalysisonexactlythisfailposition.Andthisisnowinthepresentationonthenextslide.Andyoucanseewewentup1dBmicroampAnd102dBmicroampsiscategorytwo......
  • 文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题
    六、用Strassen算法作为子进程来进行一个knn矩阵和一个nkn矩阵相乘,最快需要花费多长时间?对两个输入矩阵规模互换的情况,回答相同的问题。文心一言:Strassen算法是一种用于矩阵乘法的分治算法,它将原始的矩阵分解为较小的子矩阵,然后使用子矩阵相乘的结果来计算原始矩阵的乘积。对......
  • 哲讯一文解答SAP S/4HANA的四种部署方式(MTE,STE,HEC,On-Premise)
    SAPS/4HANA是SAP的第4代ERP产品,也是SAP目前最主推的产品。虽然目前SAP推迟了ECC版本的截止支持时间,但越来越多的企业已经开始考虑,如何将传统 SAPECC系统升级或迁移至S/4HANA这个问题。以下将介绍SAPS/4HANA的4种部署方式,并辨析他们之间的不同之处。一、部署方式SAPS/4HANA主要......
  • 会声会影,premiere,Edius区别是什么?2023年视频编辑软件,哪个比较好呢?
    本文参考:http://t.csdn.cn/9hPYz自媒体如今已逐渐趋向于视频时代,新人UP主怀揣着“能恰到饭”的热情,“杀入”各大视频平台,只想求个“素质三连”,但这群无情的白嫖党们,总是“下次一定”以对之。是我不够帅吗?是我的内容不够优秀吗?还是我不够幽默呢?不。都不是。你与剪辑大神的距离,仅差一......
  • 算法刷题记录:乒乓球
    题目链接https://ac.nowcoder.com/acm/contest/19306/1033题目分析这题好坑,乒乓球的比分如果相差<2,还得继续比下去,但是题目里面没有说qwq。看了眼题解才发现这个点。AC代码#include<iostream>usingnamespacestd;//统计11分制和21分制的比分strings;intmain(......
  • redis操作-RedisTemplate保存和获取数据
    publicResultsendCode(@PathVariableStringphone){//从redis中获取验证码,如果获取到,返回ok//redis的key为手机号value为验证码Stringcode=redisTemplate.opsForValue().get(phone);if(!StringUtils.isEmpty(code)){ret......
  • iOS MachineLearning 系列(20)—— 训练生成CoreML模型
    iOSMachineLearning系列(20)——训练生成CoreML模型本系列前面的文章详细的介绍了在iOS中与AI能力相关的API的使用,也介绍了如何使用训练好的CoreML模型来实现更强大的AI能力。然而,无论是成熟的API提供的能力,还是各种各样的三方模型,有时候都并不能满足某一领域内的定制化需求。当我......
  • 数论-裴蜀定理-扩展欧几里得算法
    裴蜀定理对于任意的整数a、b,都存在一对整数x、y(注意x和y可以是负整数),使得\(ax+by=gcd(a,b)\)成立。或者可以这样描述:对方程\(ax+by=c,(a,b,c∈Z)\),只有满足\(gcd(a,b)|c\)(即a和b的最大公约数可以整除c),方程才有整数解。扩展欧几里得算法的证明已知\(gcd(a,b)=gcd(b,a\%b)\)......
  • 电赛控制类PID算法实现
    一、什么是PID学过自动控制原理的对PID并不陌生,PID控制是对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。PID算法的一般形式:PID控制系统原理框图二、PID离散化对PID连续系统离散化,从而方便在处理器上实现,PID离散表示形式:离散化后最终得到位置式PI......