系列文章目录
接着上一期的3D点云–最近邻搜索结束后怎么利用这些点进行分类分割呢?这就是这一讲的内容–聚类(Clustering)
相关系列文章不断更新:
3D点云–最近邻查找
3D点云–聚类
文章目录
- 系列文章目录
- 一、K-Means
-
- 1. K-Means的核心思想
- 2. K-Means算法
- 3. K-Means算法步骤
- 4.总结K-Means
- 5.**应用**
- 二、Gaussian Mixture Model高斯混合模型
-
- 三、Expectation-Maximization(EM)
-
- 四、KMeans、GMM、EM
- 五、Spectral Clustering
-
- 1.矩阵
- 2.未归一化的Spectral Clustering
- 3.如何选K(由于无K,故聚类可假设为任何形状)
- 六、Meanshift和DBSCAN
- 聚类总结
本章内容介绍一下聚类,主要介绍K-Means、GMM、EM、Spectral Clustering这四种方法。
一、K-Means
1. K-Means的核心思想
在一群狗里有一只猫,所以猫是一类,狗是一类。即:某个点属于哪一类。该模型对于近似圆形的分类效果很好
2. K-Means算法
- 已知N个点{x1,x2,…,xn},求该点xi属于哪个类。K是类的个数,未知。将任务转化为最小化下式:
J= ∑ n = 1 N r n . k ∣ ∣ x n − u k ∣ ∣ 2 \color{red}\displaystyle\sum_{n=1}^{N} r_n._k||x_n-u_k||^2 n=1∑Nrn.k∣∣xn−uk∣∣2
3. K-Means算法步骤
算法步骤分为两部分:E-Step和M-Step
-
E-Step:求参数Rnk
简单的设定n维数据点的聚类中心u,便可以最小化||xn-uj||²,将rnk的值分为哦、0,1两种情况,如果k是聚类中心点,则r=1,否则,r=0.
-
M-Step:求参数unk
当r确定后,J成为了关于u的方程,当J’(一阶导数)=0时,此时可以求出J取得极值时的u(即聚类中心)
4.总结K-Means
1.初始化
2.依据经验求期望-r
3.最大化J-求u
下图为k-means的聚类分割效果,可以看到红和蓝完全分离,没有概率问题。
5.应用
可用于点云压缩。H×W×3的深度图对应于N×3的点,将其聚类为K类,N×3的点可被压缩为为N个标签。即:(XYZRGB)被压缩为(XYZL),这里的L是标签数,证明已经被聚类了。
注意:这里压缩的是rgb而不是pixel。也就是说把图片的点分为K类。
二、Gaussian Mixture Model高斯混合模型
1.提出
在K-Means中只知道点属于哪个类,但是不知道属于哪个类的概率。GMM是软分配,即知道这个是猫的概率为80%,为狗的概率为20%。
2.GMM
先来高斯公式。一维和多维公式如下:
GMM已知X,求π、u、∑。其实就是让点云数据最大化接近模型的过程。我们采用最大似然估计的方法计算GMM中的参数。有三个待求解参数,故可以定二求一。
- 求u,令u’=0,可以解释为分配给聚类k的有效点数,是数据集中所有点的加权平均值权重,()是后验概率。
- 求∑
- 求π
已知下式(一开始就定义了这个模型)
且由于π是概率,概率和为1是限制条件(条件是等式)
故使用拉格朗日乘子法进行优化参数λ求解:
对上式的π求导可得如下:
将上式结论带入可得π:
3.总结
GMM也有E-stpe和M-step步骤,与K-Means类似。K-Means是特殊的GMM,
大家可以看到有红色和蓝色融合的部分,是因为概率分布问题。且分类类似于椭圆形。
三、Expectation-Maximization(EM)
**EM:期望最大化方法**
算法过程
-
初始化参数
-
E-Step:计算p(Z|X, \theta old)
-
M-Step:更新theta(最优化问题)。Q可优化\theta
-
查看\theta是否收敛,未收敛则返回step-2
summary:其实就是求解优化下式的过程,其中theta是参数,Z在积分时可被去掉(表示某个点属于某个类这件事)
四、KMeans、GMM、EM
1、GMM是一种特殊的EM应用
- 参数{z_nk}和模型参数{u,∑,π}都用E-Step和M-Step估计
- 聚类概率通过r(z_nk)=p(z_nk=1 |x,u,∑,π)得到
2、K-Means是GMM的一种特殊情况
- 软分配(K-Means)变为了硬分配(GMM):γ–>r
- ∑–>0
五、Spectral Clustering
关注点与点的连接性(基于图论),其核心思想为:如何衡量一个size
1.矩阵
归一化:
未归一化: L=D-W
- L矩阵的特征值有几个,则有多少类;特征向量可以知道如何切割节点构成的无向图、
- 谱分解过程可转化为min cut的求解,min cut求解转化为瑞丽熵的求解。
2.未归一化的Spectral Clustering
- 建立图,寻找W矩阵。注:w_ij≥0,w_ii=0,未相连的两点w=0.
- 求解相似矩阵L
- 做特征分解,找出min的k个特征值,每行作为该类特征点。
- 在yi上做K-Means
3.如何选K(由于无K,故聚类可假设为任何形状)
- 通过eigenvalue analysis的方式
- 最稳定的聚类由最大化特征间隔的值(下图中4和5的差称为eigen-gap)
- Eigengapis连续特征值之间的差•Δ= | −−1 |光谱聚类
六、Meanshift和DBSCAN
MeansShift:(参数r)
- 以r为半径随机画圆
- 把圆移到inside的中心处
- 重复步骤2直到其不移动
- 重复1,2,3,移动overlapping的圆,如果圆overlap,则选择包含点数最多的圆
- 通过找到最近的圆的中心来确定聚类(类似于KMeans)
DBSCAN:(参数r,min_samples)
(高密度的点容易被低密度的噪声影响分类结果)
- 随机选择未访问过的点p,以r为半径画圆
- 在圆内的点数≥min_samples
Yes:p是核心点,创建一个聚类C
No:将p标记为噪声点并记录访问过
- 在半径为r的圆内,标记其为C类
如果是核心点,将其设置为新的p,重复步骤3
- 将C类移出数据集,返回步骤1
- 终止条件是遍历所有的点之后
聚类总结
不会真的有人觉得我会写总结吧,哈哈哈哈。不想写了,看图吧,英文看不懂在线翻译吧,实在不行私信我,呜呼,偷懒成功。
下一节一起来看ModelFitting 模型拟合,see U