高斯模型EM算法推导

上文可能花了较多的时间在编辑公式,不过对于它们的由来却没有去深究。
第一眼看到一些结论仍然是很诧异的。虽然和对高斯分布的最大似然估计看起来有几分神似,但是总是觉得不太踏实。此文就是用来梳理推导过程的,在参考文献1中其实有一个手写版的比较详尽的推导,不过仅仅推了 μ 的计算,而且还有小小的错误。Anyway,先把在Maximization这一步的几个公式再罗列一遍吧

ϕj=1mi=1mI{z(i)=j}μj=mi=1I{z(i)=j}x(i)mi=1I{z(i)=j}Σj=mi=1I{z(i)=j}x((i)μj)(x(i)μj)Tmi=1I{z(i)=j}

ϕj 代表着 p(z(i)=j) 的概率。这个式子是容易理解的,就是所有的m个样本中,输入标签j的数目除以总的样本数就等于 ϕj .

密度估计的实质

我们进行密度估计的实质,就是在给定m个D维的样本点, x1,...,xmRD ,令所有的 RD 上概率密度函数的集合表示成 F ,我们要寻找一个概率密度函数 f(x)F ,它最有可能产生给定的数据。
一种定义这个函数集 F 的方法就是给所有的函数以相同的数学形式,但是用不同的参数集合 θ 来区分它们。比如说, F 中的函数可以是高斯混合函数:

f(x;θ)=k=1KϕkN(x;μk,σk)

由于 f 是一个密度函数,所以它必须是非负的,同时积分应该是1。所以我们就可以得到:
1=RDf(x;θ)dx=RDk=1KϕkN(x;μk,σk)dx=1

又由于高斯密度函数本身积分为1:
RDN(x;μk,Σk)dx=1

所以可以得到:
k=1Kϕk=1

所以,我们就能得出这样的结论:
ϕk0,k=1Kϕk=1

这也检验了,我们设定 ϕk 为高斯分量所占的比例是合理的。可以将它称为 mixing probabilities.

推算

使用混合高斯的函数来对cluters进行建模,将每一个cluster分配给一个高斯分量,它的均值靠近cluster的中心,它的标准差就衡量了这个cluster分散的程度。
再来强调一次我们的目的,我们是希望找到这样一个函数,或者说一个模型,通过它最有可能生成我们现在已经获得的数据,所以我们实际上的似然函数最大化就是使得后验概率最大化的过程。

L(x1,...,xm;θ)=n=1mf(xn;θ)

对于混合高斯函数:
L(x1,...,xm;θ)=n=1mk=1KϕkN(xn;μk,σk)

对它进行最大化,就是对它的logarithm的最大化,可以表示为:
lnL(x1,...,xm;θ)=n=1mlnk=1KϕkN(xn;μk,σk)

单独对 μ 求导,为了方便参数仅仅写出 μ ,可以写成:

ln L(x1,...,xm;μ1,μ2,...μK)=n=1mln[k=1Kp(xn|wk;μ1,μ2,...μk)p(wk)]

由于:

xlnf(x)=1f(x)f(x)x

所以可得:
ln Lμi=n=1m1p(xn;μ1,...,μK)μij=1Kp(xn|wj;μ1,μ2,...,μK)p(wj)=n=1m1p(xn;μ1,...,μK)p(wi)μip(xn|wi;μ1,μ2,...,μK)

对于高斯正态分布的求导,满足:

N(xn;μk,σk)μk=N(xn;μk,σk)μk[12(||xnμk||σk)2]

并且满足:

μk||xnμk||2=μk(xTnxn+μTkμk2xTnμk)=2(μkxn)

(论文2中的公式写错了吧)

所以上面的式子进一步可以写成:

ln Lμi=n=1mp(wi)p(xn|wi;μ1,...,μK)p(xn;μ1,...,μK)(xnμk)σ2i

根据贝叶斯定律,转化成先验概率的形式:
ln Lμi=n=1mp(wi|xn;μ1,μ2,...μK)(xnμk)σ2i

令偏导数为0,可以得到:

μ^i=mn=1P(wi|xn;μ1,...,μK)xnmn=1p(wi|xn;μ1,...,μK)

到了这里比较难的就是要继续去推对 σ 的微分,为此我试图偷懒从一些文献上找到答案,但是发现大家都很显然的就得到了结果,所以我只能笨笨地自己推了,在参考文献4中貌似有一种更简单的做法。但是当中有个求导的步骤怎么跳过去的我没看懂。

Ln Lσ2=n=1mp(wi)p(xn;σ21,...,σ2K)σ2i[p(xn|wi;σ21,σ22,...,σ2K)]

现在就要回到正态分布的函数形式上:
N(xn;μi,σi)σi=σ2[12πσexp((xnμi)22σ2)]=12πσexp((xnμi)22σ2)σ2((xnμi)22σ2)+exp((xnμi)22σ2)σ2(12πσ)=N(xn;μi,σi)(xnμi)22σ4exp((xnμi)22σ2)122π1σ3=N(xn;μi,σi)(xnμi)22σ4N(xn;μi,σi)12σ2

这样,上式子变为:

Ln Lσ2i=n=1mp(wi)p(xn;σ21,...,σ2K)p(xn|wi,σ21,...,σ2K)[(xnμi)22σ4i12σ2i]=n=1mp(wi|xn;σ21,σ22,...,σ2K)[(xnμi)22σ4i12σ2i]

令偏微分为0,求得结果为:

σ^2i=mn=1P(wi|xn;σ21,...,σ2K)(xnμ^i)2mn=1p(wi|xn;σ21,...,σ2K)

至于对混合系数的推导,自我感觉这个公式很make sense, 但是实际的推导却要借助拉格朗日乘法因子来引入限制。构造新的目标函数:
J=ln L+λ(1Kj=1wj)


参考文献:
[1]http://www.cs.cmu.edu/~awm/doc/gmm-algebra.pdf
[2]https://www.cs.duke.edu/courses/spring04/cps196.1/handouts/EM/tomasiEM.pdf
[3]http://www.atmos.washington.edu/~dennis/MatrixCalculus.pdf
[4]http://bengio.abracadoudou.com/lectures/gmm.pdf

你可能感兴趣的:(机器学习算法)