python gmm em算法 2维数据_高斯混合模型GMM思路剖析

高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。

本文从高斯分布开始逐步透彻讲解高斯混合模型

高斯分布

d8cba93ad6bb4a96ae14aca5917f94e5

高斯分布有两个参数:

  • μ = mean(数据的中心)
  • σ2 =variance(数据的分布扩展范围)

μ是高斯分布的位置参数。由概率密度函数图像可知,离μ越近概率密度越大,离μ越远概率越小。高斯分布以X=μ为对称轴,左右完全对称。期望、均数、中位数、众数相同,均等于μ。

σ2描述数据分布的离散程度,σ越大,数据分布越分散;反之,越聚集。也是高斯分布的形状参数,σ越大,曲线越平扁;反之,σ越小,曲线越瘦峭。

一维高斯分布

296c922eb19d464e988e868c0f5e4c63

下图的数据就是由上图的高斯分布产生的。

10c5d32b7e6f43dfb9f067b1dad74ced

高斯分布有如下重要性质

  • 中心极限定理:大量相同分布的随机变量的和倾向于高斯分布。
  • 高斯随机变量的和与差仍然是高斯。
  • 如果X分布为N (µ, σ2)。。。
  • aX + b分布为N (+ b, ()2)
  • 负对数看起来像加权欧几里德距离
eb608d767c5f4f30ab0fa8d2d62b9bb6

二维高斯分布

9b14fb6bc3b2436491badcd72fe76569

如上公式所示,二维联合高斯分布的概率密度,从几何上讲,二维高斯分布在二维空间投影近似于椭圆,整个概率密度函数在三维空间上近似于椭球体。

可以参考本头条号另一篇文章《透彻理解高斯分布》一样,二维独立变量高斯分布的指数化简成椭圆曲线的形式,其中r表示其相关系数,如果r = 0,表示两个变量相互独立,联合概率密度为各自密度的乘积。

6248459ad0b0421f8fbd31a05fe140f6

如果x1,x2不相关。知道x1并不能告诉你关于x2的一切。

下图是r = 0, σ1 = σ2时的分布图形:

a9021edde76a499881415e0ad83b2381

x1,x2可以是不相关的并且具有不同的方差。即r = 0, σ1 !=σ2

55dbb946758740a28a968de4a7f9107d

如果x1,x2相关。那么知道x1能告诉获得一些关于x2的信息

4c45a63b26414350813b559652921ef9

我们把二维高斯分布的协方差矩阵写成如下的形式:

cf3c3bb85294431aaffb680cc1ca615b
5f93c29e822f4bdfbeec35f440b1c52a

其中, x = (x1, x2), µ = (µ1, µ2)

求对数,与加权欧几里德距离很相似

d474232f4c9f4e45a984596180144cb5

如果协方差是对角阵:

3010e07a7a48443fb613dbff77b9f983

高斯估计

数据与分布的匹配

通过获得的训练数据,如何选择参数µ、Σ,才能使数据和分布相匹配?

如果分布产生训练数据的可能性很高,就说明数据和分布相匹配的概率很高。

09cf999f99d448ad8a62575b7e5a7572

所以,我们用最大似然估计(Maximum Likelihood Estimate,MLE),寻找最优参数µ、Σ,使之最大化训练数据的可能性。表达形式如下:

fae820f480d24ad9a610bbdc86aafff4

假设我们开始选择了"正确"的分布。然后,随着训练样本数量的增加,MLE会接近"真实"参数。MLE是非常有效的,对于许多类型的模型,MLE是容易的。

MLE求解

最大似然估计是有封闭形式解的。

5369737bfce64c418b8dd7f0bb1a1d3a

求对参数求偏导:

e3aa594fe2d044a29922cde4475fdf86
138e5807a91b4b3b86abd9d7c463343b

求得:

274892664db84912ad60322fb018b853
e948ba2f5ddf45a79ea1e5a67e73b84f

多维变量时,其均值和协方差是:

277f07d201b7499aa733d327c1bbc3bc

高斯估计的缺陷:并不是所有数据都是高斯分布。但是,如果用多个高斯分布(注意,是多个,不是多维),实践证明,是可以表达任何分布的,这就是我们接下来要讲的高斯混合模型GMM。

高斯混合模型

1dbbd27b15a9470bb71810ee72b7acd8

Σj pj = 1 , pj ≥ 0

这就是高斯混合模型。如果使用足够的高斯成分,可以很好地估计任何分布。给定训练数据,如何估计参数µj , Σj , 和混合权重 pj

为了最大化数据的概率?没有封闭形式的解决方案。我们只能使用优化技术。

我们选择期望最大化算法(Expectation Maximum)

EM算法就是一个求解GMM的算法,其过程如下:

  1. 通过隐藏变量寻找模型的ML参数估计值。
  2. 迭代爬山法
  • 调整每次迭代中的参数估计值
  • 这样的数据可能性每次迭代都会不断地增加

最后找到最优值。

隐藏变量

无法观察到的随机变量。在GMM计算最后的概率,取决于1、各个产生数据的混合组成部分产;2、各个部分的参数。而这个混合部分就是隐藏变量。

计算数据x的概率,需要计算在隐藏变量h的所有可能值下条件概率之和:

e558f3145b5c40f3946eee3197b0eecd

考虑高斯混合的概率分布

9045357c15b147d18d92019b9034a2aa
  • h ⇔哪个组件生成样本
  • P(h) = pj ; P(x |h) = N (µj , Σj )

如果确定每个xi的隐藏值,模型不再隐藏!例如,在GMM组件之间已经划分了数据。

因此,对于每个数据点xi,分配单个隐藏值hi。取hi = arg maxh P(h)P(xi |h),确定产生每个点的GMM组成部分分量。

在非隐藏模型中训练参数是非常容易的。我们通过更新P(h), P(x |h)中的参数。获得µj , Σj , pj的MLE。

所以,我们有以下可选的处理方式:

非常“硬”的处理方式:

对于每个xi,分配单个hi = arg maxh P(h, xi ),数量为和1。然后继续其他步骤。

比较“软”的处理方式:

对于每个xi,计算每个h的后验概率:

7b33ab4f15ba4acdabe6dfa47119a107

也称为"分数计数",我们得到每个组件的概率

由于硬处理方式直接分配hi,非常主观,显然是事可取的。所以我们选择软的处理方式。

EM算法步骤

1.以某种方式初始化参数值。

2.迭代

  • 期望步骤:计算每个xi的h的后验概率:
00052a894d73400d8c530ebfd730b56e
  • 最大化步骤:更新参数

假定非隐藏数据已经获得,而不是隐藏h的数据xi

本文主要讲解GMM,EM算法就不详细推导了,后面会专门发文讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值