一个东西写到10,总会多少有点成就感...只是不知道已经磨掉了多少人的耐心了呢?
此外这节公式密集,大家看着办吧...
-----------笔记开始------------
继续上一讲,先说说EM算法。
MM、EM和GMM
1. MM(混合模型)
(1) 定义: P(x)=∑Kk=1πkPk(x)
,其中 πk≥0 , ∑Kk=1πk=1 ,构成一个离散分布。同时有 Pk(x)≥0 ,且 ∫Pk(x)dx=1 , 1≤k≤K。
(2) 隐变量
我们有数据 (x,G)
,同时依据条件概率分布,有 P(x,G)=P(G)P(x|G) 。记 P(G)=πk ,则 P(x|G=k)=Pk(x) ,其中 1≤k≤K。
则有 P(x)=∑GP(x,G)=∑GP(G)P(x|G)=∑Kk=1πkPk(x)
为x的边际分布。
(3) GMM(正态混合模型)
当 Pk(x)=12πσ2k√exp(−(x−μk)22σ2k)
, 1≤k≤K ,我们有 P(x)=∑Kk=1πkexp(−(x−μk)22σ2k) ,且 P(x,G=k)=πkexp(−(x−μk)22σ2k) , 1≤k≤K。
(4) 对数似然函数和最大似然估计
对数似然函数写为 l(θ)=∑Ni=1logP(x|θ)=∑Ni=1log∑Ni=1P(xi,G=k|θ)=∑Ni=1log(∑Kk=1P(G=k|θ)P(xk|G=k,θ))
。则我们要求的就是 θ∗=argmaxθl(θ) ,其中 θ={{πk},{μk},{σ2k}}。
2. EM算法 (expectation maximum,期望最大方法)
(1) 迭代方法: 给定起始值 θ(0)
,迭代出 θ(1),..,θ(t),... 。那么问题就是,如何在已知 θ(t) 的情况下,求 θ(t+1)?
(2) E1步:求 P(G|xi,θ(t))
。函数形式已知,故可以求各种条件概率什么的。所以有:
P(G|xi,θ(t))=P(xi,G=k)P(xi)=πkPk(x)∑Kl=1πlPl(x)≡γ(t)ik
。
E2步:计算 L(θ|θ(t))=∑Ni=1∑Kk=1(logP(xi,G=k|θ))P(G=k|xi,θ(t))expectation
,由于函数形式已知,我们可以计算并将 ∑移出来,所以换成线性形式。
(3) M步:求 θ(t+1)=argmaxθL(θ|θ(t))
,这样就完成了迭代。需要证明的性质是:随着迭代, l越来越大,且收敛。
(4) 定理: l(θ(t+1))≥l(θ(t))
。
证明:
L(θ|θ(t))===∑i=1N∑k=1KlogP(xi|θ))P(G=k|xi,θ(t))+∑i=1N∑k=1KlogP(G=k|xi,θ(t))P(G=k|xi,θ(t))l(θ)+∑i=1N∑k=1KlogP(G=k|xi,θ(t))P(G=k|xi,θ(t))−∑i=1N∑k=1KlogP(G=k|xi,θ)P(G=k|xi,θ(t))+∑i=1N∑k=1KlogP(G=k|xi,θ)P(G=k|xi,θ(t))l(θ)−∑i=1NHi(θ(t))−∑k=1KKL(θ(t)|θ)
其中 Hi(θ(t))=−∑Kk=1logP(G|xi,θ)P(G|xi,θ(t))
,且 KL(θ(t)|θ)≡∑Kk=1[logP(G|xi,θ(t))P(G|xi,θ(t))−logP(G|xi,θ)P(G|xi,θ(t))]=∑Kk=1logP(G|xi,θ(t))P(G|xi,θ)−P(G|xi,θ(t))>0,定义为两分布的KL距离。
所以 L(θ(t+1)|θ(t))=l(θ(t+1))−∑Ni=1Hi(θ(t))−∑Kk=1KL(θ(t)|θ(t+1))
,且 L(θ(t)|θ(t))=l(θ(t))−∑Ni=1Hi(θ(t))−∑Kk=1KL(θ(t)|θ(t))0 。而由M步, L(θ(t+1)|θ(t))−L(θ(t)|θ(t))≥0 ,故有 l(θ(t+1))−l(θ(t))=KL(θ(t)|θ(t+1))≥0。
在GMM的情况下,应用EM算法,则有:
(1) E1步: γ(t)ik=πk(2πσ2k)−1/2exp(−(xi−μk)2/2σ2)∑Kl=1πlPl(x)
,可以直接计算。
(2) E2步: L(θ|θ(t))=∑Ni=1∑Kk=1γ(t)ik[logπ(t)k−12logπ−12log(σ2k)−(x−μk)22(σ(t)k)2]
。
(3) M步:注意有约束条件 ∑Kk=1πk=1
,所以使用拉格朗日乘子法:
L(θ)=L(θ|θt)+λ(∑πk−1)
,故有一阶条件: ∂L∂πk=∑Ni=1γ(t)ik1π(t)k+λ=0 。从而 πt+1k=N(t)kN ,其中 N(t)k=∑Ni=1γ(t)ik。
还有一阶条件: ∂L∂μk=∑Ni=1−2(xi−μ(t)k)(−1)2(σ(t)k)2=0
,得到 μ(t+1)k=1Nk∑Ni=1xi。
最后, ∂L∂(σ2k)=0
,有 (σt+1k)2=1Nk∑Ni=1(xi−μ(t+1)k)2。
对GMM而言,E步和M步在k=2的时候,求解过程可参见书上。
第七章:模型评估与选择
1. 概念: 我们有数据集 D
,函数族 F 和损失函数 L ,这样得到最优的 f(x)∈F ,然后求得 y^=f(x)(有监督的学习)。之后就是对模型进行评估: y^
的精度如何(使用测试集)?模型的选择就是 F的选择,使得测试误差比较小。
2. 方法:
(1) 数据充分:分成三块,1/2用来训练(train),1/4用来检验(validation),1/4用来测试(test)。其中validation
的概念是,在 ∑Ni=1L(yi,f(xi))+λJ(f)
中,加入J函数来考虑函数族的复杂度,以避免过拟合。而validation就是来调正和选择这里的 λ,再用train和validation重新训练模型。
最后,用test数据集,测试并且评估测试误差。
(2) 数据不充分:一种是cross-validation,分成k(比如5-10)份,极端的就是K=N,ave-win-out;另一种是bootstrap,后续章节详述。