机器学习之高斯混合模型

高斯混合模型可以看做是EM算法的应用之一,下面尝试对迭代公式进行推导。

假设我们有一批观测到的样本,这些样本可能来自于k个不同参数的高斯分布,我们如何根据观测到的样本来估计这k个高斯模型的参数呢?

下面我们尝试直接带入EM算法
E-step:

Qi(z(i)=j)=p(z(i)=jx(i);ϕ,μ,Σ)

上式表征的是样本 x(i) 来自于第 j 个高斯分布的概率,为简单起见,记为 w(i)j=Qi(z(i)=j)

M-step:我们需要最大化下式:

iz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))=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|Σj|1/2exp(12(x(i)μj)TΣ1j(x(i)μj))ϕjw(i)j

为后续简单起见,我们将上式的最终结果成为 M 式

我们依次对参数 ϕ,μ,Σ 求极大值
1. 参数 ϕj 表征的是第j个高斯分布在所有分布中所占的分量。因此这里隐含着一个限制条件 kj=1ϕj=1

求带有条件的极值问题,我们使用拉格朗日乘子法,另外由于最后要对 ϕj 求微分,去除无关变量(微分后为0)后,M式可化简为:

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

因此拉格朗日式子可以写作如下:
L(ϕ)=i=1mj=1kw(i)jlogϕj+β(j=1kϕj1)

ϕj 求微分:
ϕjL(ϕ)=i=1mw(i)jϕj+β

令上式为 0 可得:
ϕj=mi=1w(i)jβ

这里的 β 等于什么呢?应用限制条件 : kj=1ϕj=1 可知:

β=i=1mj=1kw(i)j=i=1m1=m

从而得到 ϕj 的更新公式:
ϕj:=1mj=1kw(i)j

2. 参数 μj 表征的是第j个高斯分布的均值
同样的,去除M式中与 μj 不相关的变量, 然后对 μj 求导:
μji=1mj=1kw(i)j(12(x(i)μj)TΣ1j(x(i)μj))=12i=1mw(i)j(Σ1j(x(i)μj)w(i)j(x(i)μj)TΣ1j)=i=1mw(i)j(Σ1jx(i)Σ1jμj)

令上式为0可以得到关于参数 μj 的更新式子:
μj:=mi=1w(i)jx(i)mi=1w(i)j

3. 参数 Σj 表征的是第j个高斯分布的协方差矩阵
类似的我们先简化M式,并对 Σj 求导可得:
Σji=1mj=1kw(i)j(12log|Σj|12(x(i)μj)TΣ1j(x(i)μj))=12i=1mw(i)j(Σ1j(x(i)μj)TΣ2j(x(i)μj))

令上式为0可以得到关于参数 Σj 的更新式子:
Σj:=mi=1w(i)j(x(i)μj)(x(i)μj)Tmi=1w(i)j

至此,我们通过EM算法推导出了关于混合高斯模型的参数迭代公式。

参考

[1] Andrew Ng CS229 Lecture notes

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值