机器学习(九)——EM算法

http://antkillerfarm.github.io/

高斯混合模型和EM算法(续)

E-Step中,根据贝叶斯公式可得:

p(z(i)=j|x(i);ϕ,μ,Σ)=p(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)kl=1p(x(i)|z(i)=l;μ,Σ)p(z(i)=l;ϕ)

将假设模型的各概率密度函数代入上式,即可计算得到 w(i)j

相比于K-means算法,GMM算法中的 z(i) 是个概率值,而非确定值,因此也被称为soft assignments。

K-means算法各个聚类的特征都是一样的,也就是“圆圈”的半径一致。而GMM算法的“圆圈”半径可以不同。如下面两图所示:

K-means算法GMM算法

GMM算法结果也是局部最优解。对其他参数取不同的初始值进行多次计算同样适用于GMM算法。

参考:

http://cseweb.ucsd.edu/~atsmith/project1_253.pdf

EM算法

本节将进一步讨论EM算法的性质,并将之应用到使用latent random variables的一大类估计问题中。

Jensen不等式

首先我们给出凸函数的定义:

设f是定义域为实数的函数,如果对于所有的实数x, f′′(x)0 ,那么f是凸函数。当x是向量时,如果其Hessian矩阵H是半正定的( H0 ),那么f是凸函数。如果 f′′(x)>0 H>0 ,那么称f是严格凸函数。

Jensen不等式表述如下:

如果f是凸函数,X是随机变量,那么 E[f(X)]f(EX)

特别地,如果f是严格凸函数,那么 E[f(X)]=f(EX) ,当且仅当 p(X=EX)=1 。也就是说X是常量。

在不引起误会的情况下, E[X] 简写做 EX

这个不等式的含义如下图所示:

这里写图片描述

Jensen不等式应用于凹函数时,不等号方向反向,也就是 E[f(X)]f(EX)

注:Johan Ludwig William Valdemar Jensen,1859~1925,丹麦人。主业工程师,副业数学家。

EM算法的一般形式

EM算法一般形式的似然函数为:

(θ)=i=1mlogp(x(i);θ)=i=1mlogzp(x(i),z(i);θ)(1)

根据这个公式直接求 θ 一般比较困难,但是如果确定了z之后,求解就容易了。

EM算法是一种解决存在隐含变量优化问题的有效方法。既然不能直接最大化 (θ) ,我们可以不断地建立 (θ) 的下界(E-Step),然后优化下界(M-Step)。

这里首先假设 z(i) 的分布为 Qi 。显然:

zQi(z)=1,Qi(z)0

(θ)=i=1mlogz(i)p(x(i),z(i);θ)=i=1mlogz(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))i=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))(2)

这里解释一下最后一步的不等式变换。

首先,根据数学期望的定义公式:

E[X]=i=1nxipi

可知:

z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))=E[p(x(i),z(i);θ)Qi(z(i))]

又因为 f(x)=logx 是凹函数,根据Jensen不等式可得:

f(Ez(i)Qi[p(x(i),z(i);θ)Qi(z(i))])Ez(i)Qi[f(p(x(i),z(i);θ)Qi(z(i)))]

综上,公式2给出了 (θ) 的下界。对于 Qi 的选择,有多种可能,那种更好的?

假设 θ 已经给定,那么 (θ) 的值就取决于 Qi(z(i)) p(x(i),z(i)) 了。我们可以通过调整这两个概率,使下界不断上升,以逼近 (θ) 的真实值。当不等式变成等式时,下界达到最大值。

由Jensen不等式相等的条件可知, (θ) 的下界达到最大值的条件为:

p(x(i),z(i);θ)Qi(z(i))=c

其中c为常数。

这实际上表明:

Qi(z(i))p(x(i),z(i);θ)

其中的 符号是两者成正比例的意思。

从中还可以推导出:

p(x(i),z(i);θ)Qi(z(i))=c=zp(x(i),z(i);θ)zQi(z(i))

因为 zQi(z(i))=1 ,所以上式可变形为:

Qi(z(i))=p(x(i),z(i);θ)zp(x(i),z(i);θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i)|x(i);θ)

可见,当 Qi(z(i)) z(i) 的后验分布时, (θ) 的下界达到最大值。

因此,EM算法的过程为:

Repeat until convergence {
(E-step) For each i:
Qi(z(i)):=p(z(i)|x(i);θ)
(M-step) Update the parameters:
θ:=argmaxθizQi(z(i))logp(x(i),z(i);θ)Qi(z(i))
}

如何保证算法的收敛性呢?

如果我们用 θ(t) θ(t+1) 表示EM算法第t次和第t+1次迭代后的结果,那么我们的任务就是证明 (θ(t))(θ(t+1))

由公式1和2可得:

(θ)iz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))(3)

由之前的讨论可以看出,E-Step中的步骤是使上式的等号成立的条件,即:

(θ(t))=iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t))Q(t)i(z(i))

因为公式3对于任意 Qi θ 都成立,因此:

(θ(t+1))iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t+1))Q(t)i(z(i))

因为M-Step的最大化过程,可得:

iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t+1))Q(t)i(z(i))iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t))Q(t)i(z(i))

综上可得: (θ(t))(θ(t+1))

事实上,如果我们定义:

J(Q,θ)=iz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

则EM算法可以看作是J函数的坐标上升法。E-Step固定 θ ,优化Q;M-Step固定Q,优化 θ

重新审视混合高斯模型

下面给出混合高斯模型各参数的推导过程。

E-Step很简单:

w(i)j=Qi(z(i)=j)=p(z(i)=j|x(i);ϕ,μ,Σ)

在M-Step中,我们将各个变量和分布的概率密度函数代入,可得:

i=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))=i=1mj=1kQi(z(i)=j)logp(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)Qi(z(i)=j)=i=1mj=1kw(i)jlog1(2π)n/2Σj1/2exp(12(x(i)μj)TΣ1j(x(i)μj))ϕjw(i)j

μl 求导,可得:

μli=1mj=1kw(i)jlog1(2π)n/2Σj1/2exp(12(x(i)μj)TΣ1j(x(i)μj))ϕjw(i)j=μli=1mj=1kw(i)j12(x(i)μj)TΣ1j(x(i)μj)=12i=1mw(i)lμl(2μTlΣ1lx(i)μTlΣ1lμl)=i=1mw(i)l(Σ1lx(i)Σ1lμl)(4)

这里对最后一步的推导,做一个说明。为了便于以下的讨论,我们引入符号“tr”,该符号表示矩阵的主对角线元素之和,也被叫做矩阵的“迹”(Trace)。按照通常的写法,在不至于误会的情况下,tr后面的括号会被省略。

tr的其他性质还包括:

tra=a,aR(5.1)

tr(A+B)=tr(A)+tr(B)(5.2)

tr(cA)=ctr(A)(5.3)

tr(A)=tr(AT)(5.4)

tr(AB)=tr(BA)(5.5)

tr(ABCD)=tr(BCDA)=tr(CDAB)=tr(DABC)(5.6)

Atr(AB)=BT(5.7)

ATf(A)=(Af(A))T(5.8)

Atr(ABATC)=CAB+CTABT(5.9)

ATtr(ABATC)=BTATCT+BATC(5.10)

A|A|=|A|(A1)T(5.11)

因为 μTlΣ1lμl 是实数,由公式5.1可得:

μlμTlΣ1lμl=μltr(μTlΣ1lμl)

由公式5.10可得:

μltr(μTlΣ1lμl)=(Σ1l)T(μTl)TIT+Σ1l(μTl)TI=(Σ1l)Tμl+Σ1lμl

因为 Σ1l 是对称矩阵,因此,综上可得:

μlμTlΣ1lμl=2Σ1lμl(5.12)

回到正题,令公式4等于0,可得:

μj:=mi=1w(i)jx(i)mi=1w(i)j

同样的,对 ϕj 求导,可得:

i=1mj=1kw(i)jlogϕj

因为存在 kj=1ϕj=1 这样的约束,因此需要使用拉格朗日函数:

L(ϕ)=i=1mj=1kw(i)jlogϕj+β(j=1kϕj1)

这里的 β 是拉格朗日乘子, ϕj0 的约束条件不用考虑,因为对 logϕj 求导已经隐含了这个条件。

因此:

L(ϕ)ϕj=i=1mw(i)jϕj+β

令上式等于0,可得:

mi=1w(i)jϕj=β=mi=1kj=1w(i)jkj=1ϕj

因为 kj=1ϕj=1,kj=1w(i)j=1 ,所以:

β=mi=111=m

因此:

ϕj:=1mi=1mw(i)j

因子分析

之前的讨论都是基于样本个数m远大于特征数n的,现在来看看 mn 的情况。

这种情况本质上意味着,样本只覆盖了很小一部分的特征空间。当我们应用高斯模型的时候,会发现协方差矩阵 Σ 根本就不存在,自然也就没法利用之前的方法了。

那么我们应该怎么办呢?

Σ 的限制

有两种方法可以对 Σ 进行限制。

方法一:

设定 Σ 为对角线矩阵,即所有非对角线元素都是0。其对角线元素为:

Σjj=1mi=1m(x(i)jμj)2

二维多元高斯分布在平面上的投影是个椭圆,中心点由 μ 决定,椭圆的形状由 Σ 决定。 Σ 如果变成对角阵,就意味着椭圆的两个轴都和坐标轴平行了。

方法二:

还可以进一步约束 Σ ,可以假设对角线上的元素都是相等的,即:

Σ=σ2I

其中:

σ=1mnj=1ni=1m(x(i)jμj)2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值