Meanshift算法整理

把具体公式怎么推导的整理了一下

Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束。

基本的Mean Shift算法

给定d维空间Rd的n个样本点 ,i=1,…,n,在空间中任选一点x,那么Mean Shift向量的基本形式定义为: 

 

Sh是一个半径为h的高维球区域,满足以下关系的y点的集合:


k表示在这n个样本点xi中,有k个点落入Sk区域中


也就是,在d维空间中,任选一个点,然后以这个点为圆心,h为半径做一个高维球,因为有d维,d可能大于2,所以是高维球。落在这个球内的所有点和圆心都会产生一个向量,向量是以圆心为起点落在球内的点位终点。然后把这些向量都相加。相加的结果就是Meanshift向量。图中黄色箭头即为Meanshift向量。再以meanshift向量的终点为圆心,再做一个高维的球。如下图所以,重复以上步骤,就可得到一个meanshift向量。如此重复下去,meanshift算法可以收敛到概率密度最大得地方。也就是最稠密的地方。

以上是基本的Meanshift向量,可以看出只要是落入球内的点无论离x远近最后的作用效果是一样的,但是,一般来说离x越近的采样点对x的估计越有效,因此引入核函数概念。即对每个样本引入权重系数。

扩展的Meanshift

首先介绍核密度估计

核心思想是通过统计概率P来估计概率密度函数p(x)

假设N个样本数据点的集合X={x1,x2……xn}是根据概率密度函数p(x)的分布独立抽取得到,那么有K个样本落入区域R内的概率服从二项分布


K的期望为E(K)=NP,对P的估计为P’=K/N(当N足够大,该估计有一定准确性)

假设概率密度函数p(x)连续,R足够小使得R内p(x)几乎不变,R的体积为V则 P=p(x)*V  

 因为P’=K/N 代入得:

p(x)=K/(NV)…………………………(1)

当V不变,通过K估算密度函数。

假设区域R是一个以x为中心,边长为h的极小立方体

定义核函数

数据维数为D维,当样本数据点落入小立方体时,函数值为1,其他情况下为0。所以落入立方提数据点的总个数K就可以表示为

…………………………(2)

将(2)代入(1)得:

…………(3){V=h的D次幂}

对于径向对称核函数,核函数K(x)满足:


Ck,d是一个归一化的常量,能够保证K(x)积分为一

径向基函数通常定义空间中一点x到某一中心点xc的欧氏距离的单调函数为K(||x-xc||)其作用往往是局部的,即x远离xc时取值很小。

代入(3)得

……………………(4)

要使得上式f得到最大,最容易想到的就是对上式进行求导,得

……………………(5)

令g(x)=—k'(x)也就是求导的负方向(5)式可以表示为:

…………………………(6)

x点处基于核函数g(x)的非参数密度估计,也就是上式第一项为 

………………………………(7)

第二项就相当于一个meanshift向量的式子

…………………………(8)

(6)式即可表示为

……………………(9)

要使(9)式等于0,当且仅当(8)式等于0,即可得新的圆心坐标

………………………………(10)

具体的算法流程:

  1. 选择空间中x为圆心,以h为半径为半径,做一个高维球,落在所有球内的所有点xi
  2. 计算,如果<ε(人工设定),推出程序。如果>ε, 则利用(10)计算x,返回1.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值