混合高斯分布
混合高斯分布(MoG)也是一种无监督学习的方法,常用与聚类。当聚类问题中各个类别的尺寸不同、聚类间有相关关系的时候,往往使用(MoG)往往更加合适。对于一个样本来说,MoG得到的是其属与各个类的概率(通过计算后验概率得到),而不熟完全属于某个类,这种聚类方法成为软聚类。一般来说,任意形状的概率分布都可用多个高斯分布函数去近似,因此,MoG的应用较为广泛。
形式化解释MoG
首先对问题进行形式化
在MoG问题中,数据属于哪个分布可以看成是一个隐含变量z。则MoG模型存在两个假设.假设一. z服从多项式分布,即:
对于多项式分布的参数,需要服从 ∑jΦj=1 ∑ j Φ j = 1 。特殊的,当只有两个分布时,z服从伯努利分布。
假设二. 已知z时,x服从正态分布,即条件概率
p(x|z)
p
(
x
|
z
)
服从正态分布,即:
则x和z的联合分布概率函数为:
在MoG模型中,若 z(i) z ( i ) 已知,那么就与高斯判别分析相同了,似然函数如下所示:
公式8.9.10与高斯判别分析一样。
EM算法求解MoG
由于不知道 z(i) z ( i ) 的值,我们需要通过EM算法迭代估计出 z(i) z ( i ) 从而得到参数。
基本思想如下所示:
- 设置初始参数 θ θ ;例如MoG中的 Φ Φ , μ μ , ∑ ∑
- E-step:根据当前参数与观察数据X,估计隐含变量z的分布
- M-step:根据z的分布,对参数进行重新估计
2,3步反复进行,知道参数变化小于阈值或者目标函数的变化小于阈值为止
具体来说,在E-step中,z的概率分布的更新公式如下:
w(i)j==p(z(i)=j|x(i),Φ,μ,∑)p(x(i)|z(i)=j;μ,∑)p(z(i)=j;Φ)∑kp(x(i)|z(i)=k;μ,∑)p(z(i)=k;Φ)(11) w j ( i ) = p ( z ( i ) = j | x ( i ) , Φ , μ , ∑ ) (11) = p ( x ( i ) | z ( i ) = j ; μ , ∑ ) p ( z ( i ) = j ; Φ ) ∑ k p ( x ( i ) | z ( i ) = k ; μ , ∑ ) p ( z ( i ) = k ; Φ )
其中,如假设中所言, p(x(i)|z(i)=j;μ,∑) p ( x ( i ) | z ( i ) = j ; μ , ∑ ) 是正态分布, p(z(i)=j;Φ) p ( z ( i ) = j ; Φ ) 是多项式分布,将密度函数带入即可得到给定观察值x,z的条件概率。在M-step中,根据E-step中得到的z的分布,重新对参数进行估计,有:
Φj=1m∑i=1mw(i)j(12) (12) Φ j = 1 m ∑ i = 1 m w j ( i )
μj=∑mi=1w(i)jx(i)∑mi=1w(i)j(13) (13) μ j = ∑ i = 1 m w j ( i ) x ( i ) ∑ i = 1 m w j ( i )
μj=∑mi=1w(i)jx(i)∑mi=1w(i)j(14) (14) μ j = ∑ i = 1 m w j ( i ) x ( i ) ∑ i = 1 m w j ( i )
分别对比式子8,9,10与12,13,14,可以发现12,13,14中只是将8,9,10中的指示函数替换为E-step中的概率值。说明在MoG的EM训练过程中,并不是硬性规定一个样本只是属于一个类,而是以概率的形式表达样本与类别的关系。在训练终止的时候,大部分z的概率值都会接近于0或者1 ,只有少部分会中和,所以MoG模型对不确定的样本处理更好。
与高斯判别不同的是,在MoG中,不同的高斯分布所采用的协方差矩阵是可以不一样的,但是高斯判别分析中是一样的。
Jensen不等式
EM算法的一般化形式。
首先介绍Jensen不等式。
定理:
若
f
f
为凸函数,即 并不要求f一定可到,但是如果存在二姐导数,则必须恒
≥0
≥
0
。再令x为随机变量,则存在不等式
进一步,若二阶导数恒大于0,当且仅当x=E[x],不等号成立。
若二阶导数的不等号方向逆转,则不等式的不等号方向逆转。
EM算法的一般化形式
在有隐含变量的模型中,他的似然函数为
下面讨论EM的一般化形式,所以与在MoG中讨论EM不同,我们不知道 p(x(i)|z(i)) p ( x ( i ) | z ( i ) ) 与 p(z(i)) p ( z ( i ) ) 所服从的具体分布,我们只需要知道他们都是一种概率分布就足够了。
如果直接在公式16中应用极大似然估计,因为在对数函数中有连加,因而求偏导时会很麻烦。
对公式16进行处理,步骤如下:
这里, Q Q 是一种概率分布,即
继续推导:
在公式 18 中,用到了 Jensen 不等式,不过 log 函数是凹函数,所以不等号逆转了。另外还用到了期望的定义:若 x∼p(x), x ∼ p ( x ) , 则 E[g(x)]=∑p(x)g(x). E [ g ( x ) ] = ∑ p ( x ) g ( x ) .
由公式16,17,18可知:
这时我们就找出了似然函数的一个下界,可以看到,该下界已经将取对数放到求和里面了,因而对其求偏导较为简单。假设当前的参数为 θ(t) θ ( t ) ,在下界上进行极大似然估计后得到新参数 θ(t+1) θ ( t + 1 ) ,如果能保证 l(θ(t+1))≥l(θ(t)) l ( θ ( t + 1 ) ) ≥ l ( θ ( t ) ) ,那么我们就可以在下界函数上进行极大似然估计就可以了。如何能保证这一点呢?只要我们能在当前参数 θ(t) θ ( t ) 处,使公式17的等号成立就行了。证明如下:
第一个不等号意为下界函数,第二个不等号意为在下界函数上做极大似然估计,第三个等号是我们的假设。如何使公式 17 中等号成立呢?回顾 Jensen 不等式中令等号成立的条件,只要使 x=E[x] x = E [ x ] 即可,在公式17中即意味着使
如此再加上 ∑z(i)Qi(z(i))=1 ∑ z ( i ) Q i ( z ( i ) ) = 1 的条件,我们就可以选择Q:
我们发现 Q Q 的值与 MoG的E-step 的公式很相似。即为对z的概率估计。
由以上分析,我们就得到了 EM 算法的一般化形式。一般化形式的思想是,在 E-step, 找到对于当前参数θ,使公式 19 等号成立的 Q 分布;在 M-step,对似然函数下界进行极大似然估计,得到新的参数。形式化表述为:
E-step:
M-step:
主要思想:
有一个不能直接进行求导的似然函数,给定初始参数,我们找到在初始参数下紧挨着似然函数的下界函数,在下界上求极值来更新参数。然后以更新后的参数为初始值再次进行如上操作,这就是EM进行参数估计的方法。
似然函数不一定只有一个极值点,因此EM算法只能求出局部极值,所以可以采用多次选取初始参数进行求参数,最后取最优参数。
在EM的一般形式中,我们可以将目标函数看做是:
这样,EM 算法就可以看做是对目标函数的坐标上升过程,在 E-step 中, θ θ 不变,调整Q使函数变大;在 M-step 中,Q不变,调整 θ θ 使目标函数变大。