1. 程式人生 > >影象檢索:CNN對Hash組演算法的顛覆

影象檢索:CNN對Hash組演算法的顛覆

參看論文:Liu H, Wang R, Shan S, et al. Deep Supervised Hashing for Fast Image Retrieval[C]. computer vision and pattern recognition, 2016: 2064-2072.

會議水平:CVPR2016

供稿單位:中科院計算所 (中科院計算所、自動化所都是做影象處理的神一樣的單位,各種CVPR、各種姿勢)

1.導讀

自從孿生網路又被大家撿起來哪一天(2014),就註定了和匹配相關領域的不平靜,無論是影象檢索、立體匹配還是基於最佳匹配的跟蹤,孿生網路及其衍生分支網路正在一點點顛覆幾乎所有的經典演算法。由Haomiao Liu報道的深度監督雜湊演算法短短一年多就收穫了134的引用量,大部分的相關工作都是在該基礎之上開展的,所以很有必要研究。

Hash,就是把任意長度的輸入通過雜湊演算法變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來確定唯一的輸入值。簡單的說就是一種將任意長度的訊息壓縮到某一固定長度的訊息摘要的函式。

2. 摘要及目標

為了在大資料上開發高效的影象檢索演算法,作者提出了一種新的Hashing方法用於學習影象緊密的二值編碼。在影象檢索領域,儘管影象的形貌變化帶來非常大的挑戰,但是利用CNN學習一個魯棒性的影象表達為解決這個挑戰帶來了曙光。這邊文章就是利用CNN來學習高相似緊湊的二值編碼形式,也就是原文作者提到的深度監督Hashing。特別的,作者設計了CNN結構,利用一對影象輸入,輸出判別分類。(現在看來似乎很簡單,但放在16年,確實不容易)。作者精心設計了損失函式,用於最大化判別效能。

Our goal is to learn compact binary codes for imagessuch that: (a) similar images should be encoded to similar binary codes in Hamming space, and vice versa; (b) the binary codes could be computed efficiently。

Our method first trains the CNN using image pairs and the corresponding similarity labels. (創新點來了,鼻祖...)


 

以下幾句真是寫出了藝術啊...

While the complex image appearance variations still pose a great challenge to reliable retrieval, in light of the recent progress of Convolutional Neural Networks (CNNs) in learning robust image representation on various vision tasks, this paper proposes a novel Deep Supervised Hashing (DSH) method to learn compact similarity-preserving binary code for the huge body of image data.

儘管複雜的影象形貌變化對影象檢索而言是一個巨大的挑戰,得益於最近卷機神經網路在各種視覺問題學習魯棒性性的影象表達的進展, 我們提出一種新的深度監督hashing方法用於學習緊湊相似的二值編碼資訊。


To this end, a loss function iselaborately designed to maximize the discriminability of the output space by encoding the supervised information from the input image pairs, and simultaneously imposing regularization on the real-valued outputs to approximate the desired discrete values.

最後,精心設計的損失函式去最大化編碼資訊的輸出空間,這些監督資訊是從影象對中學習到的,同時對輸出施加正則化,讓輸出迫近離散值(金標準標籤)。
 

Extensive experiments on two large scale datasets CIFAR-10 and NUS-WIDE show the promising performance of our method compared with the state-of-the-arts

Comment:我發現CVPR的審稿委員會就喜歡the promising performance 和 the state-of-the-arts 這兩個詞;吹得過分的和太過謙虛的被拒稿了。

3. 方法及細節

Figure 1. The network structure used in our method. The network consists of 3 convolution-pooling layers and 2 fully connected layers. The filters in convolution layers are of size 5 × 5 with stride 1 (32, 32, and 64 filters in the three convolution layers respectively), and pooling over 3 × 3 patches with stride 2. The first fully connected layer contains 500 nodes, and the second (output layer) has k (the code length) nodes. The loss function is designed to learn similarity-preserving binary-like codes by exploiting discriminability terms and a regularizer. Binary codes are obtained by quantizing the network outputs of images.

圖1. 作者方法中的網路框架。這個網路包含3個卷積-池化層 和 兩個全連線層。

3.1 損失函式設計

The loss function is designed to pull the network outputs of similar images together and push the outputs of dissimilar ones far away, so that the learned Hamming space can well approximate the semantic structure of images.

設計的損失函式驅動網路對相同的影象輸出距離很近,對不同影象輸出距離很遠。
To avoid optimizing the nondifferentiable loss function in Hamming space, the network outputs are relaxed to real values, while simultaneously a regularizer is imposed to encourage the real-valued outputs to approach the desired discrete values.
為了避免在hamming空間優化不可微分的損失函式,網路輸出輕鬆轉為實數值,同時採用了正則化,使得實數值輸出更加貼近離散值{-1, +1}.

Comment:我之前也在思考,為什麼在hamming空間存在不可微分的情況,其實做著這樣描述是非常保守的。粗魯一點就是K長度的Hamming二值編碼,你告訴我怎麼設計金標準?怎麼設計損失函式?怎麼進行求偏導數,誤差傳播?如果對這個問題陷入了深思,那就別扯了,直接把二值編碼變成實數值就好了,這個原理就相當於在最後一層載入了一個全連線層,而這個全連線層剛好只有一個神經元,只此而已。

b1,b2是一對圖象輸入。y是標籤,y=0表示相似,也 表示不相似。Dh是兩個二值編碼向量的hamming距離。m>0是一個margine值。前一項懲罰相似影象對,後一項懲罰不相似影象對

為了便於設計反向傳播,作者用了L2-norm:

這裡重點看第三項,該項最大的一個好處在於對特徵的緊湊型進行了約束,如果特徵很稀疏,那麼該項懲罰值很大。

這個求偏導過程也就很順利:

3.2 應用細節

1. 所有的卷積層作者都利用了ReLU進行調整

2.During training, the batch size is set to 200, momentum to 0.9, and weight decay to 0.004. The initial learning rate is set to 10-3 and decreases by 40% after every 20,000 iterations (150,000 iterations in total). The margin m in Eqn.(4) is heuristically set to m = 2k to encourage the codes of dissimilar images to differ in no less than k2 bits.

Comment:這裡要說明一點,作者發表這篇文章的時候,BatchNorm還沒有廣泛應用,後來有人進做了一點點的結構更改,效能取得了非常大的提升。

4. 結果

We attribute the promising retrieval performance of DSH to three aspects: First, the coupling of non-linear feature learning and hash coding for extracting task-specific image representations; Second, the proposed regularizer for reducing the discrepancy between the real-valued network output space and the desired Hamming space; Third, the online generated dense pairwise supervision for well describing the desired Hamming space.

Comment:寫這篇文章主要是因為他是開山之作。以我們現在的觀點審視作者的這段話,其實效能這麼好並不是因為損失函式多厲害,線上訓練多出色。就是卷積的效益太強了! 後面也有人把損失函式簡單的換成了L2-norm,結構上裁剪全連線層,使得網路變得很輕,效能更好。所以,對於計算機視覺領域,基於資料驅動的特徵提取器,才是核心。