【Deep Hash】NINH

[CVPR 2015] Simultaneous Feature Learning and Hash Coding with Deep Neural Networks [paper]網絡

Hanjiang Lai, Yan Pan, Ye Liu, Shuicheng Yan.ide

1. Overcome

  • 在大多數哈希方法中,圖像都用手工特徵表示,這些特徵不能很好得保存原始圖片的語義信息。
  • 哈希方法大都分爲編碼量化兩個過程,基於手工向量的優化結果可能難以同時兼容編碼和量化的過程,從而形成子優化問題。
  • CNNH是一個two-stage的深度哈希方法,利用神經網絡同時學習了哈希函數和圖像特徵表達。在stage 1時,CNNH獲得了近似哈希編碼,並在stage 2利用這些近似哈希編碼來訓練獲得圖像的特徵表達,可是這些訓練獲得的圖像特徵沒法反過來指導近似哈希編碼的訓練,以獲得更好的編碼。

2. Contribute

  • 提出了一種 「one-stage」的監督哈希檢索方法,能夠同時獲得圖像特徵和哈希編碼,而且特徵信息和哈希編碼能夠相互改善,從而獲得更好的結果。
  • 設計了一種triplet ranking loss,能夠很好得保存圖像語義的類似信息。

3. Algorithm

NINH方法分爲三個步驟:(1)經過一個卷積網絡獲得中間圖像特徵;(2)經過divide-and-encode模塊獲得每張圖片的哈希編碼;(3)獲得圖像對的triplet ranking loss,再經由反向傳播更新網絡。函數

image-20181205184857999

3.1 Triplet Ranking Loss and Optimization

輸入爲圖像對\((I, I^-, I^+)\),其中\(I\)爲查詢圖像,\(I^-\)爲與\(I\)不類似的圖像,\(I^+\)爲與\(I\)類似的圖像。這種輸入形式能夠更好得表達類似信息「與\(I^-\)相比,圖像\(I\)\(I^+\)更類似」。Triplet ranking hinge loss定義爲:學習

爲了便於優化,加入鬆弛技巧——將Hamming norm替換爲L2 norm。獲得新的損失函數以下:優化

損失函數關於\(F(I)、F(I^-)、F(I^+)\)的導數爲:ui

由於損失函數的求導過程很是簡單,所以能夠容易結合進神經網絡的反向傳播過程當中。編碼

3.2 Shared Sub-Network with Stacked Convolution Layers

Shared Sub-Network使用相同的神經網絡結構以及相同的參數獲得triplet圖像對中的每一張圖像的特徵表達。網絡結構和參數以下表所示:spa

在該部分,一種替代的策略是對於圖像\(I\)使用單獨的網絡結構和參數,而圖像\(I^-\)\(I^+\)使用相同的網絡結構和參數。可是論文中的實驗證實,對三個圖像使用相同的網絡結構和參數的表現會因爲這種替代策略。設計

3.3 Divide-and-Encode Module

Divide-and-Encode(DAE)經過Shared Sub-Network獲得每張圖片的特徵向量後,將這個向量切片成r個部分,每一個部分再經過全鏈接層鏈接到一個節點,最後經過sigmoid函數轉化爲[0, 1]以內的值。經過上述步驟,即可以獲得一張圖片r比特的哈希編碼。在這個過程當中,由於每一個哈希編碼是由特徵向量的子部分獲得的,哈希編碼之間的冗餘性少,有利於圖像的檢索。3d

這個部分另外一種策略簡稱爲FC,將整個特徵向量經過全鏈接層直接鏈接到r個節點,再借由sigmoid函數獲得圖片的哈希編碼。顯然這種策略下,每一位哈希編碼都利用到了整個特徵向量的信息,容易形成冗餘。論文的實驗也證實了DAE的表現會因爲FC。

相關文章
相關標籤/搜索