经典机器学习模型(九)EM算法的推导
1 相关数据基础
1.1 数学期望
1.1.1 数学期望的定义
根据定义,我们可以求得掷骰子对应的期望:
E ( X ) = X 1 ∗ p ( X 1 ) + X 2 ∗ p ( X 2 ) + . . . + X 6 ∗ p ( X 6 ) = 1 ∗ 1 6 + 2 ∗ 1 6 + 1 ∗ 1 6 + 3 ∗ 1 6 + 4 ∗ 1 6 + 5 ∗ 1 6 + 6 ∗ 1 6 = 3.5 E(X)=X_1*p(X_1)+X_2*p(X_2)+...+X_6*p(X_6)\\ =1*\frac{1}{6}+2*\frac{1}{6}+1*\frac{1}{6}+3*\frac{1}{6}+4*\frac{1}{6}+5*\frac{1}{6}+6*\frac{1}{6}\\ =3.5 E(X)=X1∗p(X1)+X2∗p(X2)+...+X6∗p(X6)=1∗61+2∗61+1∗61+3∗61+4∗61+5∗61+6∗61=3.5
- 要注意区分平均值和期望。平均值是一个统计量(对观察样本的统计),期望是一种概率论概念,是一个数学特征。比如我们进行掷骰子,掷了六次,点数分别为2,2,2,4,4,4,这六次的观察就是我们的样本,于是我们可以说平均值为(2+2+2+4+4+4)/6=3,但是千万不能说期望是3。
- 平均值和期望的联系也是大数定理联系起来的。如果说概率是频率随样本趋于无穷的极限 ,期望就是平均数随样本趋于无穷的极限。
- 可以用加权平均值来理解期望。
1.1.2 函数期望公式
1.1.3 常见分布的期望
具体推导可以参考:
数学期望及常见分布的期望计算与推导
1.2 极大似然估计
- 极大似然估计法的出发点是已知被观测对象的分布,但不知道其参数。
- 极大似然法用得到观测值(样本)最高概率的那些参数的值来估计该分布的参数,即
产生该样本概率最大的原则
。 - 设 f ( y , θ ) f(y,θ) f(y,θ) 是随机变量 Y Y Y 的密度函数,其中 θ θ θ是该分布的未知参数,若有一随机样本 Y 1 , Y 2 , ⋯ , Y n Y_1,Y_2,⋯,Y_n Y1,Y2,⋯,Yn,则 θ θ θ的极大似然估计值是具有产生该观测样本的最高概率的那个 θ θ θ值,或者换句话说, θ θ θ的极大似然估计值是使密度函数 f ( y , θ ) f(y,θ) f(y,θ) 达到最大的 θ θ θ值。
- 由于总体有离散型和连续型两种分,
离散型分布通过分布律来构造似然函数,而连续型分布通过概率密度函数来构造似然函数
。
求解极大似然估计问题步骤:
- 写出似然函数;
- 对似然函数取对数,并整理;
- 求导数,令导数为0,得到似然方程;
- 解似然方程,得到的参数即为所求;
1.2.1 离散型随机变量的极大似然原理
- 若总体为离散型分布,其分布律为 P ( Y = y ) = p ( y , θ ) P(Y=y)=p(y,θ) P(Y=y)=p(y,θ),分布律的形式已知。
- 其中, θ ^ = ( θ 1 , θ 2 , ⋯ , θ k ) ′ \hat\theta=(θ_1,θ_2,⋯,θ_k)′ θ^=(θ1,θ2,⋯,θk)′ 是待估参数向量
- 其中一维随机变量离散型分布主要有:
设 Y 1 , Y 2 , ⋯ , Y n Y_1,Y_2,⋯,Y_n Y1,Y2,⋯,Yn 表示总体 Y Y Y 的一个样本,它们独立同分布。 y 1 , y 2 , ⋯ , y n y_1,y_2,⋯,y_n y1,y2,⋯,yn 是相应于样本 Y 1 , Y 2 , ⋯ , Y n Y_1,Y_2,⋯,Y_n Y1,Y2,⋯,Yn 的一组样本值,容易求得从 Y 1 , Y 2 , ⋯ , Y n Y_1,Y_2,⋯,Y_n Y1,Y2,⋯,Yn 取到观察值$ y_1,y_2,⋯,y_n$ 的概率,即事件 { Y 1 = y 1 , Y 2 = y 2 , ⋯ , Y n = y n Y_1=y_1,Y_2=y_2,⋯,Y_n=y_n Y1=y1,Y2=y2,⋯,Yn=yn}发生的概率,这个概率为
L ( θ ^ ) = L ( y 1 , y 2 , . . . , y n ; θ ^ ) = ∏ i = 1 n p ( y i , θ ^ ) L(\hat\theta) = L(y_1,y_2,...,y_n;\hat\theta)=\prod\limits_{i=1}^{n}p(y_i,\hat\theta) L(θ^)=L(y1,y2,...,yn;θ^)=i=1∏np(yi,θ^)
-
这一概率随 θ ^ \hat\theta θ^的取值而变化,它是 θ ^ \hat\theta θ^的函数,$L(\hat\theta) $称为样本的似然函数。
-
极大似然估计法就是在 θ ^ \hat\theta θ^取值的可能范围内挑选使似然函数 L ( y 1 , y 2 , ⋯ , y n ; θ ^ ) L(y_1,y_2,⋯,y_n;\hat\theta) L(y1,y2,⋯,yn;θ^) 达到最大的参数值 θ ^ \hat\theta θ^
-
一般求解的步骤就是:对该似然函数取对数,然后求导数,令导数为0,得到似然方程,最后解似然方程。取对数是因为对数似然函 l n L ( θ ^ ) lnL(\hat\theta) lnL(θ^) 可以把乘积形式转为和的形式,从而为简化运算提供了方便。
1.2.2 离散型分布的极大似然估计的举例
首先来看1次抛硬币,假设参数正面向上的概率为 θ θ θ,满足伯努利分布(也称0-1分布)
,可能的事件有2个(正面向上的次数可能为0、1次),其正面的条件概率为:
p ( x ) = θ x ( 1 − θ ) 1 − x , x 为正面向上的次数 p(x)=\theta^x(1-\theta)^{1-x},x为正面向上的次数 p(x)=θx(1−θ)1−x,x为正面向上的次数
现在我们朝空中扔 N N N次,其中有 x x x次显示的是正面,有 N − x N-x N−x次显示的是反面,那么它所对应的**「正面的条件概率」**就可以写成下式(满足二项分布
):
P ( x ∣ θ ) = C N x θ x ( 1 − θ ) N − x , x 为正面向上的次数 P(x|\theta)=C_{N}^x\theta^x(1-\theta)^{N-x},x为正面向上的次数 P(x∣θ)=CNxθx(1−θ)N−x,x为正面向上的次数
现在,我们已经知道硬币正面向上的概率 θ θ θ、一共抛了 N N N次, x x x次显示的是正面,那么代入上式,很容易就能求出该次事件出现的概率。
假如,现在知道硬币一共抛了 N N N次, x x x次显示的是正面,但是不知道硬币朝上的概率 θ \theta θ,那么该怎么办呢?这时,咱们就可以让条件概率最大化来找到对应的 θ \theta θ,即
a r g max θ P ( x ∣ θ ) arg \max \limits_{\theta} P(x|\theta) argθmaxP(x∣θ)
此时,我们可以把它写成似然函数的形式 L ( θ ) L(\theta) L(θ),当然,由于原来的条件概率函数都是指数乘积的形式,为了计算方便,我们接着把似然函数写成 【对数似然函数】。
θ ^ = a r g max θ l n ( L ( θ ) ) = a r g max θ l n ( θ x ( 1 − θ ) N − x ) ( 忽略常数项 ) = a r g max θ ( x l n θ + ( N − x ) l n ( 1 − θ ) ) 求最大值,我们对 θ 求导,并令其为 0 ,那么 ∂ L ( θ ) ∂ θ = ∂ ( x l n θ + ( N − x ) l n ( 1 − θ ) ) ∂ θ = x θ − N − x 1 − θ = 0 可以求得 θ = x N \hat\theta = arg \max \limits_{\theta} ln(L(\theta)) \\ =arg \max \limits_{\theta} ln(\theta^x(1-\theta)^{N-x})(忽略常数项) \\ =arg \max \limits_{\theta} (xln\theta + (N-x)ln(1-\theta)) \\ 求最大值,我们对\theta求导,并令其为0,那么\\ \frac{\partial L(\theta)}{\partial\theta}=\frac{\partial (xln\theta + (N-x)ln(1-\theta))}{\partial\theta}=\frac{x}{\theta}-\frac{N-x}{1-\theta}=0 \\ 可以求得\theta=\frac{x}{N} θ^=argθmaxln(L(θ))=argθmaxln(θx(1−θ)N−x)(忽略常数项)=argθmax(xlnθ+(N−x)ln(1−θ))求最大值,我们对θ求导,并令其为0,那么∂θ∂L(θ)=∂θ∂(xlnθ+(N−x)ln(1−θ))=θx−1−θN−x=0可以求得θ=Nx
-
频率学派相信概率是确定的,或者说, θ θ θ是个常量,采样数据 x x x则是基于这个参数为 θ θ θ的分布中随机采样的,因此通过采样数据可以求得 θ θ θ(通过极大似然估计MLE),而采样数据越多, θ θ θ越准确。
-
而贝叶斯学派则认为θ并非是个未知的常量,而是个满足某种分布的随机变量,而对于这个θ,会有一个最初始的信仰,即一个先验假设(比如抛硬币中,θ可以被视为一个均值为0.5的正态分布)。
-
具体可参考:概率学派和贝叶斯学派的区别
-
可以看出,极大似然估计可以看成是对应于一组完全数据的情况,但是当出现不完全的数据时,比如未被观测到或者是缺失的数据时,这时用极大似然估计来求解就相当复杂了。
1.2.3 连续型随机变量的极大似然原理
若总体为连续型分布,其概率密度函数为 f ( y , θ ^ ) f(y,\hat\theta) f(y,θ^),密度函数的形式已知。
- 其中, θ ^ = ( θ 1 , θ 2 , ⋯ , θ k ) ′ \hat\theta=(θ_1,θ_2,⋯,θ_k)′ θ^=(θ1,θ2,⋯,θk)′ 是待估参数向量
- 其中一维随机变量连续型分布主要有:
解法和离散型分布一致,对该似然函数取对数,然后求导数,令导数为0,得到似然方程,最后解似然方程。
1.2.4 连续型分布的极大似然估计举例
我们假设样本服从高斯分布:
1.3 Jensen不等式
-
这里简单介绍下结论,感兴趣的可以详细了解下该不等式。
-
如果 f f f是
凸函数
(如下图),X是随机变量,那么有 E [ f ( X ) ] > = f ( E [ X ] ) E[f(X)]>=f(E[X]) E[f(X)]>=f(E[X]),也就是函数的期望大于等于期望的函数
。 -
对于凹函数,不等号方向反向,即 E [ f ( X ) ] < = f ( E [ X ] ) E[f(X)]<=f(E[X]) E[f(X)]<=f(E[X])。
2 EM算法举例
如下图,我们抛两枚硬币A和B,一共抛了5轮,每轮抛10次。
如果知道每次抛的是A还是B,那么根据之前讲的极大似然估计,就直接可以估计每种硬币的参数 θ A , θ B θ_A,θ_B θA,θB(正面朝上的概率)。
假如此时我们并不知道每轮抛掷的是A硬币还是B硬币,只能知道每组实验的10次结果。这时候,我们就需要EM算法了,这时每组未知的硬币就是隐变量。
-
EM算法的核心就是
猜数+迭代
。 -
对于第一轮抛掷,使用硬币 A 的概率是 0.45,使用硬币 B 的概率是 0.55。同理其他轮。这一步我们实际上是估计出了 Z 的概率分布,这步就是 E-Step。
到隐变量 z z z后(即每轮是A硬币,还是B硬币),我们可以去进行M步计算极大似然估计求得更好的θ
3 EM算法的推导
3.1 EM算法流程
我们先看下《统计学习方法》中EM算法的流程,然后我们再去进行推导。
3.2 EM算法中E步的推导
对 m m m个样本观察数据 y = ( y ( 1 ) , y ( 2 ) , . . . y ( m ) ) y=(y^{(1)},y^{(2)},...y^{(m)}) y=(y(1),y(2),...y(m))中,找出样本的模型参数θ,最大化模型分布的对数似然函数如下:
θ ^ = a r g max θ l o g ( L ( θ ) ) = a r g max θ ∑ i = 1 m l o g ( P ( y i ∣ θ ) ) = a r g max θ l o g ( P ( Y ∣ θ ) ) 它表示参数 θ 的条件下对应的观测变量 Y 的概率对数化 Y 是离散变量时,对应的是概率 ; Y 是连续变量,对应的是概率密度。 后文以概率为代表解释,概率密度类似。 \hat\theta = arg \max \limits_{\theta} log(L(\theta)) \\ = arg \max \limits_{\theta} \sum\limits_{i=1}^m log(P(y^{i}|\theta)) \\ = arg \max \limits_{\theta} log(P(Y|\theta)) \\ 它表示参数\theta的条件下对应的观测变量Y的概率对数化 \\ Y是离散变量时,对应的是概率;Y是连续变量,对应的是概率密度。 \\ 后文以概率为代表解释,概率密度类似。\\ θ^=argθmaxlog(L(θ))=argθmaxi=1∑mlog(P(yi∣θ))=argθmaxlog(P(Y∣θ))它表示参数θ的条件下对应的观测变量Y的概率对数化Y是离散变量时,对应的是概率;Y是连续变量,对应的是概率密度。后文以概率为代表解释,概率密度类似。
1)因为这里包含缺失数据和隐变量,无法直接得到对应的概率,于是把对应的隐变量 Z Z Z添进来,以全概率公式展开。
L ( θ ) = l o g ( P ( Y ∣ θ ) ) = l o g ∑ Z ( P ( Y , Z ∣ θ ) ) 这里的隐变量 Z 是对样本空间的分割,就是在 Z 的所有取值下对应的概率。 L(\theta)=log(P(Y|\theta))=log\sum\limits_{Z}(P(Y,Z|\theta))\\ 这里的隐变量Z是对样本空间的分割,就是在Z的所有取值下对应的概率。 L(θ)=log(P(Y∣θ))=logZ∑(P(Y,Z∣θ))这里的隐变量Z是对样本空间的分割,就是在Z的所有取值下对应的概率。
2)接下来,我们就要用到极大似然估计的思想了。
我们令每次迭代后的 L ( θ ) L(\theta) L(θ)都比上轮的 L ( θ ( i ) ) L(\theta^{(i)}) L(θ(i))大,目的就是为了让更新之后的似然函数更大,即:
L ( θ ) − L ( θ ( i ) ) = l o g ∑ Z ( P ( Y , Z ∣ θ ) ) − l o g ( P ( Y ∣ θ ( i ) ) ) ≥ 0 注意:上式中 θ ( i ) 已知 ( 上一轮推测出来的 ) , θ 是未知的 L(\theta)-L(\theta^{(i)})=log\sum\limits_{Z}(P(Y,Z|\theta))-log(P(Y|\theta^{(i)}))\geq0\\ 注意:上式中\theta^{(i)}已知(上一轮推测出来的),\theta是未知的 L(θ)−L(θ(i))=logZ∑(P(Y,Z∣θ))−log(P(Y∣θ(i)))≥0注意:上式中θ(i)已知(上一轮推测出来的),θ是未知的
- 等号右侧前面的式子是将所有隐变量考虑在内的全概率密度函数,也就是在EM例子中,既然不知道每轮是A硬币还是B硬币,那就把A和B的概率都分别计算出来。
- 而后面的式子中,参数 θ ( i ) \theta^{(i)} θ(i)是根据上轮结果推测出来A硬币/B硬币正面朝上的概率,我们认为它是已知的,目标就是用它来推测出新的一轮隐变量对应的概率,并且找到新一轮的似然函数。
3)接着,用贝叶斯公式,来把前面的式子进行改造,通过观测结果 Y Y Y和上一轮的参数 θ ( i ) \theta^{(i)} θ(i)去猜出隐变量 对应的概率 Z Z Z,将,上式就可以继续写成:
L ( θ ) − L ( θ ( i ) ) = l o g ∑ Z ( P ( Y , Z ∣ θ ) ) − l o g ( P ( Y ∣ θ ( i ) ) ) = l o g ∑ Z [ P ( Z ∣ Y , θ ( i ) ) P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ] − l o g ( P ( Y ∣ θ ( i ) ) ) 分子分母同乘以一个数,原式保持不变,这样就引入了隐变量 z 的概率分布。 另外对数函数中有一个求和式,直接计算是十分复杂的。 L(\theta)-L(\theta^{(i)})=log\sum\limits_{Z}(P(Y,Z|\theta))-log(P(Y|\theta^{(i)}))\\ =log\sum\limits_{Z}[P(Z|Y,\theta^{(i)})\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)}}]-log(P(Y|\theta^{(i)})) \\ 分子分母同乘以一个数,原式保持不变,这样就引入了隐变量z的概率分布。 \\另外对数函数中有一个求和式,直接计算是十分复杂的。 L(θ)−L(θ(i))=logZ∑(P(Y,Z∣θ))−log(P(Y∣θ(i)))=logZ∑[P(Z∣Y,θ(i))P(Z∣Y,θ(i)P(Y,Z∣θ)]−log(P(Y∣θ(i)))分子分母同乘以一个数,原式保持不变,这样就引入了隐变量z的概率分布。另外对数函数中有一个求和式,直接计算是十分复杂的。
4)此时,我们需要借助Jensen不等式了。
我们已经知道,期望 E ( X ) = ∑ x p ( x ) E(X)=\sum xp(x) E(X)=∑xp(x),函数期望则为: E ( f ( x ) ) = ∑ f ( x ) p ( x ) E(f(x))=\sum f(x)p(x) E(f(x))=∑f(x)p(x)
∑ Z P ( Z ∣ Y , θ ( i ) ) = 1 \sum\limits_{Z}P(Z|Y,\theta^{(i)})=1 Z∑P(Z∣Y,θ(i))=1,这是因变量 z z z的概率分布,相当于上式的 p ( x ) p(x) p(x)。
我们 P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) \frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})} P(Z∣Y,θ(i))P(Y,Z∣θ)把看作一个整体,相当于上式中的 f ( x ) f(x) f(x),因此 ∑ Z [ P ( Z ∣ Y , θ ( i ) ) P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ] \sum\limits_{Z}[P(Z|Y,\theta^{(i)})\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})}] Z∑[P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y,Z∣θ)]可以看作一个期望。
根据Jensen不等式,对于凸函数,函数的期望大于等于期望的函数;凹函数相反
l o g ∑ Z [ P ( Z ∣ Y , θ ( i ) ) P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ] log\sum\limits_{Z}[P(Z|Y,\theta^{(i)})\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)}}] logZ∑[P(Z∣Y,θ(i))P(Z∣Y,θ(i)P(Y,Z∣θ)]就是期望的函数,此函数为log,而log属于凹函数,取相反结论,因此函数的期望小于等于期望的函数
。
我们可以得到下式:
L ( θ ) − L ( θ ( i ) ) = l o g ∑ Z ( P ( Y , Z ∣ θ ) ) − l o g ( P ( Y ∣ θ ( i ) ) ) = l o g ∑ Z [ P ( Z ∣ Y , θ ( i ) ) P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ] − l o g ( P ( Y ∣ θ ( i ) ) ) ≥ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) − l o g ( P ( Y ∣ θ ( i ) ) ) 由于 ∑ Z P ( Z ∣ Y , θ ( i ) ) = 1 ,因此在 l o g ( P ( Y ∣ θ ( i ) ) ) 中可以乘 ∑ Z P ( Z ∣ Y , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ θ ( i ) ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ( P ( Y ∣ θ ( i ) ) ) 接着,对分母的式子进行简化,根据乘法公式 P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) = P ( Y , Z ∣ θ ( i ) ) ,它可以继续写成 = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) ≥ 0 L(\theta)-L(\theta^{(i)})=log\sum\limits_{Z}(P(Y,Z|\theta))-log(P(Y|\theta^{(i)}))\\ =log\sum\limits_{Z}[P(Z|Y,\theta^{(i)})\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})}]-log(P(Y|\theta^{(i)})) \\ \geq \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})}-log(P(Y|\theta^{(i)}))\\ 由于\sum\limits_{Z}P(Z|Y,\theta^{(i)})=1,因此在log(P(Y|\theta^{(i)}))中可以乘\sum\limits_{Z}P(Z|Y,\theta^{(i)})\\ =\sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})}-\sum\limits_{Z}P(Z|Y,\theta^{(i)})log(P(Y|\theta^{(i)}))\\ =\sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})(P(Y|\theta^{(i)}))}\\ 接着,对分母的式子进行简化,根据乘法公式P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})=P(Y,Z|\theta^{(i)}),它可以继续写成\\ =\sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\\ \geq0 L(θ)−L(θ(i))=logZ∑(P(Y,Z∣θ))−log(P(Y∣θ(i)))=logZ∑[P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y,Z∣θ)]−log(P(Y∣θ(i)))≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y,Z∣θ)−log(P(Y∣θ(i)))由于Z∑P(Z∣Y,θ(i))=1,因此在log(P(Y∣θ(i)))中可以乘Z∑P(Z∣Y,θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y,Z∣θ)−Z∑P(Z∣Y,θ(i))log(P(Y∣θ(i)))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))(P(Y∣θ(i)))P(Y,Z∣θ)接着,对分母的式子进行简化,根据乘法公式P(Z∣Y,θ(i))P(Y∣θ(i))=P(Y,Z∣θ(i)),它可以继续写成=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)≥0
5)可以看出,对数中的分子是在未知参数 θ \theta θ下的联合概率,而分母是在已知参数 θ ( i ) \theta^{(i)} θ(i)的联合概率,都是完全概率,我们的目的是为了让每轮迭代后的概率比上轮的大,自然写成:
∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) ≥ 0 \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\geq0 Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)≥0
到这一步,我们的似然函数基本上就敲定了。
我们来验证下:令似然函数最大就意味着令每轮迭代后的隐变量概率都比上轮大。
很简单,只要对数部分大于零,不等式自然成立,也就是对数里面的部分大于等于1,继续写成
P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) ≥ 1 \frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\geq1 P(Y,Z∣θ(i))P(Y,Z∣θ)≥1
验证了每轮迭代的概率都比上轮大,等同于令似然函数越来越大。
6)接着,我们的目标就是要求出对应似然函数下的缺失变量 θ \theta θ的概率值。
我们已经知道 L ( θ ) − L ( θ ( i ) ) ≥ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 即 L ( θ ) ≥ L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 我们令 L ( θ ) 的下界 B ( θ , θ ( i ) ) = L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 我们极大化似然函数 L ( θ ) 等同于最大化下界 B ( θ , θ ( i ) ) 而 L ( θ ( i ) ) 为常数,就等同于最大化 ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 我们已经知道L(\theta)-L(\theta^{(i)})\geq\sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})} \\ 即L(\theta) \geq L(\theta^{(i)}) + \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\\ 我们令L(\theta)的下界B(\theta,\theta^{(i)})=L(\theta^{(i)}) + \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})} \\ 我们极大化似然函数L(\theta)等同于最大化下界B(\theta,\theta^{(i)}) \\ 而L(\theta^{(i)})为常数,就等同于最大化\sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})} 我们已经知道L(θ)−L(θ(i))≥Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)即L(θ)≥L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)我们令L(θ)的下界B(θ,θ(i))=L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)我们极大化似然函数L(θ)等同于最大化下界B(θ,θ(i))而L(θ(i))为常数,就等同于最大化Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)
我们将式子拆开:
∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ( i ) ) \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\\ =\sum\limits_{Z}P(Z|Y,\theta^{(i)})log{P(Y,Z|\theta)}-\sum\limits_{Z}P(Z|Y,\theta^{(i)})log{P(Y,Z|\theta^{(i)})} Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))
在减号后面的部分还是个常数,不好含未知参数 θ \theta θ。因此,我们只需要对前面的部分求出当它最大时对应的 θ \theta θ 。
即 Q ( θ , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) ∑ Z P ( Z ∣ Y , θ ( i ) ) = 1 ,是一个条件概率分布,因此可以化简为期望形式,即: = E Z ∣ Y , θ ( i ) l o g P ( Y , Z ∣ θ ) 即Q(\theta,\theta^{(i)})=\sum\limits_{Z}P(Z|Y,\theta^{(i)})log{P(Y,Z|\theta)}\\ \sum\limits_{Z}P(Z|Y,\theta^{(i)})=1,是一个条件概率分布,因此可以化简为期望形式,即:\\ =E_{Z|Y,\theta^{(i)}}log{P(Y,Z|\theta)} 即Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)Z∑P(Z∣Y,θ(i))=1,是一个条件概率分布,因此可以化简为期望形式,即:=EZ∣Y,θ(i)logP(Y,Z∣θ)
这就是EM算法的E步的推导。
通过EM算法的E步,我们得到了Q函数
Q ( θ , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) = E Z ∣ Y , θ ( i ) l o g P ( Y , Z ∣ θ ) Q(\theta,\theta^{(i)})=\sum\limits_{Z}P(Z|Y,\theta^{(i)})log{P(Y,Z|\theta)}\\ =E_{Z|Y,\theta^{(i)}}log{P(Y,Z|\theta)} Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)=EZ∣Y,θ(i)logP(Y,Z∣θ)
接下来,我们只需要求使 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))极大化的 θ \theta θ,确定第 i + 1 i+1 i+1次的迭代参数的估计值 θ ( i + 1 ) \theta^{(i+1)} θ(i+1),即M步。
3.3 EM算法的图形解释
在推导 E M 算法过程中我们知道, L ( θ ) ≥ L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 我们令下界 B ( θ , θ ( i ) ) = L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 在推导EM算法过程中我们知道,L(\theta) \geq L(\theta^{(i)}) + \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\\ 我们令下界B(\theta,\theta^{(i)})=L(\theta^{(i)}) + \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})} 在推导EM算法过程中我们知道,L(θ)≥L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)我们令下界B(θ,θ(i))=L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)
-
我们想让似然函数越来越大,等同于是让下界 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))越来越大。
-
注意,在每轮的迭代中都它所对应的下界函数 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))都是在不断更新的。
-
我们说明一下,下图中 L ( θ ) L(\theta) L(θ)和 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))在 θ ( i ) \theta^{(i)} θ(i)处相等这句话。
L ( θ ) ≥ L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ) P ( Y , Z ∣ θ ( i ) ) 当 θ = θ ( i ) 时, P ( Y , Z ∣ θ ( i ) ) P ( Y , Z ∣ θ ( i ) ) = 1 , 那么 l o g P ( Y , Z ∣ θ ( i ) ) P ( Y , Z ∣ θ ( i ) ) = 0 因此 L ( θ ( i ) ) ≥ L ( θ ( i ) ) + 0 , 即 L ( θ ) 和 B ( θ , θ ( i ) ) 在 θ ( i ) 处相等 L(\theta) \geq L(\theta^{(i)}) + \sum\limits_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}\\ 当\theta=\theta^{(i)}时,\frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})}=1,那么log\frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})}=0\\ 因此L(\theta^{(i)}) \geq L(\theta^{(i)}) + 0,即L(\theta)和B(\theta,\theta^{(i)})在\theta^{(i)}处相等 L(θ)≥L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ)当θ=θ(i)时,P(Y,Z∣θ(i))P(Y,Z∣θ(i))=1,那么logP(Y,Z∣θ(i))P(Y,Z∣θ(i))=0因此L(θ(i))≥L(θ(i))+0,即L(θ)和B(θ,θ(i))在θ(i)处相等
- 现在,我们再看3.1EM算法的流程,就应该有更深刻的理解了。
有关EM算法收敛的证明可以参考:
学会EM算法
接下来会介绍下《统计学习方法》中EM算法的三硬币模型例子,以及EM算法在高斯混合模型
中的应用。