meanshift算法简介资料下载.pdf
《meanshift算法简介资料下载.pdf》由会员分享,可在线阅读,更多相关《meanshift算法简介资料下载.pdf(15页珍藏版)》请在冰豆网上搜索。
ThSxyyxyxh
(2)k表示在这n个样本点ix中,有k个点落入hS区域中.我们可以看到ixx是样本点ix相对于点x的偏移向量,
(1)式定义的MeanShift向量()hMx就是对落入区域hS中的k个样本点相对于点x的偏移向量求和然后再平均.从直观上看,如果样本点ix从一个概率密度函数fx中采样得到,由于非零的概率密度梯度指向概率密度增加最大的方向,因此从平均上来说,hS区域内的样本点更多的落在沿着概率密度梯度的方向.因此,对应的,MeanShift向量()hMx应该指向概率密度梯度的方向.图1,MeanShift示意图如上图所示,大圆圈所圈定的范围就是hS,小圆圈代表落入hS区域内的样本点ihxS,黑点就是MeanShift的基准点x,箭头表示样本点相对于基准点x的偏移向量,很明显的,我们可以看出,平均的偏移向量()hMx会指向样本分布最多的区域,也就是概率密度函数的梯度方向.扩展的扩展的MeanShift核函数核函数首先我们引进核函数的概念.定义定义:
X代表一个d维的欧氏空间,x是该空间中的一个点,用一列向量表示.x的模2Txxx.R表示实数域.如果一个函数:
KXR存在一个剖面函数:
0,kR,即2()Kxkx(3)并且满足:
(1)k是非负的.
(2)k是非增的,即如果ab那么()()kakb.(3)k是分段连续的,并且0()krdr那么,函数()Kx就被称为核函数.举例举例:
在MeanShift中,有两类核函数经常用到,他们分别是,单位均匀核函数:
1if1()0if1xFxx(4)单位高斯核函数:
2()xNxe(5)这两类核函数如下图所示.图2,(a)单位均匀核函数(b)单位高斯核函数一个核函数可以与一个均匀核函数相乘而截尾,如一个截尾的高斯核函数为,2if()0ifxexNFxx(6)图3显示了不同的,值所对应的截尾高斯核函数的示意图.图3截尾高斯核函数(a)11NF(b)0.11NFMeanShift扩展形式扩展形式从
(1)式我们可以看出,只要是落入hS的采样点,无论其离x远近,对最终的()hMx计算的贡献是一样的,然而我们知道,一般的说来,离x越近的采样点对估计x周围的统计特性越有效,因此我们引进核函数的概念,在计算()hMx时可以考虑距离的影响;
同时我们也可以认为在这所有的样本点ix中,重要性并不一样,因此我们对每个样本都引入一个权重系数.如此以来我们就可以把基本的MeanShift形式扩展为:
11()()()()()nHiiiinHiiiGxxwxxxMxGxxwx(7)其中:
1/21/2()HiiGxxHGHxx()Gx是一个单位核函数H是一个正定的对称dd矩阵,我们一般称之为带宽矩阵()0iwx是一个赋给采样点ix的权重在实际应用的过程中,带宽矩阵H一般被限定为一个对角矩阵221diag,.,dHhh,甚至更简单的被取为正比于单位矩阵,即2HhI.由于后一形式只需要确定一个系数h,在MeanShift中常常被采用,在本文的后面部分我们也采用这种形式,因此(7)式又可以被写为:
11()()()()()niiiihniiixxGwxxxhMxxxGwxh(8)我们可以看到,如果对所有的采样点ix满足
(1)()1iwx
(2)1if1()0if1xGxx则(8)式完全退化为
(1)式,也就是说,我们所给出的扩展的MeanShift形式在某些情况下会退化为最基本的MeanShift形式.MeanShift的物理含义的物理含义正如上一节直观性的指出,MeanShift指向概率密度梯度方向,这一节将证明MeanShift向量hMx是归一化的概率密度梯度.在本节我们还给出了迭代MeanShift算法的详细描述,并证明,该算法会收敛到概率密度函数的一个稳态点.概率密度梯度概率密度梯度对一个概率密度函数()fx,已知d维空间中n个采样点ix,i=1,n,()fx的核函数估计(也称为Parzen窗估计)为,11()()()niiindiixxKwxhfxhwx(9)其中()0iwx是一个赋给采样点ix的权重()Kx是一个核函数,并且满足()1kxdx我们另外定义:
核函数()Kx的剖面函数剖面函数()kx,使得2()Kxkx(10);
()kx的负负导函数导函数()gx,即()()gxkx,其对应的核函数2()Gxgx(11)概率密度函数()fx的梯度()fx的估计为:
21212()()()()niiiindiixxxxkwxhfxfxhwx(12)由上面的定义,()()gxkx,2()Gxgx,上式可以重写为21212112112()()()()()2()()niiiindiininiiiiiindniiiiixxxxGwxhfxhwxxxxxxxGwxGwxhhxxhhwxGwxh(13)上式右边的第二个中括号内的那一部分就是(8)式定义的MeanShift向量,第一个中括号内的那一部分是以()Gx为核函数对概率密度函数()fx的估计,我们记做()Gfx,而(9)式定义的()fx我们重新记做()Kfx,因此(11)式可以重新写为:
()fx()Kfx22()GhfxMxh(14)由(12)式我们可以得出,2()12()KhGfxMxhfx(15)(15)式表明,用核函数G在x点计算得到的MeanShift向量hMx正比于归一化的用核函数K估计的概率密度的函数()Kfx的梯度,归一化因子为用核函数G估计的x点的概率密度.因此MeanShift向量hMx总是指向概率密度增加最大的方向.MeanShift算法算法算法步骤算法步骤我们在前面已经指出,我们在提及MeanShift向量和MeanShift算法的时候指代不同的概念,MeanShift向量是名词,指的是一个向量;
而MeanShift算法是动词,指的是一个迭代的步骤.我们把(8)式的x提到求和号的外面来,可以得到下式,11()()()()niiiihniiixxGwxxhMxxxxGwxh(16)我们把上式右边的第一项记为()hmx,即11()()()()()niiiihniiixxGwxxhmxxxGwxh(17)给定一个初始点x,核函数()GX,容许误差,MeanShift算法循环的执行下面三步,直至结束条件满足,
(1).计算()hmx
(2).把()hmx赋给x(3).如果()hmxx,结束循环;
若不然,继续执行
(1).由(16)式我们知道,()hhmxxMx,因此上面的步骤也就是不断的沿着概率密度的梯度方向移动,同时步长不仅与梯度的大小有关,也与该点的概率密度有关,在密度大的地方,更接近我们要找的概率密度的峰值,MeanShift算法使得移动的步长小一些,相反,在密度小的地方,移动的步长就大一些.在满足一定条件下,MeanShift算法一定会收敛到该点附近的峰值,这一收敛性由下面一小节给出证明.算法的收敛性证明算法的收敛性证明我们用jy,1,2,.j来表示MeanShift算法中移动点的痕迹,由(17)式我们可写为,111()()()()nijiiijnijiixyGwxxhyxyGwxh,1,2,.j(18)与jy对应的概率密度函数估计值()jfy可表示为,11()()()nijiiKjndiixyKwxhfyhwx(19)下面的定理将证明序列jy和()jfy的收敛性.定定理理:
如果核函数()Kx有一个凸的,单调递增的剖面函数,核函数()Gx由式(10)和(11)定义,则序列jy和()jfy是收敛的.证明证明:
由于n是有限的,核函数()(0)KxK,因此序列()jfy是有界的,所以我们只需要证明()jfy是严格递增的的,即要证明,对所有j=1,2,如果1jjyy,那么()jfy1()jfy(20)不失一般性,我们可以假设0jy,由(19)式和(10)式,我们可以得到1()jfy()jfy221111()()nijijinidiixyxykkwxhhhwx(21)由于剖面函数()kx的凸性意味着对所有12,0,)xx且12xx,有2121()()()()kxkxkxxx(22)因为()()gxkx,上式可以写为,2112()()()()kxkxgxxx(23)结合(21)与(23)式,可以得到,1()jfy()jfy222111211()()nijijiinidiixygxyxwxhhwx2211112112()()nijTjijinidiixygyxywxhhwx12221211112()()()jnnTiiiijindiiiixxyxgwxygwxhhhwx(24)由(18)式我们可以得出,1()jfy()jfy2211211()nijnidiixyghhwx(25)由于剖面函数()kx是单调递减的,所以求和项210niixgh,因此,只要10jjyy(25)式的