Fast Supervised Hashing with Decision Trees for High-Dimensional Data

用決策樹處理高維數據的一種快速監督性哈希

【摘要】監督性哈希旨在將原始特徵映射成爲能夠保護漢明空間中基於標籤的相似性的緊湊二進制編碼。非線性哈希函數由於其強大的泛化能力而優於線性哈希函數。研究表明,核函數通常用來實現哈希中的非線性,並且以較緩慢的評估和訓練時間作爲代價可以實現良好的檢索性能。本文分析了一種使用決策樹來實現哈希的非線性方法,其評估和訓練的速度快。首先提出對於哈希二進制編碼推論問題的子模塊公式化,和一種對於解決大規模推論的基於塊搜索方法的高效圖分割法。然後通過訓練優化的決策樹來學習哈希函數使得適用於二進制編碼,並通過實驗對以上算法進行了分析和結果的探討。

 

關鍵字決策樹監督性哈希 高維數據

 

1引言

哈希方法構造一系列的哈希函數,將原始的特徵映射成爲緊湊的二進制代碼。哈希能夠通過使用查找表或者基於排名的漢明空間實現快速的搜索。並且,緊湊的二進制代碼對於大規模的數據存儲非常有效。類似的應用有圖像檢索,大型對象檢測等等。哈希方法旨在保留漢明空間中的一些概念的相似度或者稱之爲距離。這些方法可以被粗略地分爲監督性方法和非監督性的方法。非監督性的方法努力保留原始特徵空間的相似度。例如,局部敏感哈希(Locality-Sensitive Hashing, LSH)隨機生成線性哈希函數來近似餘弦相似度[1];譜哈希(SpectralHashing)學習保留高斯關聯性的特徵函數[2];迭代量化(Iterative Quantization, ITQ)近似漢明空間中的歐氏距離[3];在流形結構上的散列將內在流形結構考慮進去。

監督性的哈希被設計來保留一些基於標籤的相似性。比如,這個可能發生在來自同一類型的圖片被定義爲彼此語義相似的情形。近年來,監督性哈希受到了越來越多的關注,比如有內核的監督哈希(KSH[4],兩步哈希(TSH)[5],二進制重建嵌入(BRE)[6]等。儘管監督性哈希對於現實應用更加靈活和吸引人,但是其學習速率比起非監督性哈希慢了許多。儘管現實情況是,哈希只有在被應用到大量的高維特徵時纔有着實用利益,大部分的監督性哈希方法僅僅被展示在相對小數目的低維特徵上。比如,基於特徵的碼本在圖像分類上獲得了巨大的成功,其特徵維數通常達到了數以萬計[7]。爲了利用這個特徵學習的最新進展,對於監督性哈希能夠在複雜的高維特徵上有效處理大規模數據是非常需要的。爲了填補這個差距,因此希望有一個監督性的哈希方法,能夠利用大的訓練集並有效利用高維特徵。

非線性哈希函數,例如在KSH和TSH中使用到的核哈希函數,展示了比線性哈希函數很大的性能改進。然而,核函數對於在高維特徵上的訓練和測試的代價非常高。因此,一個有着非線性哈希函數的可擴展監督性哈希方法也是非常需要的。

 

2問題提出與分析

χ = {x1,x2,...xn}表示一系列的訓練點。基於標籤的相似性信息保存在一個關聯矩陣Y中,也就是監督性學習中的參考標準。Y中的元素表示兩個數據點的相似度,且 =。特別地,如果兩個點相似則=1,如果兩個點不相似則= -1,如果兩者之間的關係沒有被定義,則= 0。目標是學習一組哈希函數來保留漢明空間中基於標籤的相似性。m個哈希函數表示成:. 哈希函數的輸出是m位的二進制代碼:。漢明關聯性與漢明距離密切相關,是通過兩個二進制編碼的內積來計算的,計算公式爲。與KSH相似,基於漢明關聯性來公式化哈希學習,使得相似數據對的關聯性值爲正,不相似數據對的關聯性值爲負。優化過程可以寫爲:

                                                              (1)

         其中,用來避免未定義的數據對關係影響哈希的任務。因爲如果關係沒有定義的話,=0,否則,=1。因爲使用決策樹來作爲哈希函數,因此定義每一個哈希函數爲決策樹的一個線性組合,即

                                                                          (2

其中,Q是決策樹的數量。表示有二進制輸出的一個樹函數。權重和樹是用來學習一個哈希函數的參數。與核方法相比,決策樹有着高維數據上更快的測試速度和非線性的適應能力。

直接學習決策樹優化(1)顯得比較困難,因此添加了輔助變量作爲在處的第k個哈希函數的輸出,即有。顯然,是第i個數據點在第k位的二進制編碼。有了這個輔助變量,(1)式就可以分解爲兩個子問題:

                                                         (3a

                                                                         (3b

其中Z是所有訓練數據點的m位二進制的矩陣。式(3a)是一個二進制代碼推理問題,式(3b)是一個簡單的二分類問題。這樣,原本複雜的監督性哈希的決策樹學習就轉化爲兩個相對簡單的任務——解(3a)(步驟1)和(3b)(步驟2)。

 

步驟1:二進制代碼推理

對於式(3a),順序優化,一次優化一位,調節之前的位。當優化第k位時,(3a)的代價可以表示爲:

               (4

  

因此,對於第k位的優化可以等價公式化爲一個二進制二次規劃問題:

                                                                          (5a

其中,       

                                                                             (5b)

這裏表示前面位的二進制代碼。使用一個階段性的方案來解決每一位。特別地,當迭代到第k位時,位的長度設爲k而不是m。這樣,當前位的優化就取決於前面位產生的損失,通常這樣的優化可以取得更好的推理結果。

由於該方法是需要處理高維的數據,因此採用一種對於二進制編碼推論問題的子模塊公式化,和一種有效地解決大規模的推理的基於塊搜索的圖分割方法。首先將數據點分成很多塊,然後一次優化一個塊的對應變量,同時調節剩下的變量。令 表示數據點的一個塊。那麼(5a)的代價可以表示爲:

                             (6

當優化一個塊的時候,那些不存在目標塊中的變量被設爲常量。因此,對於一個塊的優化也可以寫成:

                             (7

其中,表示不包含在目標塊中的第k位的二進制編碼。加上(5b)中對的定義,對於一個塊的優化可以寫成:

                                           (8a

其中,

                                                   (8b)

                                  (8c

這裏,都是常量。構建一個塊的關鍵是保證這樣一個塊的(8a)是子模塊化的,因此這裏可以應用有效的圖分割法。實現算法(算法1)如下:

輸入:關聯矩陣:Y;位長度:k;最大推理迭代;塊集:;二進制碼:

輸出:一位的二進制碼:

重複:

隨機轉置所有的塊

對於每一個塊

   使用圖分割對每一個進行(8a)的推論

   直到達到最大的迭代次數

特別地,在這個哈希問題中,通過利用相似度信息,可以很容易地構建滿足子模塊化要求的塊,並引出如下命題。

命題1如果,(8a)中的優化是一個子模塊化的問題。換句話說,對於塊中的任意數據點,如果它不是與塊中其他任意的數據點都不相似,那麼(8a)就是子模塊化的。

證明:如果成立。那麼,。令,那麼有  。因此,  ,,因此證明了(8a)的子模塊性。

只要滿足命題1的條件,一個塊可以使用許多種方式構建。一個簡單的構造塊的貪心算法(算法2)實現如下: 

輸入:訓練數據點: ,關聯矩陣Y

輸出:塊:

重複:

t= t + 1:從V中隨機選擇;

初始化U爲V和的相似案例的並集;

對於U中的任何一個

   如果中的任何點都不相似,那麼

       加到中;將從V中移除

   直到V =

需要注意的是,塊可以覆蓋,它們的並集需要覆蓋所有n個變量。,

 

步驟2:學習作爲哈希函數的決策樹

對於(3b)中的二分類問題,通常0-1損失被一些凸代理損失替代。這裏,使用對於提升方法常用的指數型損耗。學習第k個哈希函數的分類問題可以寫爲:

                                              (9

這一步應用Adaboost來解決以上問題。在每一個提升的迭代中,一棵決策樹和它的權重係數被學習。一棵二叉決策樹的每一個節點是一個決策樹樁。訓練一個樹樁是爲了找到一個特徵維和最小化權重分類誤差的閾值。從這點上看,該方法是在同時進行特徵選擇和哈希函數的學習。可以簡單利用已有可用的有效決策樹學習技術來提高訓練速度。最終使用一種高效的樹樁實現算法[8],比傳統的方法大約快了10倍;特徵量化能夠在實踐中無性能損失地大大提高訓練速度,並且能大大減少內存消耗。線性量化特徵值爲256個容器;應用權重修剪技術,在每一個提升迭代中,最小的10%權重被修剪掉(被設置爲0);應用了LazyBoost技術:只有隨機選取的特徵維的一部分在樹節點分裂中被評估使用。

因此,快速哈希方法的過程就可以表述爲如下算法(算法3),實現過程如下:

輸入:訓練數據點:;關聯矩陣Y;位長度:m;塊:.

輸出:哈希函數:.

對於k = 1,…,m,

   第一步:調用算法1得到第k位的二進制碼;

   第二步:訓練(9)中的樹得到哈希函數

   通過的輸出更新第k位的二進制碼;

對於每一位,二進制碼通過應用學習的哈希函數被更新。學習過的哈希函數能夠對下一個的二進制碼推論做出反饋,能夠得到更好的性能。

 

3實驗分析

實驗所用編程語言爲MATLAB,使用MATLAB的軟件版本爲MATLAB R2014b,數據集是採用MNIST進行訓練和優化。MNIST是一個手寫數字識別的數據集,包含60000個訓練樣本,10000個測試樣本,是一個更大的數據集合NIST的一個子集。

在訓練之前,需要生成數據的關聯標籤矩陣,即之前提到的Y。接着,爲下面步驟的基於塊的圖分割生成推斷塊。至此,預處理結束。

接下來訓練前參數的配置。實驗所選用的二進制推斷方法是基於塊的Grapg-Cut方法,迭代次數爲2。損失函數使用的是Hinge函數。針對步驟2中的分類器的設定,實驗中使用的是boost_tree, boosting的迭代次數爲200次,決策樹的深度需要不斷測試和修建,本實驗室中決策樹的深度設置爲4,通常決策樹的深度越深,得到的精度越好,但是訓練速度會越慢。大的數據集需要要求更深的深度。對於權重的調整,一般取值爲0.9~0.99之間,值越大,得到的精度越高,但是會減慢訓練速度。該實驗取值爲0.99。lazyboost設置中,樹節點分割的維度爲200。

實驗最後的檢索精度有三種方式衡量:得到的檢索樣本前K個的正確率(也就是實驗結果的縱座標——精確度),平均準確率(MAP)和精確度-召回曲線下的面積。實驗採用第一種尺度來衡量精確度,其中K取值100。橫座標是採用哈希決策樹函數映射的二進制碼位數,分別取2,4,6,8位,也可以取其他的值。

實驗運行結果如下圖1所示:

                                            

圖1- 快速哈希的檢索實驗結果

   從實驗的圖形走勢可以看出,隨着位的數量增大,檢索的精確度也隨之提高,在bit位的數量達到8的時候,精確度已經達到94.1%。事實上,通過反覆實驗,最後也發現,實驗的精確度在bit位數爲8時穩定在0.937以上。

 


參考文獻

[1]A. Gionis, P. Indyk,and R. Motwani. Similarity search in high dimensions via hashing. In Proc. Int. Conf. Very Large Data Bases (VLDB), 1999.1, 7

[2]Y. Weiss, R. Fergus,and A. Torralba.Multidimensional spectral hashing. In Proc. Eur. Conf. Comp. Vis. (ECCV), 2012. 1, 7

[3]Y. Gong, S. Lazebnik,A. Gordo, and F. Perronnin. Iterative quantization: a procrustean approach to learning binary codes for large-scaleimage retrieval. IEEE T. Pattern Analysis Mach. Intelli. (TPAMI), 2012. 1, 7

[4]W. Liu, J.Wang, R. Ji,Y. Jiang, and S. Chang. Supervised hashing with kernels. In Proc. IEEE Conf. Comp. Vis. Pattern Recogn. (CVPR), 2012. 1,2, 4, 6

[5]G. Lin, C. Shen, D.Suter, and A. van den Hengel. A general two-step approach to learning-based hashing. In Proc. Int. Conf. Comp. Vis.(ICCV), 2013. 1, 2, 4, 5

[6] B. Kulis and T.Darrell. Learning to hash with binary reconstructiveembeddings. In Proc. Adv. Neural Info. Process. Syst. (NIPS), 2009. 1, 4

[7] A. Coates and A. Ng. The importance of encoding versus training with sparsecoding and vectorquantization. In Proc. Int. Conf. Mach. Learn.(ICML), 2011.1, 4

[8] R. Appel, T. Fuchs, P.Doll´ar, and P. Perona. Quickly boosting decision trees-pruningunderachieving features early. In Proc. Int. Conf. Mach. Learn. (ICML), 2013. 3



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章