CS229与《统计学习方法》的EM算法理解和比较,收敛性证明

本文对比分析了吴恩达老师cs229课程与《统计学习方法》中EM算法的不同,详细阐述了EM算法的流程及收敛性证明,适合初学者理解和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于吴恩达老师的cs229讲义和视频与《统计学习方法》这本书上的EM算法,作为初学者,强烈建议只看前者,恐怕是我比较菜只看后者的话会有很多地方不明白,比如为什么似然函数不是 ∏ i = 1 n P ( y i ; θ ) \prod\limits_{i=1}^{n}P(y_i;\theta) i=1nP(yi;θ)而是 P ( Y ) P(Y) P(Y)呢?导致后面的收敛性证明也有这样的疑问,为什么后面EM应用高斯那部分的E步的Q函数成了那样?想破了脑子也想不清楚。如果看cs229的话,很容易理解,但是推导我更喜欢后者的推导,关于推导我补充了我认为缺少的那部分,参考EM算法推导。接下来对两者的EM算法进行简单比较。

说明:下面的 p θ ( ) 和 p ( ; θ ) p_\theta()和p(;\theta) pθ()p(;θ)是一样的,只是写法不同,都只是表示模型参数是 θ \theta θ而已。

1、EM算法比较

1.1、《统计学习方法》之EM算法流程

输入:观测数据 Y Y Y,联合分布 P ( Y , Z ; θ ) P(Y,Z;\theta) P(Y,Z;θ),条件分布 P ( Z ∣ Y ; θ ) P(Z|Y;\theta) P(ZY;θ)
输出:模型参数 θ \theta θ

(1)、选择参数的初始值 θ 0 \theta_0 θ0开始进行迭代;
(2)、E(Expection)步:记第n次迭代参数为 θ n \theta_n θn,那么计算 n + 1 n+1 n+1次的E步

Q ( θ ∣ θ n ) = ∑ i = 1 n ∑ z p θ n ( z ∣ y i ) l n p θ ( y i , z ) Q(\theta|\theta_n)=\sum\limits_{i=1}^{n} \sum\limits_{z}p_{\theta_n}(z|y_i)ln^{p_\theta(y_i,z)} Q(θθn)=i=1nzpθn(zyi)lnpθ(yi,z)

(3)、M(Maximization)步:求使得 Q ( θ ∣ θ n ) Q(\theta|\theta_n) Q(θθn)最大化的 θ n + 1 \theta_{n+1} θn+1,即确定第 n + 1 n+1 n+1次的模型参数

θ n + 1 = arg ⁡ max ⁡ θ Q ( θ ∣ θ n ) \theta_{n+1}=\arg\max\limits_{\theta}Q(\theta|\theta_n) θn+1=argθmaxQ(θθn)

(4)、重复(2),(3)直到收敛。

注意:上面这个EM算法是本人对原有的EM算法的 Q Q Q函数进行了修改的,加了最外层的 ∑ i = 1 n \sum\limits_{i=1}^{n} i=1n,同时这个Q函数就跟cs229讲义上的Q函数一样了。 E步是写出 Q Q Q函数,在后面的高斯混合模型中可以看到,使用该EM算法是先求出Q函数,也就是先求出联合分布 p ( y , z ) p(y,z) p(y,z),接着写出似然函数最后求期望得到Q函数,在M步求使得函数极大化的 θ n + 1 \theta_{n+1} θn+1值作为下一次E步的 θ \theta θ值使用,如此循环下去直到收敛。

补充:书上的似然函数是下面这样的

Q ( θ , θ i ) = E Z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ i ] = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) Q(\theta,\theta^i)=E_{Z}[logP(Y,Z|\theta)|Y,\theta^i]\\=\sum\limits_{Z}logP(Y,Z|\theta)P(Z|Y,\theta^i) Q(θ,θi)=EZ[logP(Y,Zθ)Y,θi]=ZlogP(Y,Zθ)P(ZY,θi)

1.2、CS229之EM算法流程

在这里插入图片描述

注意:这里的 x x x和上面的 y y y都是只观察数据(显变量), z z z表示隐变量。在E步骤是初始给定了 θ 0 \theta_0 θ0作为初始参数值的,在上面没写出来。可以发现这个 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))跟前面的EM算法的 p θ n ( z ∣ y i ) p_{\theta_{n}}(z|y_i) pθn(zyi)是一样的,在M步也是求极大化。但是该算法在E不是对于每个i求后验概率,然后在M步直接带入所求得的后验概率来求极大化时的参数 θ n + 1 \theta_{n+1} θn+1

补充:由于在M步中已经知道了 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i)),也就是说 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))是常量,那么在求极大化时候我们求导会略掉,所以M步的公式可以写成 θ : = a r g max ⁡ ∑ i ∑ z ( i ) Q i ( z ( i ) ) l o g p ( x ( i ) , z ( i ) ; θ ) \theta:=arg\max\sum\limits_{i}\sum\limits_{z^{(i)}}Q_i(z^{(i)})logp(x^{(i)},z^{(i)};\theta) θ:=argmaxiz(i)Qi(z(i))logp(x(i),z(i);θ),而 Q i ( z ( i ) ) = p θ n ( z ∣ y i ) Q_i(z^{(i)})=p_{\theta_{n}}(z|y_i) Qi(z(i))=pθn(zyi),所以可以写成 Q ( θ ∣ θ n ) = ∑ i = 1 n ∑ z p θ n ( z ∣ y i ) l n p θ ( y i , z ) Q(\theta|\theta_n)=\sum\limits_{i=1}^{n} \sum\limits_{z}p_{\theta_n}(z|y_i)ln^{p_\theta(y_i,z)} Q(θθn)=i=1nzpθn(zyi)lnpθ(yi,z)

到这里我想已经说清楚了两者的区别以及建议如果和我一样是初学者的话关于EM算法建议学cs229。最终我们的EM算法可以写成如下形式。

(1)、选择参数的初始值 θ 0 \theta_0 θ0开始进行迭代;
(2)、E(Expection)步:记第n次迭代参数为 θ n \theta_n θn,那么计算 n + 1 n+1 n+1次的E步,针对每个i计算条件概率

p θ n ( z ∣ y i ) p_{\theta_{n}}(z|y_i) pθn(zyi)

(3)、M(Maximization)步:求使得 Q ( θ ∣ θ n ) Q(\theta|\theta_n) Q(θθn)最大化的 θ n + 1 \theta_{n+1} θn+1,即确定第 n + 1 n+1 n+1次的模型参数

Q ( θ ∣ θ n ) = ∑ i = 1 n ∑ z p θ n ( z ∣ y i ) l n p θ ( y i , z ) Q(\theta|\theta_n)=\sum\limits_{i=1}^{n} \sum\limits_{z}p_{\theta_n}(z|y_i)ln^{p_\theta(y_i,z)} Q(θθn)=i=1nzpθn(zyi)lnpθ(yi,z)
θ n + 1 = arg ⁡ max ⁡ θ Q ( θ ∣ θ n ) \theta_{n+1}=\arg\max\limits_{\theta}Q(\theta|\theta_n) θn+1=argθmaxQ(θθn)
(4)、重复(2),(3)直到收敛。

2、EM算法收敛性证明

假设我们使用EM算法得到了一系列的 θ 1 , θ 2 , . . . , θ n . . . \theta_1,\theta_2,...,\theta_n... θ1,θ2,...,θn...,那么得到的似然函数值是否逐渐在增大呢?即证明 l ( θ j + 1 ) > l ( θ j ) l(\theta_{j+1})>l(\theta_j) l(θj+1)>l(θj)

l ( θ ) = ∑ i = 1 n l o g p ( y i ; θ ) = ∑ i = 1 n l o g p ( y i , z ; θ ) p ( z ∣ y i ; θ ) = ∑ i = 1 n l o g p ( y i , z ; θ ) − ∑ i = 1 n p ( z ∣ y i ; θ ) l(\theta)=\sum\limits_{i=1}^{n}logp(y_i;\theta)\\=\sum\limits_{i=1}^{n}log\frac{p(y_i,z;\theta)}{p(z|y_i;\theta)}\\=\sum\limits_{i=1}^{n}logp(y_i,z;\theta)-\sum\limits_{i=1}^{n}p(z|y_i;\theta) l(θ)=i=1nlogp(yi;θ)=i=1nlogp(zyi;θ)p(yi,z;θ)=i=1nlogp(yi,z;θ)i=1np(zyi;θ)

因为 ∑ z p ( z ∣ y i ; θ j ) = 1 \sum\limits_{z}p(z|y_i;\theta_j)=1 zp(zyi;θj)=1,我们将他乘到上式中去,得到

l ( θ ) = ∑ i = 1 n l o g p ( y i ; θ ) = ∑ i = 1 n ∑ z p ( z ∣ y i ; θ j ) l o g p ( y i , z ; θ ) − ∑ i = 1 n ∑ z p ( z ∣ y i ; θ j ) l o g p ( z ∣ y i ; θ ) l(\theta)=\sum\limits_{i=1}^{n}logp(y_i;\theta)\\=\sum\limits_{i=1}^{n}\sum\limits_{z}p(z|y_i;\theta_j)logp(y_i,z;\theta)-\sum\limits_{i=1}^{n}\sum\limits_{z}p(z|y_i;\theta_j)logp(z|y_i;\theta) l(θ)=i=1nlogp(yi;θ)=i=1nzp(zyi;θj)logp(yi,z;θ)i=1nzp(zyi;θj)logp(zyi;θ)

注意到第一项就是 Q ( θ ∣ θ j ) Q(\theta|\theta_j) Q(θθj),将后一项记为 H ( θ ∣ θ j ) H(\theta|\theta_j) H(θθj)

l ( θ j + 1 ) − l ( θ j ) = [ Q ( θ j + 1 ∣ θ j ) − Q ( θ j ∣ θ j ) ] − [ H ( θ j + 1 ∣ θ j ) − H ( θ j ∣ θ j ) ] l(\theta_{j+1})-l(\theta_j)=[Q(\theta_{j+1}|\theta_j)-Q(\theta_{j}|\theta_j)]-[H(\theta_{j+1}|\theta_j)-H(\theta_j|\theta_j)] l(θj+1)l(θj)=[Q(θj+1θj)Q(θjθj)][H(θj+1θj)H(θjθj)]

对于前一项,由于 θ j + 1 = arg ⁡ max ⁡ θ Q ( θ ∣ θ j ) \theta_{j+1}=\arg\max\limits_{\theta}Q(\theta|\theta_j) θj+1=argθmaxQ(θθj),所以 Q ( θ j + 1 ∣ θ j ) − Q ( θ j ∣ θ j ) > = 0 Q(\theta_{j+1}|\theta_j)-Q(\theta_{j}|\theta_j)>=0 Q(θj+1θj)Q(θjθj)>=0

对于后一项:

H ( θ j + 1 ∣ θ j ) − H ( θ j ∣ θ j ) = ∑ i = 1 n ∑ z p ( z ∣ y i ; θ j ) l o g p ( z ∣ y i ; θ j + 1 ) p ( z ∣ y i ; θ j ) &lt; = ∑ i = 1 n l o g ∑ z p ( z ∣ y i ; θ j ) p ( z ∣ y i ; θ j + 1 ) p ( z ∣ y i ; θ j ) = ∑ i = 1 n l o g ∑ z p ( z ∣ y i ; θ j + 1 ) = ∑ i = 1 n l o g 1 = 0 H(\theta_{j+1}|\theta_j)-H(\theta_j|\theta_j)\\=\sum\limits_{i=1}^{n}\sum\limits_{z}p(z|y_i;\theta_j)log\frac{p(z|y_i;\theta_{j+1})}{p(z|y_i;\theta_j)}\\&lt;=\sum\limits_{i=1}^{n}log\sum\limits_{z}p(z|y_i;\theta_j)\frac{p(z|y_i;\theta_{j+1})}{p(z|y_i;\theta_j)}\\=\sum\limits_{i=1}^{n}log\sum\limits_{z}p(z|y_i;\theta_{j+1})\\=\sum\limits_{i=1}^{n}log1=0 H(θj+1θj)H(θjθj)=i=1nzp(zyi;θj)logp(zyi;θj)p(zyi;θj+1)<=i=1nlogzp(zyi;θj)p(zyi;θj)p(zyi;θj+1)=i=1nlogzp(zyi;θj+1)=i=1nlog1=0

所以得到 l ( θ j + 1 ) − l ( θ j ) &gt; = 0 l(\theta_{j+1})-l(\theta_j)&gt;=0 l(θj+1)l(θj)>=0,说明似然函数递增,而 l ( θ ) &lt; = 1 l(\theta)&lt;=1 l(θ)<=1,所以如果似然函数有上界那么必然会收敛到某一个值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值