上文可能花了较多的时间在编辑公式,不过对于它们的由来却没有去深究。
第一眼看到一些结论仍然是很诧异的。虽然和对高斯分布的最大似然估计看起来有几分神似,但是总是觉得不太踏实。此文就是用来梳理推导过程的,在参考文献1中其实有一个手写版的比较详尽的推导,不过仅仅推了 μ 的计算,而且还有小小的错误。Anyway,先把在Maximization这一步的几个公式再罗列一遍吧
ϕj=1m∑i=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)T∑mi=1I{
z(i)=j}
ϕj 代表着 p(z(i)=j) 的概率。这个式子是容易理解的,就是所有的m个样本中,输入标签j的数目除以总的样本数就等于 ϕj .
密度估计的实质
我们进行密度估计的实质,就是在给定m个D维的样本点, x1,...,xm∈RD ,令所有的 RD 上概率密度函数的集合表示成 F ,我们要寻找一个概率密度函数 f(x)∈F ,它最有可能产生给定的数据。
一种定义这个函数集 F 的方法就是给所有的函数以相同的数学形式,但是用不同的参数集合 θ 来区分它们。比如说, F 中的函数可以是高斯混合函数:
f(x;θ)=∑k=1KϕkN(x;μk,σk)
由于 f 是一个密度函数,所以它必须是非负的,同时积分应该是1。所以我们就可以得到:
又由于高斯密度函数本身积分为1:
∫RDN(x;μk,Σk)dx=1
所以可以得到:
∑k=1Kϕk=1
所以,我们就能得出这样的结论:
ϕk≥0,∑k=1Kϕk=1
这也检验了,我们设定 ϕk 为高斯分量所占的比例是合理的。可以将它称为 mixing probabilities.
推算
使用混合高斯的函数来对cluters进行建模,将每一个cluster分配给一个高斯分量,它的均值靠近cluster的中心,它的标准差就衡量了这个cluster分散的程度。
再来强调一次我们的目的,我们是希望找到这样一个函数,或者说一个模型,通过它最有可能生成我们现在已经获得的数据,所以我们实际上的似然函数最大化就是使得后验概率最大化的过程。
L(x1,...,