值漂移算法是一种基于密度梯度上升的非参数方法,它经常被应用在图像识别中的目标跟踪,数据聚类,分类等场景。
其核心思想是:首先随便选择一个中心点,然后计算该中心点一定范围之内所有点到中心点的距离向量的平均值,计算该平均值得到一个偏移均值,然后将中心点移动到偏移均值位置(另一种理解:在d维空间中,任选一个点,然后以这个点为圆心,h为半径做一个高维球,因为有d维,d可能大于2,所以是高维球。落在这个球内的所有点和圆心都会产生一个向量,向量是以圆心为起点落在球内的点位终点。然后把这些向量都相加。相加的结果就是Meanshift向量。再以meanshift向量的终点为圆心,再做一个高维的球。),通过这种不断重复的移动,可以使中心点逐步逼近到最佳位置。这种思想类似于梯度下降方法,通过不断的往梯度下降的方向移动,可以到达梯度上的局部最优解或全局最优解。几何解释为:如果样本点xi服从一个概率密度函数为f(x)的分布,由于非零的概率密度函数的梯度指向概率密度增加最大的方向,因此从平均上来说,Sh区域内的样本点更多的落在沿着概率密度梯度的方向。因此,Mean Shift向量Mh(x)应该指向概率密度梯度的方向,所以 均值漂移算法本质上是一种基于梯度的优化算法。
如下是漂移均值算法的思想呈现,首先随机选择一个中心点(绿色点),然后计算该点一定范围内所有点到这个点的距离均值,然后将该中心点移动距离均值,到黄色点处,同理,再计算该黄色点一定范围内的所有点到黄点的距离均值,经过多次计算均值--移动中心点等方式,可以使得中心点逐步逼近最佳中心点位置,即图中红色点处。
均值漂移算法的核心思想
1.1 均值漂移算法的基础公式
从上面核心思想可以看出,均值漂移的过程就是不断的重复计算距离均值,移动中心点的过程,故而计算偏移均值和移动距离便是非常关键的两个步骤,如下为计算偏移均值的基础公式。
image
其中Sh:以x为中心点,半径为h的高维球区域; k:包含在Sh范围内点的个数; xi:包含在Sh范围内的点
第二个步骤是计算移动一定距离之后的中心点位置,其计算公式为:
image
其中,Mt为t状态下求得的偏移均值; xt为t状态下的中心
很显然,移动之后的中心点位置是移动前位置加上偏移均值。
转自:链接:https://www.jianshu.com/p/b4c04c46159c