基於雜湊的影象檢索技術

經年不往發表於2018-07-05

為什麼在影象檢索裡面使用到雜湊(hashing)演算法?

基於雜湊演算法的影象檢索方法將圖片的高維內容特徵對映到漢明空間(二值空間)中,生成一個低維的雜湊序列來表示一幅圖片,降低了影象檢索系統對計算機記憶體空間的要求,提高了檢索速度,能更好的適應海量圖片檢索的要求。

最近或者最近鄰問題在大規模的資料查詢中用得非常多。但是他們都會遇到一個問題,就是"維數災難"。也就是說當資料的維數太大的時候,之前的那些索引方法(如KD樹)就不能起到作用,這時候新的方法就很有必要,雜湊演算法滿足了這個要求。

 

相似性搜尋演算法的評價標準

為了解決相似性搜尋問題,人們提出了很多相似性搜尋的演算法實現,而為了衡量這些演算法的優劣,需要引入相似性搜尋演算法的評價機制。一般來講,一個相似性搜尋演算法可以從以下幾個方面進行評價

這個性質描述的是相似性搜尋演算法的查詢質量。對於給定的查詢請求,演算法必須返回符合條件的查詢結果,而且查詢結果最好能和通過線性查詢得到的結果一致。文字檢索領域的兩個著名指標可以用在此處來衡量查詢質量,它們分別是召回率(recall)和精度(precision)。

召回率和精度的定義如下:

 

CBIR中的Hashing演算法有哪些?

要解決這個問題,首先我們得用數學的方法將這個問題描述一下:

我們有一個包含個點的集合,,這樣矩陣的形式就是。我們的目標是尋找到一個二元編碼的集合,c表示編碼的長度。對於每一個位我們使用,是超平面的係數。

 

從訓練資料是否有Label(標記)上來分,CBIR中的hashing演算法分為三類,監督學習,無監督學習,半監督學習。

 

監督學習

Semantic hashing (RBMs)

受限玻爾茲曼機是一個深度學習模型,每一層都表示一個受限玻爾茲曼機,最底層受限玻爾茲曼機的輸入是原始高維資料,通過該受限玻爾茲曼機計算得到一箇中間值,然後將這個中間值作為下一個受限玻爾茲曼機的輸入,繼續計算得到新的中間值,重複此過程,直到從頂層的受限玻爾茲曼機計算得到最終的編碼結果。這個過程被稱作預訓練。而圖的右半部分表示將這個深度學習模型展開之後,通過調整這個深度學習模型中每層之間的引數和權重,進而得到一個深度自動編碼機的過程。這個過程被稱作微調。

RBMs包括兩個重要的步驟:無監督的訓練和監督的調整。無監督訓練階段,利用

貪心訓練演算法逐步逐層的計算輸入與輸出之間的關係。通過對比度使得每一層的引數收斂。每一層的引數都作為計算下一層引數的輸入。在調整階段,加標籤的資料被用來調整無監督訓練階段學習到的神經網路。

缺點:

實驗證明,受限玻爾茲曼機索引演算法可以得到較好的索引結果。但由於其自身模型的複雜性,導致其執行效率低下,需要花費較長時間來得到訓練結果。

 

非監督學習

位置敏感雜湊(Locality Sensitive Hashing LSH,1999)

LSH是最近比較流行的一種相似性搜尋演算法,它的基本思想是通過k個串聯的具有位置敏感性的雜湊函式將原始的資料空間對映到二維的資料空間,然後在查詢時計算查詢點的K維雜湊值,根據該雜湊值取得候選資料集,最後通過計算候選資料集中每個點與查詢點的距離得到符合查詢條件的結果。LSH具有較好的時間效率,而且在高維資料空間依然能夠保持良好的效能,因此被廣泛應用在很多領域。

 

這個方法其實是最簡單的一種hash方法,只要產生k個雜湊函式h(x),對於每一個資料點x,進行計算,就能得到hash值。

 

缺點:

位置敏感雜湊索引演算法極大地提高了高維資料索引的效率,解決了樹形結構索引演算法無法克服的效率問題,但是由於位置敏感雜湊索引演算法中採用了隨機對映演算法,使得索引結果不可控,在實際應用中結果不穩定,並且實驗表明,隨著索引編碼位數的上升,索引結果提升緩慢。與其他語義雜湊索引演算法相比,位置

敏感雜湊索引演算法的索引結果準確率較低。

 

譜雜湊(NIPS 08)

方法:

譜雜湊索引演算法根據索引編碼應該滿足的條件,對原始高維資料集進行譜分析,再通過放鬆限制條件,將該問題轉換成拉普拉斯特徵圖的降維問題從而求解。然後譜雜湊索引演算法引入了特徵函式的概念來處理訓練集外資料的問題。整個演算法流程如下:首先利用主成分分析法對原始高維資料進行降維處理,然後計算得到所有的解析特徵函式(analytical eigenfunction), 最後將這些解析特徵函式二值化從而得到最終的二元索引編碼。

但是由於譜雜湊索引演算法在其索引編碼過程中,直接應用了主成分分析法來

對高維特徵進行降維處理,從而使得原始特徵的每一維(例如視覺單詞)都參與

到後續編碼過程中,但是一般而言,給定一幅影象,其所蘊含的語義只需有限視

覺單詞就能表達,而不用所有視覺單詞來參與表達。由於沒有處理冗餘高維

特徵的問題,譜雜湊索引演算法的結果受到一定影響。並且譜雜湊索引演算法假設了

原始高維資料均勻分佈,從而選擇了理論最優值0作為閾值。但是在實際應用中

資料並不能總是滿足均勻分佈這個條件,因此選擇0作為閾值不適合所有的資料

集。

譜雜湊的目標函式如下:

 

 

其中是相關性矩陣,;保證了索引編碼是二進位制結果,保證了所有編碼結果的每位為-1或1的概率是相等的,即為50%;保證了索引編碼結果每一位是互不相關的。

為了求解該公式, 譜雜湊引入拉普拉斯矩陣L並且鬆弛的二元限制條件,於是公式求解轉換成求解的特徵值問題,即拉普拉斯特徵圖的降維。最後公式的解就是D – W的前k個最小特徵值(除0以外)對應的特徵向量。其中D是一個的對角矩陣,並且。為了解決訓練集外影象索引編碼的問題,可將特徵向量轉化為特徵方程,通過有權重的拉普拉斯—貝特拉米運算元的特徵方程來實現。所求得的特徵方程和特徵解如下:

 

 

ITQ演算法(2013)

這個方法是同學極力向我推薦的一個方法,主要原因就是方法簡單,好理解,同時效果又很好。

該演算法分為兩部分,第一部分是PCA,第二部分是旋轉迭代。

第一步是PCA:

根據半監督學習,我們的目標是使得每一位位元的方差最大,並且各自無關。這樣我們就可以寫出目標函式:

 

 

下面就是簡單的將sgn去掉,也就是{-1,1}空間轉化為連續空間,就能得到

 

 

是對 的鬆弛,我們可以理解為超平面互相垂直。同時,這跟PCA的目標函式相同,所以,可以使用PCA的方法。

第二步:迭代量化

假設是對映空間的一個向量,那麼sgn(v)就是超方體(hypercube)的最近的頂點,那麼損失函式越小,結果就越能保留資料的位置結構(locality structure)。回到第一步我們會發現,如果W是最優解,那麼也是最優解,前提是R是一個的正交矩陣。因此,我們可以對對映資料進行正交變換,從而使得

這樣,這個方程就變為通過旋轉V來使得損失函式最小,解決這個問題的方法是一種類似於K均值的迭代量化方法。

固定R更新B。展開一下上式,就會變為以下形式:

 

所以,我們可以得到

其中。這樣就能夠得到。

固定B更新R。對於固定了B來求解R,這就是一個正交P問題(Orthogonal Procrustes problem),直接通過一下方式來求得:首先用SVD分解的矩陣,,使得然後得到。

作者使用了50次的迭代,就能收斂了。

這樣,這個簡單的方法就結束了。

 

半監督學習

Semi-Supervised Hashing for Scalable Image Retrieval(2010 CVPR)

方法:

 

利用半監督雜湊演算法來進行影象檢索是王駿等人2010年在CVPR上提出的,前面介紹的監督雜湊演算法和無監督雜湊演算法都有其明顯的優缺點。無監督雜湊演算法

的速度相對於監督雜湊演算法來說要快,且不需要相簿中的圖片有任何標籤,完全利用圖片的內容特徵來學習雜湊函式,但這樣也會失去圖片標籤帶有的豐富的語義資訊。監督雜湊演算法要求訓練圖片帶有標籤,利用了圖片標籤帶有的豐富語義資訊來學習雜湊函式,但監督雜湊演算法的速度較慢。王駿提出一種半監督雜湊演算法,充分融合了無監督雜湊和監督雜湊演算法的優點。

巨量的圖片中有一小部分是帶有標籤的,剩餘部分不帶有標籤,這是與現實情況相符的。半監督雜湊要求訓練庫中有一小部分圖片帶有標籤,這些標籤資訊提供監督資訊。圖片的內容特徵提供非監督資訊。結合監督資訊和非監督資訊來學習雜湊函式。這一思想與現實情況完全相符。

半監督雜湊的演算法過程如下:

定義如下目標函式:

 

 

上式中,表示圖片的雜湊碼序列的第k個,值為1或-1。為所要學習的向量。因為X是以0對稱的,所以。表示圖片i和j的標籤一樣或者說圖片i和圖片j相似, 表示圖片i和圖片j的標籤不同或者說圖片i和圖片j不相似。

我們可以使用矩陣形式來表示上述式子,首先定義一個矩陣和帶有成對標籤資訊的,我們對S進行如下定義:

 

最大化上述目標函式的意義是使得相似的圖片或者標籤相同的圖片的雜湊碼的對應位均為1或-1,而標籤不相同的圖片的雜湊碼的對應位一個為1,令一個為-1,也就是說能保證相似圖片的雜湊碼理論上一樣,而不相似的圖片雜湊碼相差大。目標函式寫成矩陣形式如下:

另外假設,將XL對映到K位位元的雜湊程式碼,這樣目標函式J(W)就可以被表示成這樣:

 

用sgn()函式取代一下就能夠得到

 

函式的意思是對矩陣裡面每個元素使用sign函式

上式中只有監督資訊成分,在實際的使用過程之中,尤其是當有標籤的數量相對於整體資料庫比較小的時候()有過擬合的情況(overfitting),所以就需要加上"規則(regularization)"。根據譜雜湊,希望產生的雜湊編碼能夠獨立,並且通過平衡切割資料,使得每一位多包含的資訊量最大。能夠滿足平衡條件的 會將X分成相等的大小的兩部分。

鬆弛目標函式:

上面式子提出的問題本身是一個NP問題,為了解決這個問題,我們要使用鬆弛技術。首先我們使用"signed magnitude"技術,這個技術在譜雜湊中也是用到了,就是講{-1,1}的雜湊空間直接變換到實數R空間,這樣目標函式就變為了:

 

之後鬆弛平衡分割,作者推匯出這個式子,意味著平衡分割跟使得k位的方差最大是等價的:

 

之後目標函式又可以改寫成為

 

令,這樣我們就能得到

 

而正交的關係可以通過來鬆弛。這樣一個最優化為題就被成功地轉化為一個求解矩陣M的特徵的問題:

 

 

這裡是矩陣M最大的特徵值,而是相應的特徵向量。這樣我們就成功地求取了W。

本身能達到這樣已經不錯了,但是作者在這個方法上面還更近了一步,作者認為還可以鬆弛正交限制。因為正交限制的作用是使得各個位元位不相關,但是這會導致問題。在大多數實際的資料庫中,大方差只出現在很少的幾個方向上,正交限制強迫我們去選擇方差小的位元位,這樣會導致低位的位元的質量不高,不能夠包含足夠的資訊。這樣,作者為了替代原來的hard constrains,而使用了懲罰項,這樣的話目標函式就可以改寫為:

 

 

這樣就可以同歸對W進行微分,來求解了:

 

然後拆開,就能夠得到:

 

假如是正定的,那麼這個方程將很好解,正定的條件也很簡單,就是

我們假設,如果Q是正定的,那麼Q可以改寫為(Cholesky decomposition)。而,我們就能夠得到。是矩陣M的最大的k個特徵向量。

 

沒想到用Word發部落格這麼渣渣,word版可以到網盤下載

 

本文轉自:http://www.cnblogs.com/tendence/p/3798952.html

 

相關文章