高維資料的快速最近鄰演算法FLANN

來源:互聯網
上載者:User

標籤:二值特徵 特徵匹配 flann 隨機樹

高維資料的快速最近鄰演算法FLANN

1.     簡介

         在電腦視覺和機器學習中,對於一個高維特徵,找到訓練資料中的最近鄰計算代價是昂貴的。對於高維特徵,目前來說最有效方法是 the randomized k-d forest和the priority search k-means tree,而對於二值特徵的匹配 multiple hierarchical clusteringtrees則比LSH方法更加有效。

        目前來說,fast library for approximate nearest neighbors (FLANN)庫可以較好地解決這些問題。

2.     快速近似NN匹配(FAST APPROXIMATE NN MATCHING)

2.1 隨機k-d樹演算法(The Randomized k-d TreeAlgorithm)

a. Classick-d tree

        找出資料集中方差最高的維度,利用這個維度數值將資料劃分為兩個部分,對每個子集重複相同的過程。

        參考http://www.cnblogs.com/eyeszjwang/articles/2429382.html。

b.  Randomizedk-d tree

        建立多棵隨機k-d樹,從具有最高方差的N_d維中隨機選取若干維度,用來做劃分。在對隨機k-d森林進行搜尋時候,所有的隨機k-d樹將共用一個優先隊列。

       增加樹的數量能加快搜尋速度,但由於記憶體負載的問題,樹的數量只能控制在一定範圍內,比如20,如果超過一定範圍,那麼搜尋速度不會增加甚至會減慢。


2.2  優先搜尋k-means樹演算法(The Priority Search K-MeansTree Algorithm)

        隨機k-d森林在許多情形下都很有效,但是對於需要高精度的情形,優先搜尋k-means樹更加有效。 K-means tree 利用了資料固有的結構資訊,它根據資料的所有維度進行聚類,而隨機k-d tree一次只利用了一個維度進行劃分。

2.2.1  演算法描述

演算法1 建立優先搜尋k-means tree:

(1)  建立一個層次化的k-means 樹;

(2)  每個層次的聚類中心,作為樹的節點;

(3)  當某個cluster內的點數量小於K時,那麼這些資料節點將做為葉子節點。


演算法2 在優先搜尋k-means tree中進行搜尋:

(1)  從根節點N開始檢索;

(2)  如果是N葉子節點則將同層次的葉子節點都加入到搜尋結果中,count += |N|;

(3)  如果N不是葉子節點,則將它的子節點與query Q比較,找出最近的那個節點Cq,同層次的其他節點加入到優先隊列中;

(4)  對Cq節點進行遞迴搜尋;

(5)  如果優先隊列不為空白且 count<L,那麼從取優先隊列的第一個元素賦值給N,然後重複步驟(1)。


        聚類的個數K,也稱為branching factor 是個非常主要的參數。

        建樹的時間複雜度 = O( ndKI ( log(n)/log(K) ))  n為資料點的總個數,I為K-means的迭代次數。搜尋的時間複雜度 = O( L/K * Kd * ( log(n)/(log(K) ) ) = O(Ld ( log(n)/(log(K) ) )。

2.3 層次聚類樹 (The Hierarchical ClusteringTree)

        層次聚類樹採用k-medoids的聚類方法,而不是k-means。即它的聚類中心總是輸入資料的某個點,但是在本演算法中,並沒有像k-medoids聚類演算法那樣去最小化方差求聚類中心,而是直接從輸入資料中隨機選取聚類中心點,這樣的方法在建立樹時更加簡單有效,同時又保持多棵樹之間的獨立性。

        同時建立多棵樹,在搜尋階段並行地搜尋它們能大大提高搜尋效能(歸功於隨機地選擇聚類中心,而不需要多次迭代去獲得更好的聚類中心)。建立多棵隨機樹的方法對k-d tree也十分有效,但對於k-means tree卻不適用。


3.      參考文獻

(1)  ScalableNearest Neighbor Algorithms for High Dimensional Data. Marius Muja, Member,IEEE and David G. Lowe, Member, IEEE.

(2)  OptimisedKD-trees for fast image descriptor matching. Chanop Silpa-Anan, Richard Hartley.

(3)  FastMatching of Binary Features. Marius Muja and David G. Lowe.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.