本系列笔记是对深蓝学院所开设的课程:《三维点云处理》的笔记
课程每周更新,我也会努力将每周的知识点进行总结,并且整理成笔记发上来,欢迎各位多多交流&批评指正!!
本文主要为课程第三章的笔记!
课程链接:
三维点云处理——深蓝学院
正式内容:
####################################################
聚类就是一种按一定特征分类的问题:
上图为五种常见的python交互算法
方法的背后有很多的数学原理
线性代数、高等数学、概率论等一些数学基础都会被用到
2. 边缘分布 marginalization
一个联合概率的 heatmap
离散的情况:
3. 条件概率
联合概率不关心另一个参数,而条件概率需要知道参数,只考虑这一条线就好了 而联合概率是一整条线的分布
条件概率并不是一个合法的分布,但是可以通过一个归一化进行分布
条件概率并不是一个合法的分布,但是可以通过一个归一化进行分布,即贝叶斯公式
进一步 贝叶斯公式可以被拓展成四种公式。
4. 图论相关知识
有向图:即两个参数是有联系的(有相关性)就可以以有向图的形式表示
如果两个事件独立,则无法用有向图表示
即当一个点为最优值的时候,他一定是跟梯度方向相反,法线相切的,否则的话就会有梯度方向上的分量,还可以望梯度方向走
用数学公式的方法表示:
即解决一个 三个变量的一阶导数等于零的方程
常见、简单、且效果非常好
特点:需要给定类属 他不会自己生成
步骤:
其实核心的部分两步:
固定中心 ,去归类
固定类,选取中心
对应上述的两个图
一直迭代
迭代停止有两个条件: (判断是否收敛)
1.类的中心点不再移动或者移动的特别小
2. 连续两次迭代的分类不在改变(就永远的都不改变了)
3. 还有可能出现的一点就是 循环 有一些点不断跳动,导致无限循环(也要考虑 可以设置一个最大迭代次数)
如果数据有噪声,就会被拉偏(受极端值影响)
用距离之和最小的数据点中的一个点 代替平均值 进行核替代
而且还能判断猫狗之类不可量化的 东西(如1当猫2当狗 这种聚类方法就可以做聚类)
局限:如果距离不能用的话,就用不了聚类
高斯混合模型
可以理解成,在K-Means 的基础上,对每一个类用一个高斯分布来描述
高斯分布复习:
数学上,GMM表示为k个高斯模型的组合 (其中K 是给定的)
所以 一个GMM是由3个参数描述的,μ σ π
如果确定了这三个参数,就能确定一个高斯分布
(可以根据高斯分布用来产生新的数据)
Zk 用来表达一个点属于哪一个类 等于就为1 不等于就为0 但这个是有概率的
要考虑先验分布
后验概率计算:
但是问题是 高斯模型的参数是需要计算的:不是已知的
如果出现一个点就是一个高斯分布的情况,方差为0,就会把系统搞崩
这个时候MLE就不再适用了,需要换做其它的模型
或者如果出现一个方差数值为零或者特别小,就强行把他初始化成另一个值就可以了
表达为图像可以理解成这样:
刚才所讲到 的 estep 和mstep 其实都是从EM算法中获取的
EM算法也是一个非常重要的模型
它所解决的问题: 给定一堆数据点 用最大似然的方法估算出模型的参数 θ(不断迭代优化θ)
可以发现 可以用最大似然优化概率函数,也可直接用EM优化算子,得出的结论其实是一样的
事实上 Kmeans 是一种特殊的 GMM
可以把Kmeans 看成一个方差为0的GMM
EM是一个通用的算法 GMM可以认为是一个EM的应用(应用在高斯线性组合) Kmeans又可以理解成一个GMM的特殊情况
可以看到 针对不同形状或聚类方式不同的点,
KMEANS 和GMM有时表现的都不够好 因为Kmeans倾向于按圆分类,而 GMM倾向于按椭圆分类
所以后来要介绍 谱聚类 也就是中间的那个框 可以解决常见的点聚类,有较好的适应性
GMM和kMEANS一般都是基于欧式空间上的,所以都会按照圆或者椭圆去聚类
但是谱聚类关注的是点与点的连接性
会用到无向图的概念:节点与节点之间有无方向的连线
可以把一个无向图画成矩阵的形式,一类的和不一类的 (是对称矩阵,所以对角线为0)
建立矩阵:
建立一个对角矩阵D 储存每一列对角的和 物理意义是其所连接的点所有权重的位置之和
建立一个拉普拉斯矩阵L : 最简单的L可以用L=D-W
然后有两种方法对拉普拉斯矩阵进行归一化
谱聚类 大概总结成三个步骤:
经过归一化的谱聚类 更倾向于每一个类里面的密度是接近的
没有归一化的谱聚类倾向于每个点的数量是均等的
结合具体应用具体进行分析
谱聚类可以理解成经过一个拉普拉斯的Kmeans
复杂度:N的三次方
优点是基于连结性的,而不是基于欧氏距离的
另一个优点是可以自己发现种类
但是缺点是复杂度极高