引例
问题:
假设有 3 枚硬币 A、B、C. 这些硬币正面出现的概率分别为
π、p、q.
进行如下抛硬币的实验,在每一次实验中:
(1)先抛硬币 A,根据其结果,正面选择硬币 B,反面选择硬币 C;
(2)而后抛选出的硬币,出现正面记作 1,反面记作 0.
独立重复试验 n 次(这里,n=10),最终结果为:1, 1, 0, 1, 0, 0, 1, 0, 1, 1
扫描二维码关注公众号,回复:
5128759 查看本文章
假设我们只能观测到结果 1 或 0,但无法观测硬币 A 的结果(即无法得知选择 B 或 C),问如何估计 3 硬币正面出现的概率
π、p、q。
解:
三硬币的模型可写做(一次实验):
P(y∣θ)==z∈{B,C}∑P(y,z∣θ)=z∈{B,C}∑P(z∣θ)P(y∣z,θ)πpy(1−p)1−y+(1−π)qy(1−q)1−y
其中 y 是观测变量,表示实验结果 1 或 0;z 是隐变量,表示无法观测道德硬币 A 的结果;
θ=(π,p,q) 是模型的参数。
将观测数据表示为 Y=(y1,y2,…,yn),未观测数据表示为 Z=(z1,z2,…,zn),则观测数据的似然函数为:
L(y;θ)=∏j=1nP(yj∣θ)=∏j=1n[πpy(1−p)1−y+(1−π)qy(1−q)1−y]
对数似然函数的极大似然估计为:
θ=θarg maxL(y;θ)
此问题是没有解析解的,只有通过迭代的方法求解。EM 方法就是可以用于求解这个问题的一种迭代算法。
下面给出 EM 算法的 求解过程:
1)选取参数的初值,记作
θ(0)=(π(0),p(0),q(0))
2)设第 i 次迭代的参数值为
θ(i)=(π(i),p(i),q(i)),则第 i+1 次的迭代如下:
-
E 步:计算在模型参数
π(i),p(i),q(i) 下观测数据
yj,来自抛硬币 B 的概率:
μj(i+1)=π(i)(p(i))yj(1−p(i))1−yj+(1−π)(i)(q(i))yj(1−q(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj
(可以这样理解:硬币 B 与 硬币 C 都可以得到观测数据 yj,所以产生 yj 的概率为二者概率的和,要求结果来自硬币 B 的概率,就应用 硬币 B 的概率除以和。)
-
M 步:计算模型参数的新估计值:
(1)
π(i+1)=n1∑j=1nμj(i+1)
(硬币 B 出现的概率等于硬币 A 正面出现的概率
π,所以对 10 次实验所得的 μ 求均值(期望)即得
π)
(2)
p(i+1)=∑j=1nμj(i+1)∑j=1nμj(i+1)yj
(分母为选择硬币 B 的概率,分子为选择硬币 B 且抛硬币 B 的结果为 正的概率;也可认为分母为选择硬币 B 的次数,分子为选择硬币 B 且抛硬币 B 的结果为正的次数;二者相比可得硬币 B 出现正面的概率 p)
(3)
q(i+1)=∑j=1n[1−μj(i+1)]∑j=1n[1−μj(i+1)]yj
(分母为选择硬币 C 的概率,分子为选择硬币 C 且抛硬币 C 的结果为 正的概率;也可认为分母为选择硬币 C 的次数,分子为选择硬币 C 且抛硬币 C 的结果为正的次数;二者相比可得硬币 C 出现正面的概率 q)
根据观测结果 1, 1, 0, 1, 0, 0, 1, 0, 1, 1 进行代数计算:
-
初始值
π(0)=0.5,p(0)=0.5,q(0)=0.5
-
第 1 次 迭代:
E 步:
μj(1)=0.5
M 步:
π(1)=0.5,p(1)=0.6,q(1)=0.6
-
第 2 次 迭代:
E 步:
μj(2)=0.5,j=1,2,...,10
M 步:
π(2)=0.5,p(2)=0.6,q(2)=0.6
-
结果:
因为 ||θ2-θ1||<ξ,其中 ξ 为较小的正数,所以迭代停止,于是得到模型参数 θ 的极大似然估计:
π∗=0.5,p∗=0.6,q∗=0.6
-
注意:
当初始值为
π(0)=0.4,p(0)=0.6,q(0)=0.7 时,最终参数极大似然估计为:
π∗=0.4064,p∗=0.5368,q∗=0.6432,说明 EM 算法是 初始值敏感 的。
过程推导
对于含有隐变量的概率模型,目标是极大化观测数据 Y 关于参数 θ 的对数似然函数,即极大化:
L(θ)==logP(Y∣θ)=logz∑P(Y,Z∣θ)log⟮z∑P(Y∣Z,θ)P(Z∣θ)⟯
要对其进行极大似然估计,其困难点在于包含 未观测数据 以及包含 和的对数
而 EM 算法是通过迭代逐步近似极大化 L(θ) 的。我们希望后一次的估计值 θ(i+1) 能使 L(θ) 增加,即 L(θ(i+1)) > L(θ(i)),并逐步达到极大值。所以我们可以考虑两次的差值:
L(θi+1)−L(θi)=log⟮∑zP(Y∣Z,θi+1)P(Z∣θi+1)⟯−log⟮∑zP(Y∣Z,θi)P(Z∣θi)
利用 Jensen 不等式:
log∑jλjyj≥∑jλjlogyj,其中λj≥0,∑jλj=1
L(θi+1)−L(θi)===≥logz∑P(Y,Z∣θi+1)−logz∑P(Y,Z∣θi)log⟮z∑P(Y,Z∣θi)P(Y,Z∣θi+1)⟯log⟮z∑P(Z∣Y,θi)P(Z∣Y,θi)P(Y,Z∣θi)P(Y,Z∣θi+1)⟯z∑P(Z∣Y,θi)logP(Z∣Y,θi)P(Y,Z∣θi)P(Y,Z∣θi+1)
令
J(θi+1,θi)=L(θi)+∑zP(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y,Z∣θi)P(Y,Z∣θi+1)
则
L(θi+1)≥J(θi+1,θi)
所以此时函数
J(θi+1,θi) 相当于
L(θi+1) 的一个下界,且
L(θi)=J(θi,θi),所以,任何可以使
J(θi+1,θi) 增大的 θ,也可以使
L(θ) 增大。为了使
L(θ) 有尽可能大的增长,选择 θi+1 使
J(θi+1,θi) 达到,即
θi+1=θargmaxJ(θi+1,θi)
将
J(θi+1,θi) 中对于 θi+1 是常数的项省去:
θi+1==z∑P(Z∣Y,θ(i))P(Y,Z∣θi+1)θargmaxQ(θi+1∣θi)
也就是说,极大化 Q 函数相当于极大化两次迭代的对数似然函数
L(θi+1)−L(θi) 的差值,也就相当于在逐步近似最大化
L(θ).
且等价于 EM 算法中的一次迭代。
-
一种形式化地理解
EM 的算法的过程,相当于:
先固定 θold,调整 Q 函数使下界上升至
L(θ) 的值;然后固定 Q 函数,调整 θ 使下届达到最大值,此时为新的 θ;而后重复上面两步,直至收敛。
-
混合模型
混合模型是由多个参数不同的相似分布函数(称为分模型)组成(相当于多个盒子),且每个分模型对应一个概率(相当于各盒子被选择的概率)。首先根据概率选出分模型(选出隐变量),而后依据分模型自身的概率分布生成观测,进行多次以生成观测序列。
-
极大-极大算法(广义EM算法,GEM)
由 Q 函数以及隐变量 z 的分布的熵构成 F 函数,首先固定 θ 以极大化 F 函数,而后固定隐变量 z 的分布以极大化 F 函数。