[AAAI 2014] Supervised Hashing via Image Representation Learning [paper] [code]
Rongkai Xia , Yan Pan, Hanjiang Lai, Cong Liu, Shuicheng Yan.html
以前的哈希方法,大都使用手工的圖像特徵(如GIST等)做爲圖像的特徵表達, 可是這些手工特徵是採用無監督的方式提取的,難以很好得保存原始圖片的語義信息。而深度深度神經網絡能夠很好得表達圖像特徵信息,所以做者便提出了基於深度的哈希檢索方法——CNNH。算法
論文中,做者提出了一種監督哈希方法——CNNH,能夠同時學習到圖像的特徵表達以及哈希函數。網絡
CNNH具備兩個階段,Stage 1將類似矩陣分解爲低維的哈希矩陣H,獲得每一個樣本對應的哈希編碼。可是這個過程並無學習到哈希函數,所以沒法對新的圖像進行哈希編碼;Stage 2利用Stage 1獲得的哈希編碼,以及每一個樣本對應的類別標籤做爲ground-truth來訓練網絡,從而獲得哈希函數。假設Stage 1的哈希編碼有r個比特位,樣本的類別數有c個,那麼網絡輸出層的節點就共有(r + c)個輸出節點。函數
CNNH的輸入爲原始的圖片信息,假設網絡已經訓練完畢後,對於一張新的測試圖片,CNNH輸出層的前r個節點就是該圖片所對應的哈希編碼,後c個節點則表示了圖片的類別信息。學習
根據類別標籤得到類似矩陣S,根據KSH中的結論,\(H_{i·}\)和\(H_{j·}\)的漢明距離與內積$H_{i·}H_{j·}^T $是一一對應的,所以能夠獲得以下目標優化函數:測試
其中,爲了解決優化問題,令\(H ∈ [−1,1]^{n×q}\)>。優化
以後,經過coordinate descent method方法每次單獨對\(H_{i,j}\)進行更新。爲了確保每次更新的\(H_{ij}\)不超過[-1, 1]的範圍,對更新步長d加入如下操做。這個操做確保了在對\(H_{ij}\)更新時,值不會超過[-1, 1],若是d小於\(H_{ij}\)與邊界的距離,則取d,若是大於則取-1或1。ui
算法流程以下:編碼
Stage 2利用Stage 1獲得的哈希編碼,以及每一個樣本對應的類別標籤做爲ground-truth來訓練神經網絡。spa
CNNH網絡具備三個卷積層,分別有32, 64, 128 filters。輸出層有(r + c)個節點,其中r爲哈希編碼的比特數,c爲數據集的類別數。類別標籤的引入使得網絡具備了遷移學習的能力,可以更好得學習到圖像的特徵表達。在訓練完畢後,全鏈接層所對應的值就是每張圖片的特徵向量。