BOW模型在ANN框架下的解释
BOW模型在ANN框架下的解釋
作者:孤風(fēng)一劍 ? 發(fā)布:2013-12-25 09:50 ? 欄目:其它語(yǔ)言 ? 點(diǎn)擊:720次 ? 搶沙發(fā) ?Bag of words模型(簡(jiǎn)稱BOW)是最常用的特征描述的方法了。在圖像分類和檢索的相關(guān)問(wèn)題中,能夠?qū)⒁幌盗袛?shù)目不定的局部特征聚合為一個(gè)固定長(zhǎng)度的特征矢量,從而使不同圖像之間能夠進(jìn)行直接比較。BOW的改進(jìn)方法包括一些稀疏的編碼方式(如llc),kernel codebooks等,使得BOW一般作為benchmark被比較。然而,BOW往往作為一種編碼方式被解釋著(SIFT作為coding,BOW作為average pooling),在這里,我會(huì)從一個(gè)近似最近鄰(approximate nearest neighbor)的角度解釋一下BOW。
假設(shè)有兩幅圖像A和B,A有一系列描述子(例如SIFT){x1,x2…xn}組成,而B(niǎo)由{y1,y2…ym}組成。為了計(jì)算這兩幅圖之間的相似度,最直接的方法是采用一下的voting system:
(1)
其中f是一個(gè)匹配函數(shù),反映了xi與yj之間是否匹配。對(duì)于一個(gè)ε-search和k-NN的匹配方式下,f分別定義為:
?
按(1)式將所有的i和j累加起來(lái),再對(duì){x}和{y}做歸一化(這對(duì)應(yīng)于BOW的L1歸一化),就能夠得到A和B的一個(gè)相似度度量(此時(shí)s的值越大,表示A和B之間匹配的特征對(duì)的數(shù)目越多)。
我們令f反映的匹配方式為最近鄰匹配,此時(shí)yj是xi的最近鄰時(shí)(一般還需要這個(gè)最近鄰的距離與次近鄰的距離的比值小于一定閾值),認(rèn)為yj和xi是匹配的。但是潛在的一個(gè)問(wèn)題就是如果兩幅圖包含的SIFT特征十分多(一般是1000以上的數(shù)量級(jí)),exhaustively?search將是十分耗時(shí)的,時(shí)間復(fù)雜度是O(nm),需要大量的搜索時(shí)間。因此常常用approximate nearest neighbor代替exact nearest neighbor,如下圖所示。
?
近似的最近鄰有可能與真實(shí)的最近鄰有所偏差,但是計(jì)算上時(shí)間復(fù)雜度大大降低。
常見(jiàn)的ANN的方法有k-d tree(通過(guò)生成一棵樹(shù)對(duì)D維特征空間進(jìn)行劃分,待匹配的特征點(diǎn)會(huì)從與之屬于同一子空間的點(diǎn)開(kāi)始查找),BBF(改進(jìn)的k-d tree方法,在k-d tree回溯的時(shí)候引入優(yōu)先級(jí)的隊(duì)列),Locality-sensitive Hashing(通過(guò)一系列隨機(jī)的哈希函數(shù),使得經(jīng)過(guò)哈希投影后兩特征點(diǎn)哈希值相等的概率與原特征的相似度之間形成一對(duì)應(yīng)關(guān)系)。
LSH是最需要一說(shuō)的,但是限于篇幅我又不想在這里說(shuō),我在后面的文章中肯定會(huì)再提到,如果大家不太了解的話可以先看這里。在這里到提到的結(jié)論是,對(duì)于歐式距離作為相似度的情況下,LSH選擇的哈希函數(shù)是一個(gè)隨機(jī)的投影函數(shù):
? ?(2)
?
這個(gè)投影函數(shù)相當(dāng)于將原始特征向量投影到一條隨機(jī)的直線上,然后將這條直線劃分為長(zhǎng)度為bi的多條線段,會(huì)落入同一線段上的兩特征點(diǎn)被認(rèn)為是相似的。我們選擇多個(gè)投影函數(shù)共同作用,要求在這多個(gè)投影函數(shù)上的取值都相等的兩個(gè)點(diǎn),才被認(rèn)為是近鄰的。這些投影函數(shù)的作用,相當(dāng)于對(duì)整個(gè)描述子的特征空間做隨機(jī)的劃分,如下圖所示:
?
落入同一子空間的點(diǎn),都被認(rèn)為是近鄰的。至于為什么是隨機(jī)投影函數(shù),這里有比較詳細(xì)的解釋,我以后有空再到文章中做介紹。
從LSH的效果上來(lái)看,很明顯就是我們只要能夠選擇一種合理的劃分特征空間的方式,就能認(rèn)為落入同一子空間的所有點(diǎn)是近鄰的。隨機(jī)投影盡管能夠滿足LSH的基本假設(shè),但是這個(gè)“隨機(jī)”,其實(shí)是很蛋疼的,因?yàn)殡S著投影的直線越來(lái)越多,很多直線存在的意義是值得思考的,也就是說(shuō)如果我們已經(jīng)選了1000中隨機(jī)投影的方法,那么第1001中投影的方法應(yīng)該盡可能在效果上不同于前1000中(這樣才能體現(xiàn)它最大的價(jià)值嘛),而隨機(jī)顯然不能保證這一效果。所以,我們完全可以通過(guò)所有樣本的分布情況,學(xué)習(xí)出一種劃分方式。沒(méi)錯(cuò),k-means,無(wú)疑是一種實(shí)現(xiàn)手段,如下圖:
?
好,終于繞了半天以后繞到BOW上來(lái)了,BOW不就是用k-means訓(xùn)練了一個(gè)碼數(shù),然后所有SIFT描述子都往這本碼數(shù)上做硬投影(其實(shí)就是投影到一個(gè)子空間中)了么。投影后,在同一個(gè)碼字上的所有點(diǎn)都認(rèn)為是相匹配的。回到(1)式的f(xi,yj)函數(shù)中來(lái),如果xi和yj落入同一個(gè)碼字上,那么它們就被認(rèn)為是相匹配的(注意這里一個(gè)xi可能與B圖像的多個(gè)特征相匹配了,我最后還會(huì)接著解釋)。這種設(shè)計(jì),會(huì)是f的一種取法。
再看看BOW的矢量本身,如果我們采用內(nèi)積來(lái)計(jì)算兩個(gè)圖像之間的相似度(在此不考慮對(duì)BOW矢量做歸一化)。BOW特征的第i維表示圖像所有SIFT在第i個(gè)碼字上的投影的數(shù)目(對(duì)A和B兩幅圖分別用Ai和Bi表示),那么這一維上內(nèi)積的結(jié)果就是Ai*Bi。這不正是在第i個(gè)子空間,A圖的所有SIFT點(diǎn)與B圖所有SIFT點(diǎn)的兩兩匹配的所有種可能嗎?正好對(duì)應(yīng)著前面所說(shuō)的f()。
原來(lái)內(nèi)積對(duì)應(yīng)著兩兩匹配的所有可能,但是這很不合理啊,一個(gè)特征點(diǎn)按理應(yīng)該在另一幅圖中最多找到1個(gè)對(duì)應(yīng)的匹配才對(duì),如果用內(nèi)積來(lái)描述相似度,一個(gè)點(diǎn)不就被匹配了n多次了么?不合理啊不合理。而如果用直方圖相交的話,取min(Ai,Bi),這樣一個(gè)點(diǎn)不就最多找到1個(gè)對(duì)應(yīng)的匹配了嗎?正是因?yàn)檫@樣,直方圖相交是一種更好的度量BOW這類直方圖的方式(而不應(yīng)該用余弦?jiàn)A角或者內(nèi)積)。而從數(shù)學(xué)上來(lái)說(shuō),適合L1歸一化的特征(直方圖一類的特征)不適合用歐氏距離來(lái)度量距離,而更適合用Hellinger kernel,Mercer kernel之類的,不過(guò)我在這里也不做解釋了,大家應(yīng)該從其他文獻(xiàn)中能找到答案。
本文固定鏈接: http://www.devba.com/index.php/archives/4013.html | 開(kāi)發(fā)吧
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的BOW模型在ANN框架下的解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SDCC 2015算法专场札记:知名互联
- 下一篇: 微软研究员在ImageNet计算机视觉识