1.EM算法
假定有训练数据集
{x(1),x(2),⋯,x(m)}
包含m个独立样本,希望从中找出该组数据得模型模型p(x,z)得参数。
取对数似然函数
l(θ)=i=1∑mlogp(x;θ)=i=1∑mlogz∑p(x,z;θ)
z是隐随机变量,不方便直接找到参数估计,使用下面的策略找出:计算1(θ)的下界,求该下界最大值;重复该过程,直到收敛到局部最大值。
令Qi是z的某一个分布,Qi≥0,有:
l(θ)=i=1∑mlogz∑p(x,z;θ)=i=1∑mlogz(i)∑p(x(i),z(i);θ) =i=1∑mlogz(M∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)≥i=1∑mz(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
寻找尽量紧的下界,可以令:
Qi(z(i))p(x(i),z(i);θ)=c
进一步分析:
Qi(z(i))∝p(x(i),z(i);θ)∑zQi(z(i))=1Qi(z(i))=∑zp(x(i),z(i);θ)p(x(i),z(i);θ)=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)∣x(i);θ)
EM算法整体框架:
2.从理论公式推导GMM
随机变量X是由K个高斯分布混合而成,取各个高斯分布的概率为φ1φ2⋯φK,第i个高斯分布的均值为μi,方差为∑i。若观测到随机变量X的一系列样本x1,x2,…,xn,试估计参数φ,μ,Σ。
E-step
wj(i)=Qi(z(i)=j)=P(z(i)=j∣x(i);ϕ,μ,Σ)
M-step
将多项分布和高斯分布的参数带入:
∑i=1m∑z(i)Qi(z(i))logQi(z(i))p(x(i),z(i);ϕ,μ,Σ)=∑i=1m∑j=1kQi(z(i)=j)logQi(z(i)=j)p(x(i)∣z(i)=j;μ,Σ)p(z(i)=j;ϕ)=∑i=1m∑j=1kwj(i)logwj(i)(2π)n/2∣Σj∣1/21exp(−21(x(i)−μj)TΣj−1(x(i)−μj))⋅ϕj
对均值求偏导
∇μl∑i=1m∑j=1kwj(i)logwj(i)(2π)n/2∣∑j∣∣1/21exp(−21(x(i)−μj)TΣj−1(x(i)−μj))⋅ϕj=−∇μl∑i=1m∑j=1kwj(i)21(x(i)−μj)TΣj−1(x(i)−μj)=21∑i=1mwl(i)∇μl2μlTΣl−1x(i)−μlTΣl−1μl=∑i=1mwl(i)(Σl−1x(i)−Σl−1μl)
令上式等于0,解的均值为:
μl:=∑i=1mwl(i)∑i=1mwl(i)x(i)
对方差求偏导,等于0
Σj=∑i=1mwj(i)∑i=1mwj(i)(x(i)−μj)(x(i)−μj)T
多项分布参数,考察M-step的目标函数,对于ϕ,删除常数项
i=1∑mj=1∑kwj(i)logwj(i)(2π)n/2∣Σj∣1/21exp(−21(x(i)−μj)TΣj−1(x(i)−μj))⋅ϕj
得到
i=1∑mj=1∑kwj(i)logϕj
拉格朗日乘子法
由于多项分布的概率和为1,建立拉格朗日方程
L(ϕ)=i=1∑mj=1∑kwj(i)logϕj+β(j=1∑kϕj−1)
求偏导,等于0
∂ϕj∂L(ϕ)=∑i=1mϕjwj(i)+β−β=∑i=1m∑j=1kwj(i)=∑i=1m1=mϕj:=m1∑i=1mwj(i)
总结,对于所有的数据点,可以看作组份k生成了这些点。组份k是一个标准的高斯分布,利用上面结论:{γ(i,k)xi∣i=1,2,⋯N}。
⎩⎪⎪⎪⎨⎪⎪⎪⎧μk=Nk1∑i=1Nγ(i,k)xiΣk=Nk1∑i=1Nγ(i,k)(xi−μk)(xi−μk)Tπk=N1∑i=1Nγ(i,k)Nk=N⋅πk