MeanShift 可以翻譯為“均值漂移”,它在聚類、圖像平滑、圖像分割和跟蹤方面得到了比較廣泛的應(yīng)用。MeanShift 這個(gè)概念最早是由Fukunaga等人于1975年在一篇關(guān)于概率密度梯度函數(shù)的估計(jì)(The Estimation of the Gradient of a Density Function, with Applications in Pattern Recognition)中提出來的。其最初含義正如其名:就是偏移的均值向量。在這里MeanShift是一個(gè)名詞,它指代的是一個(gè)向量。但隨著Mean Shift理論的發(fā)展,MeanShift的含義也發(fā)生了變化。如果我們說MeanShift算法,一般是指一個(gè)迭代的步驟,即先算出當(dāng)前點(diǎn)的偏移均值,移動(dòng)該點(diǎn)到其偏移均值,然后以此為新的起始點(diǎn)繼續(xù)移動(dòng),直到滿足一定的條件結(jié)束。
在很長(zhǎng)一段時(shí)間內(nèi),MeanShift算法都沒有得到足夠的重視,直到1995年另一篇重要論文的發(fā)表。該論文的作者Yizong Cheng定義了一族核函數(shù),使得隨著樣本與被偏移點(diǎn)的距離不同,其偏移量對(duì)均值偏移向量的貢獻(xiàn)也不同。其次,他還設(shè)定了一個(gè)權(quán)重系數(shù),使得不同樣本點(diǎn)的重要性不一樣,這大大擴(kuò)展了MeanShift的應(yīng)用范圍。此外,還有研究人員將非剛體的跟蹤問題近似為一個(gè)MeanShift的最優(yōu)化問題,使得跟蹤可以實(shí)時(shí)進(jìn)行。目前,利用MeanShift進(jìn)行跟蹤已經(jīng)相當(dāng)成熟。MeanShift算法其實(shí)是一種核密度估計(jì)算法,它將每個(gè)點(diǎn)移動(dòng)到密度函數(shù)的局部極大值點(diǎn)處。
下面介紹MeanShift算法的理論:
在給定d維空間Rd的n個(gè)樣本點(diǎn)
核函數(shù)K(x)滿足如下關(guān)系:
歸一化:
對(duì)稱性:
權(quán)重的指數(shù)衰減:
條件:
其中上式c為常數(shù)。對(duì)于有限數(shù)量的data,實(shí)際應(yīng)用中K(x)有兩種獲取的形式:
第一種形式,在各個(gè)維度上都使用相同的函數(shù)k(x),第二種形式表示只使用了向量的長(zhǎng)度。因?yàn)閨|*||表示歐式距離。在Rd表示的d維空間中,參數(shù)h是樣本數(shù)量n的函數(shù),應(yīng)當(dāng)滿足
其中,當(dāng)核函數(shù)采用Epanechnikov核時(shí),均方誤差最小。Epanechnikov核表示為:
其中
定義核函數(shù)的輪廓(profile,也可翻譯為剖面函數(shù))函數(shù)k(x)滿足k:[0,
其中
下面介紹Kernel DensityGradientEstimation:
定義一個(gè)輪廓函數(shù)(profile)
參考文獻(xiàn)中說K(x)was called the shadow of G(x),這里不太理解這個(gè)shadow的意思?同樣也說Epanechnikov kernel is the shadow of the uniform kernel
根據(jù)核函數(shù)的可微性,密度梯度估計(jì)恒等于核密度估計(jì)的梯度,可以得到:
將g(x)帶入上式得到:
假設(shè)
則mean shift向量可表示為:
以核函數(shù)作為權(quán)重,x作為窗口的中心。
上面的式子表明,在點(diǎn)x處,基于核函數(shù)G(x)的mean shift向量與基于核函數(shù)K(x)的密度梯度估計(jì)僅相差一個(gè)常數(shù)的比例系數(shù)。而梯度是指密度變化最大的方向,所以mean shift向量也是指向密度增大最大的方向。
反復(fù)進(jìn)行以下步驟就是MeanShift算法的過程:
1)計(jì)算mean shift向量
2)根據(jù)
3)若
最終核函數(shù)的中心點(diǎn)收斂到數(shù)據(jù)空間中密度最大的點(diǎn),它的密度梯度估計(jì)為0。mean shift向量也總是指向密度增大最大的方向,這可由上式的分子項(xiàng)來保證。而分母項(xiàng)則表示每次迭代核函數(shù)移動(dòng)的步長(zhǎng)。在不包含興趣特征的區(qū)域內(nèi),步長(zhǎng)較長(zhǎng);在感興趣的區(qū)域內(nèi),步長(zhǎng)較短。即MeanShift算法是一個(gè)變步長(zhǎng)的梯度上升算法,或稱為自適應(yīng)梯度上升算法。
小結(jié):
根據(jù)mean shift向量,定義半徑為h的高維球區(qū)域S-h,并滿足一下關(guān)系的y點(diǎn)的集合:
k表示在這n個(gè)點(diǎn)xi中,有k個(gè)點(diǎn)落入S-h區(qū)域中。
我們可以看到(xi - x)是樣本點(diǎn)xi相對(duì)于點(diǎn)x的偏移向量。mean shift向量就是對(duì)落入?yún)^(qū)S-h中的k個(gè)樣本點(diǎn)相對(duì)于點(diǎn)x的偏移向量求和然后再平均。從直觀上看,如果樣本點(diǎn)xi從一個(gè)概率密度函數(shù)f(x)中采樣得到,由于非零的概率密度梯度指向概率密度增加最大的方向。因此從平均上來說,區(qū)域內(nèi)的樣本點(diǎn)更多的落在沿著概率密度梯度的方向。因此,對(duì)應(yīng)的mean shift向量應(yīng)該指向概率密度梯度的方向。如下圖所示:
大圓圈所圈定的范圍就是S-h,小圓圈代表落入S-h區(qū)域內(nèi)的樣本點(diǎn)。黑點(diǎn)就是meanshift的基準(zhǔn)點(diǎn),箭頭表示樣本點(diǎn)相對(duì)于基準(zhǔn)點(diǎn)x的偏移向量。很明顯的,我們可以看出平均的偏移向量
聯(lián)系客服