小孩都看得懂的 GMM

全文共 1765 字,33 幅图,

预计阅读时间 10 分钟。

本文是「小孩都看得懂」系列的第十五篇,本系列的特点是内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!

  1. 小孩都看得懂的神经网络

  2. 小孩都看得懂的推荐系统

  3. 小孩都看得懂的逐步提升

  4. 小孩都看得懂的聚类

  5. 小孩都看得懂的主成分分析

  6. 小孩都看得懂的循环神经网络

  7. 小孩都看得懂的 Embedding

  8. 小孩都看得懂的熵、交叉熵和 KL 散度

  9. 小孩都看得懂的 p-value

  10. 小孩都看得懂的假设检验

  11. 小孩都看得懂的基尼不纯度

  12. 小孩都看得懂的 ROC

  13. 小孩都看得懂的 SVD

  14. 小孩都看得懂的 SVD 2

  15. 小孩都看得懂的 GMM

0

回顾聚类

聚类 (clustering) 是无监督学习中的一种任务类型,将没有标准的数据“聚”在一起,“赋予”它们标签,其过程如下面两图所示。

更多细节可参考【小孩都看得懂的聚类】一贴

1

一个难题

上图的数据可以“完美”聚成三类,下图的数据呢?

一种合适的聚类如下图所示。

2

软聚类

只要把“硬聚类 (hard clustering)” 的假设放宽到“软聚类 (soft clustering)”,问题就解决了。

硬聚类将每个点 (数据) 上同一种颜色,软聚类可以给点赋予不同颜色,有多少个类就有多少种颜色。以上图举例 (有两类):

  • 那些在黄圈 (不和蓝圈交集) 的点几乎都呈黄色

  • 那些在蓝圈 (不和黄圈交集) 的点几乎都呈蓝色

  • 那些在圈相交处的点同时层黄色篮色

黄色蓝色的比例由该店属于黄圈蓝圈的可能性决定。

上面逻辑弄懂,接下来就来介绍“聚类”的模型,混合高斯模型 (Gaussian Mixture Model, GMM)。

首先可视化一下高斯分布。

3

高斯分布

下图展示两种二维高斯分布,两个分布咋一看很相似(投影到水平面的中心点一样)。

将等高线画出来投影到水平面,就可以清晰看出两个高斯的不同之处了:

  • 第一个高斯在 x 和 y 方向的方差一样,而且 x 和 y 之间不相关

  • 第二个高斯在 x 和 y 方向的方差不一样,而且 x 和 y 之间相关

要点:二维高斯分布由均值、方差和协方差决定。

现在可以开始讲解 GMM 的算法了。

4

GMM 第一步:给点上色

核心:给定分布,给点上色。

以下图中五点举例,最边上的两点分别是黄色篮色,因为它们几乎属于黄圈篮圈。中间那点即可能属于黄圈也可能属于篮圈,可能性大概 50:50,因此一半黄色一半蓝色

给更多的点上色,没问题。

5

为了能更清晰的了解上色原理,假象我们从侧面看上面的立体图

这样可以“看到”下面一维的高斯分布 (从一个侧面看二维高斯分布就是一维高斯分布)。

左边的点明显更有可能来自黄色高斯分布,大概 75% 的可能性,因此点中黄色蓝色比例为 3:1。

中间的点有一半可能来自黄色高斯分布,一半可能来自蓝色高斯分布,因此点中黄色蓝色比例为 1:1。

右边的点极有可能来自蓝色高斯分布,大概 90% 的可能性,因此点中黄色蓝色比例为 1:9。

6

GMM 第二步:拟合高斯分布

核心:给定颜色,拟合高斯。

给定一组属于同类别数据点,即同种颜色,我们能很容易计算出质心 (center of mass),即统计学上的均值 (average) 点。

这组点在 x 和 y 方向分散程度,可用方差 (variance) 来衡量。

这组点的相关程度,可用协方差 (covariance) 来衡量。

算完均值、方差、协方差之后,带入高斯概率分布函数表达式就能得到一个具体的高斯分布了。

本节一开头说的给定颜色,意思就是能够计算这些数据点的均值、方差和协方差。

7

上节的结论也适用于非完整点,即非完整点 (如 25% 的点,10% 的点) 也可以拟合出高斯分布。

8

GMM 的两步弄清后,让我们完整来看如何用 GMM 来给数据聚类。

0 - 给定数据点

1 - 随机初始化两个高斯分布

2 - 根据两个高斯分布,给所有点上色

3 - 根据每个点的颜色 (或混合颜色),拟合两个高斯分布

拟合黄色高斯分布

拟合蓝色高斯分布

4 - 再根据两个高斯分布,给所有点上色

5 - 再根据每个点的颜色 (或混合颜色),拟合两个高斯分布

6 - 再根据两个高斯分布,给所有点上色

直到收敛。

这个收敛从表面上看,就是拟合的高斯分布很接近了,从细节来说,就是两次迭代的参数差异 (均值、方差、协方差) 小于一个阈值了。

9

总结:一图胜千言

GMM 就两步,不断运行直到收敛:

1. 给定分布,给点上色。

2. 给定颜色,拟合高斯。

朋友们,你们弄懂了 GMM 吗?


在有三 AI 平台上发布了两个系列的 Python 课程,感兴趣的同学可扫一下二维码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值