如何简单易懂的解释高斯混合(GMM)模型?
1个回答
展开全部
网上太多讲解例子,反而看的人云里雾里,我用自己的理解,旨在用最少的公式,用最短的时间来理解GMM。讲解不足之处,还望指正。
1.概述
高斯混合模型给出了一些点被分配到每个簇(Cluster)的概率,给出这些点的概率分布有何用呢?它表征了算法对结果的把握程度。如何理解呢,训练后的模型输出不再是一个具体值,不再是唯一决策函数y=f(x)作用后的唯一值,而是一系列概率值。举个例子,数据点集或者点云中的某一点,比如红色和蓝色簇边缘的那些点,既有可能属于蓝色簇,也有可能属于红色簇。函数作用后,分配到某一概率只是一个概率情况。点云的输出聚类情况,本来就是用来给控制模块去决策,输出不同簇的概率分布情况后,由后续控制模块通过融合其他诸如camera的识别概率来决策。
2.单高斯模型还是高斯混合模型
单高斯模型是指,数据集内分布的点,只有一个高斯分布即可覆盖。遵从如下概率分布函数,
这是最简单最理想的情况,实际情况却是,空间中一组点云,不可能一组高斯分布就能覆盖的,那么就需要多组高斯分布,混合高斯分布即由之而来,点在空间有疏有稀,不同高斯分布权重也不能一样,但所有权重值之和等于1,也就是下式中的ak。为什么权重之和为1呢,因为它本质还是一个概率密度分布函数,概率密度函数是指在概率密度曲线下方的面积,因此必然为1。
3.什么是隐变量?
通俗理解,假如有一组点集,我们分类之前是知道有5个点{a.b.c.d.e}的,又知道任意一点肯定是属于{A.B.C}三类的中的一类的,但是又不知道a点究竟属于哪个类。这就是隐变量。
4.有隐变量如何求最佳模型参数?
用最大似然估计法(MLE)求最大期望,也就是EM算法。网上有很多例子解释,最直观的就是掷硬币的例子,两枚硬币连掷五次,统计五次内正反的概率。(参考:如何感性地理解EM算法?)
核心思想就是,
(1)随机初始化一组参数θ0
(2)根据观测数据,和当前参数θ,求得未观测数据z的后验概率的期望
(3)求得的z有可能不是最优,根据最大似然法求最优的θ
(4)重复第二三步,直到收敛
其中第二步叫做求期望,E步,第三步叫做求最大化,M步,合起来就是EM算法。
用向两个盘子盛菜举例来类比EM算法,食堂大厨炒了一个菜,分成两个盘子盛菜。大厨盛菜,看哪个盘子菜多,就把这个盘子菜向另外一个匀匀,直到多次重复,达到两个盘子的菜量大致一样的过程,然后端出去售卖。
大厨刚开始给两个盘都倒了菜,这就是赋初值,但是手感不好,一个多一个少。E步就是给两个盘子匀菜,M步最终迭代后,两个盘达到了均匀。无论赋初值多少,你会发现你去食堂买菜,相同菜品拿哪个盘子似乎菜量都是一样的。
非常直观,很容易理解。
5 如何求最大化似然概率?
单高斯比较好求,由高中数学知识可知道,函数求导,导数等于0的地方就是极值点所在。
那么混合高斯函数呢?
上式log里面有求和∑,这是我们不喜欢的,log里面我们喜欢的是乘除,最困难的地方也是最不好理解的地方出现了。
如何求解?只能通过通过迭代的方法进行求解,怎么求,Jensen不等式。我贴一下图方便理解。
从上图可以看到,curve曲线上的点一定小于切线(也就是求导数)的点。于是下式就成立了。我们就把和的对数,变成了对数的和,那么求导就变得容易多了。
Jesen不等式,相当于应用在凹函数上,不等号的方向反向了。
最后求得新一轮的迭代模型参数为下面:
当|θ-θ|<ε收敛后,至此我们就找到了所有的高斯混合模型的参数。
1.概述
高斯混合模型给出了一些点被分配到每个簇(Cluster)的概率,给出这些点的概率分布有何用呢?它表征了算法对结果的把握程度。如何理解呢,训练后的模型输出不再是一个具体值,不再是唯一决策函数y=f(x)作用后的唯一值,而是一系列概率值。举个例子,数据点集或者点云中的某一点,比如红色和蓝色簇边缘的那些点,既有可能属于蓝色簇,也有可能属于红色簇。函数作用后,分配到某一概率只是一个概率情况。点云的输出聚类情况,本来就是用来给控制模块去决策,输出不同簇的概率分布情况后,由后续控制模块通过融合其他诸如camera的识别概率来决策。
2.单高斯模型还是高斯混合模型
单高斯模型是指,数据集内分布的点,只有一个高斯分布即可覆盖。遵从如下概率分布函数,
这是最简单最理想的情况,实际情况却是,空间中一组点云,不可能一组高斯分布就能覆盖的,那么就需要多组高斯分布,混合高斯分布即由之而来,点在空间有疏有稀,不同高斯分布权重也不能一样,但所有权重值之和等于1,也就是下式中的ak。为什么权重之和为1呢,因为它本质还是一个概率密度分布函数,概率密度函数是指在概率密度曲线下方的面积,因此必然为1。
3.什么是隐变量?
通俗理解,假如有一组点集,我们分类之前是知道有5个点{a.b.c.d.e}的,又知道任意一点肯定是属于{A.B.C}三类的中的一类的,但是又不知道a点究竟属于哪个类。这就是隐变量。
4.有隐变量如何求最佳模型参数?
用最大似然估计法(MLE)求最大期望,也就是EM算法。网上有很多例子解释,最直观的就是掷硬币的例子,两枚硬币连掷五次,统计五次内正反的概率。(参考:如何感性地理解EM算法?)
核心思想就是,
(1)随机初始化一组参数θ0
(2)根据观测数据,和当前参数θ,求得未观测数据z的后验概率的期望
(3)求得的z有可能不是最优,根据最大似然法求最优的θ
(4)重复第二三步,直到收敛
其中第二步叫做求期望,E步,第三步叫做求最大化,M步,合起来就是EM算法。
用向两个盘子盛菜举例来类比EM算法,食堂大厨炒了一个菜,分成两个盘子盛菜。大厨盛菜,看哪个盘子菜多,就把这个盘子菜向另外一个匀匀,直到多次重复,达到两个盘子的菜量大致一样的过程,然后端出去售卖。
大厨刚开始给两个盘都倒了菜,这就是赋初值,但是手感不好,一个多一个少。E步就是给两个盘子匀菜,M步最终迭代后,两个盘达到了均匀。无论赋初值多少,你会发现你去食堂买菜,相同菜品拿哪个盘子似乎菜量都是一样的。
非常直观,很容易理解。
5 如何求最大化似然概率?
单高斯比较好求,由高中数学知识可知道,函数求导,导数等于0的地方就是极值点所在。
那么混合高斯函数呢?
上式log里面有求和∑,这是我们不喜欢的,log里面我们喜欢的是乘除,最困难的地方也是最不好理解的地方出现了。
如何求解?只能通过通过迭代的方法进行求解,怎么求,Jensen不等式。我贴一下图方便理解。
从上图可以看到,curve曲线上的点一定小于切线(也就是求导数)的点。于是下式就成立了。我们就把和的对数,变成了对数的和,那么求导就变得容易多了。
Jesen不等式,相当于应用在凹函数上,不等号的方向反向了。
最后求得新一轮的迭代模型参数为下面:
当|θ-θ|<ε收敛后,至此我们就找到了所有的高斯混合模型的参数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询