龍顯忠 程成 李云
摘? ?要:已有的深度監(jiān)督哈希方法不能有效地利用提取到的卷積特征,同時,也忽視了數(shù)據(jù)對之間相似性信息分布對于哈希網(wǎng)絡(luò)的作用,最終導(dǎo)致學(xué)到的哈希編碼之間的區(qū)分性不足. 為了解決該問題,提出了一種新穎的深度監(jiān)督哈希方法,稱之為深度優(yōu)先局部聚合哈希(Deep Priority Local Aggregated Hashing,DPLAH). DPLAH將局部聚合描述子向量嵌入到哈希網(wǎng)絡(luò)中,提高網(wǎng)絡(luò)對同類數(shù)據(jù)的表達(dá)能力,并且通過在數(shù)據(jù)對之間施加不同權(quán)重,從而減少相似性信息分布傾斜對哈希網(wǎng)絡(luò)的影響. 利用Pytorch深度框架進(jìn)行DPLAH實驗,使用NetVLAD層對Resnet18網(wǎng)絡(luò)模型輸出的卷積特征進(jìn)行聚合,將聚合得到的特征進(jìn)行哈希編碼學(xué)習(xí). 在CIFAR-10和NUS-WIDE數(shù)據(jù)集上的圖像檢索實驗表明,與使用手工特征和卷積神經(jīng)網(wǎng)絡(luò)特征的非深度哈希學(xué)習(xí)算法的最好結(jié)果相比,DPLAH的平均準(zhǔn)確率均值要高出11%,同時,DPLAH的平均準(zhǔn)確率均值比非對稱深度監(jiān)督哈希方法高出2%.
關(guān)鍵詞:深度哈希學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);圖像檢索;局部聚合描述子向量
中圖分類號:TP391.4? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A
Deep Priority Local Aggregated Hashing
LONG Xianzhong1,2?,CHENG Cheng1,2 ,LI Yun1,2
(1. School of Computer Science & Technology,Nanjing University of Posts and Telecommunications,Nanjing 210023,China;
2. Key Laboratory of Jiangsu Big Data Security and Intelligent Processing,Nanjing 210023,China)
Abstract:The existing deep supervised hashing methods? cannot effectively utilize the extracted convolution features, but also ignore the role of the similarity information distribution between data pairs on the hash network, resulting in insufficient discrimination between the learned hash codes. In order to solve this problem, a novel deep supervised hashing method called deep priority locally aggregated hashing (DPLAH) is proposed in this paper, which embeds the vector of locally aggregated descriptors (VLAD) into the hash network, so as to improve the ability of the hash network to express the similar data, and reduce the impact of similarity distribution skew on the hash network by imposing different weights on the data pairs. DPLAH experiment is carried out by using the Pytorch deep framework. The convolution features of the Resnet18 network model output are aggregated by using the NetVLAD layer, and the hash coding is learned by using the aggregated features. The image retrieval experiments on the CIFAR-10 and NUS-WIDE datasets show that the mean average precision (MAP) of DPLAH is 11 percentage points higher than that of non-deep hash learning algorithms using manual features and convolution neural network features, and the MAP of DPLAH is 2 percentage points higher than that of asymmetric deep supervised hashing method.
Key words:deep Hash learning;convolutional neural network;image retrieval;vector of locally aggregated descriptors(VLAD)
隨著信息檢索技術(shù)的不斷發(fā)展和完善,如今人們可以利用互聯(lián)網(wǎng)輕易獲取感興趣的數(shù)據(jù)內(nèi)容,然而,信息技術(shù)的發(fā)展同時導(dǎo)致了數(shù)據(jù)規(guī)模的迅猛增長. 面對海量的數(shù)據(jù)以及超大規(guī)模的數(shù)據(jù)集,利用最近鄰搜索[1](Nearest Neighbor Search,NN)的檢索技術(shù)已經(jīng)無法獲得理想的檢索效果與可接受的檢索時間. 因此,近年來,近似最近鄰搜索[2](Approximate Nearest Neighbor Search,ANN)變得越來越流行,它通過搜索可能相似的幾個數(shù)據(jù)而不再局限于返回最相似的數(shù)據(jù),在犧牲可接受范圍的精度下提高了檢索效率. 作為一種廣泛使用的ANN搜索技術(shù),哈希方法(Hashing)[3]將數(shù)據(jù)轉(zhuǎn)換為緊湊的二進(jìn)制編碼(哈希編碼)表示,同時保證相似的數(shù)據(jù)對生成相似的二進(jìn)制編碼. 利用哈希編碼來表示原始數(shù)據(jù),顯著減少了數(shù)據(jù)的存儲和查詢開銷,從而可以應(yīng)對大規(guī)模數(shù)據(jù)中的檢索問題. 因此,哈希方法吸引了越來越多學(xué)者的關(guān)注.
當(dāng)前哈希方法主要分為兩類:數(shù)據(jù)獨(dú)立的哈希方法和數(shù)據(jù)依賴的哈希方法,這兩類哈希方法的區(qū)別在于哈希函數(shù)是否需要訓(xùn)練數(shù)據(jù)來定義. 局部敏感哈希(Locality Sensitive Hashing,LSH)[4]作為數(shù)據(jù)獨(dú)立的哈希代表,它利用獨(dú)立于訓(xùn)練數(shù)據(jù)的隨機(jī)投影作為哈希函數(shù). 相反,數(shù)據(jù)依賴哈希的哈希函數(shù)需要通過訓(xùn)練數(shù)據(jù)學(xué)習(xí)出來,因此,數(shù)據(jù)依賴的哈希也被稱為哈希學(xué)習(xí),數(shù)據(jù)依賴的哈希通常具有更好的性能. 近年來,哈希方法的研究主要側(cè)重于哈希學(xué)習(xí)方面.
根據(jù)哈希學(xué)習(xí)過程中是否使用標(biāo)簽,哈希學(xué)習(xí)方法可以進(jìn)一步分為:監(jiān)督哈希學(xué)習(xí)和無監(jiān)督哈希學(xué)習(xí). 典型的無監(jiān)督哈希學(xué)習(xí)包括:譜哈希[5](Spectral Hashing,SH);迭代量化哈希[6](Iterative Quantization,ITQ);離散圖哈希[7](Discrete Graph Hashing,DGH);有序嵌入哈希[8] (Ordinal Embedding Hashing,OEH)等. 無監(jiān)督哈希學(xué)習(xí)方法僅使用無標(biāo)簽的數(shù)據(jù)來學(xué)習(xí)哈希函數(shù),將輸入的數(shù)據(jù)映射為哈希編碼的形式. 相反,監(jiān)督哈希學(xué)習(xí)方法通過利用監(jiān)督信息來學(xué)習(xí)哈希函數(shù),由于利用了帶有標(biāo)簽的數(shù)據(jù),監(jiān)督哈希方法往往比無監(jiān)督哈希方法具有更好的準(zhǔn)確性,本文的研究主要針對監(jiān)督哈希學(xué)習(xí)方法.
傳統(tǒng)的監(jiān)督哈希方法包括:核監(jiān)督哈希[9] (Supervised Hashing with Kernels,KSH);潛在因子哈希[10](Latent Factor Hashing,LFH);快速監(jiān)督哈希[11](Fast Supervised Hashing,F(xiàn)astH);監(jiān)督離散哈希[12](Supervised Discrete Hashing,SDH)等. 隨著深度學(xué)習(xí)技術(shù)的發(fā)展[13],利用神經(jīng)網(wǎng)絡(luò)提取的特征已經(jīng)逐漸替代手工特征,推動了深度監(jiān)督哈希的進(jìn)步. 具有代表性的深度監(jiān)督哈希方法包括:卷積神經(jīng)網(wǎng)絡(luò)哈希[14](Convolutional Neural Networks Hashing,CNNH);深度語義排序哈希[15] (Deep Semantic Ranking Based Hashing,DSRH);深度成對監(jiān)督哈希[16] (Deep Pairwise-Supervised Hashing,DPSH);深度監(jiān)督離散哈希[17] (Deep Supervised Discrete Hashing,DSDH);深度優(yōu)先哈希[18](Deep Priority Hashing,DPH)等. 通過將特征學(xué)習(xí)和哈希編碼學(xué)習(xí)(或哈希函數(shù)學(xué)習(xí))集成到一個端到端網(wǎng)絡(luò)中,深度監(jiān)督哈希方法可以顯著優(yōu)于非深度監(jiān)督哈希方法.
到目前為止,大多數(shù)現(xiàn)有的深度哈希方法都采用對稱策略來學(xué)習(xí)查詢數(shù)據(jù)和數(shù)據(jù)集的哈希編碼以及深度哈希函數(shù). 相反,非對稱深度監(jiān)督哈希[19](Asymmetric Deep Supervised Hashing,ADSH)以非對稱的方式處理查詢數(shù)據(jù)和整個數(shù)據(jù)庫數(shù)據(jù),解決了對稱方式中訓(xùn)練開銷較大的問題,僅僅通過查詢數(shù)據(jù)就可以對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練來學(xué)習(xí)哈希函數(shù),整個數(shù)據(jù)庫的哈希編碼可以通過優(yōu)化直接得到. 本文的模型同樣利用了ADSH的非對稱訓(xùn)練策略.
然而,現(xiàn)有的非對稱深度監(jiān)督哈希方法并沒有考慮到數(shù)據(jù)之間的相似性分布對于哈希網(wǎng)絡(luò)的影響,可能導(dǎo)致結(jié)果是:容易在漢明空間中保持相似關(guān)系的數(shù)據(jù)對,往往會被訓(xùn)練得越來越好;相反,那些難以在漢明空間中保持相似關(guān)系的數(shù)據(jù)對,往往在訓(xùn)練后得到的提升并不顯著. 同時大部分現(xiàn)有的深度監(jiān)督哈希方法在哈希網(wǎng)絡(luò)中沒有充分有效利用提取到的卷積特征.
本文提出了一種新的深度監(jiān)督哈希方法,稱為深度優(yōu)先局部聚合哈希(Deep Priority Local Aggregated Hashing,DPLAH). DPLAH的貢獻(xiàn)主要有三個方面:
1)DPLAH采用非對稱的方式處理查詢數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù),同時DPLAH網(wǎng)絡(luò)會優(yōu)先學(xué)習(xí)查詢數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)之間困難的數(shù)據(jù)對,從而減輕相似性分布傾斜對哈希網(wǎng)絡(luò)的影響.
2)DPLAH設(shè)計了全新的深度哈希網(wǎng)絡(luò),具體來說,DPLAH將局部聚合表示融入到哈希網(wǎng)絡(luò)中,提高了哈希網(wǎng)絡(luò)對同類數(shù)據(jù)的表達(dá)能力. 同時考慮到數(shù)據(jù)的局部聚合表示對于分類任務(wù)的有效性.
3)在兩個大型數(shù)據(jù)集上的實驗結(jié)果表明,DPLAH在實際應(yīng)用中性能優(yōu)越.
1? ?相關(guān)工作
本節(jié)分別對哈希學(xué)習(xí)[3]、NetVLAD[20]和Focal Loss[21]進(jìn)行介紹. DPLAH分別利用NetVLAD和Focal Loss提高哈希網(wǎng)絡(luò)對同類數(shù)據(jù)的表達(dá)能力及減輕數(shù)據(jù)之間相似性分布傾斜對于哈希網(wǎng)絡(luò)的影響.
1. 1? ?哈希學(xué)習(xí)
哈希學(xué)習(xí)[3]的任務(wù)是學(xué)習(xí)查詢數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)的哈希編碼表示,同時要滿足原始數(shù)據(jù)之間的近鄰關(guān)系與數(shù)據(jù)哈希編碼之間的近鄰關(guān)系相一致的條件. 具體來說,利用機(jī)器學(xué)習(xí)方法將所有數(shù)據(jù)映射成{0,1}r形式的二進(jìn)制編碼(r表示哈希編碼長度),在原空間中不相似的數(shù)據(jù)點(diǎn)將被映射成不相似(即漢明距離較大)的兩個二進(jìn)制編碼,而原空間中相似的兩個數(shù)據(jù)點(diǎn)將被映射成相似(即漢明距離較小)的兩個二進(jìn)制編碼.
為了便于計算,大部分哈希方法學(xué)習(xí){-1,1}r形式的哈希編碼,這是因為{-1,1}r形式的哈希編碼對之間的內(nèi)積等于哈希編碼的長度減去漢明距離的兩倍,同時{-1,1}r形式的哈希編碼可以容易轉(zhuǎn)化為{0,1}r形式的二進(jìn)制編碼.
圖1是哈希學(xué)習(xí)的示意圖. 經(jīng)過特征提取后的高維向量被用來表示原始圖像,哈希函數(shù)h將每張圖像映射成8 bits的哈希編碼,使原來相似的數(shù)據(jù)對(圖中老虎1和老虎2)之間的哈希編碼漢明距離盡可能小,原來不相似的數(shù)據(jù)對(圖中大象和老虎1)之間的哈希編碼漢明距離盡可能大.
1. 2? ?NetVLAD
NetVLAD的提出是用于解決端到端的場景識別問題[20](場景識別被當(dāng)作一個實例檢索任務(wù)),它將傳統(tǒng)的局部聚合描述子向量(Vector of Locally Aggregated Descriptors,VLAD[22])結(jié)構(gòu)嵌入到CNN網(wǎng)絡(luò)中,得到了一個新的VLAD層. 可以容易地將NetVLAD使用在任意CNN結(jié)構(gòu)中,利用反向傳播算法進(jìn)行優(yōu)化,它能夠有效地提高對同類別圖像的表達(dá)能力,并提高分類的性能.
NetVLAD的編碼步驟為:利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像的卷積特征;利用NetVLAD層對卷積特征進(jìn)行聚合操作. 圖2為NetVLAD層的示意圖. 在特征提取階段,NetVLAD會在最后一個卷積層上裁剪卷積特征,并將其視為密集的描述符提取器,最后一個卷積層的輸出是H×W×D映射,可以將其視為在H×W空間位置提取的一組D維特征,該方法在實例檢索和紋理識別任務(wù)[23-24]中都表現(xiàn)出了很好的效果.
NetVLAD在特征聚合階段,利用一個新的池化層對裁剪的CNN特征進(jìn)行聚合,這個新的池化層被稱為NetVLAD層. NetVLAD的聚合操作公式如下:
V(j,k) = ak(xi)(xi(j) - ck(j))? ? ? ? ?(1)
式中:xi(j)和ck(j)分別表示第i個特征的第j維和第k個聚類中心的第j維;ak(xi)表示特征xi與第k個視覺單詞之間的權(quán). NetVLAD特征聚合的輸入為:NetVLAD裁剪得到的N個D維的卷積特征,K個聚類中心.
VLAD的特征分配方式是硬分配,即每個特征只和對應(yīng)的最近鄰聚類中心相關(guān)聯(lián),這種分配方式會造成較大的量化誤差,并且,這種分配方式嵌入到卷積神經(jīng)網(wǎng)絡(luò)中無法進(jìn)行反向傳播更新參數(shù). 因此,NetVLAD采用軟分配的方式進(jìn)行特征分配,軟分配對應(yīng)的公式如下:
ak(xi) =? ? ? ? ? ? (2)
如果α→+∞,那么對于最接近的聚類中心,ak(xi)的值為1,其他為0. ak(xi)可以進(jìn)一步重寫為:
ak(xi) =? ? ? ? ? ? (3)
式中:wk = 2αck;bk = -α‖ck‖2. 最終的NetVLAD的聚合表示可以寫為:
V(j,k)=(xi(j) - ck(j))? ? ? ? (4)
1.3? ?Focal Loss
對于目標(biāo)檢測方法,一般可以分為兩種類型:單階段目標(biāo)檢測和兩階段目標(biāo)檢測,通常情況下,兩階段的目標(biāo)檢測效果要優(yōu)于單階段的目標(biāo)檢測. Lin等人[21]揭示了前景和背景的極度不平衡導(dǎo)致了單階段目標(biāo)檢測的效果無法令人滿意,具體而言,容易被分類的背景雖然對應(yīng)的損失很低,但由于圖像中背景的比重很大,對于損失依舊有很大的貢獻(xiàn),從而導(dǎo)致收斂到不夠好的一個結(jié)果. Lin等人[21]提出了Focal Loss應(yīng)對這一問題,圖3是對應(yīng)的示意圖. 使用交叉熵作為目標(biāo)檢測中的分類損失,對于易分類的樣本,它的損失雖然很低,但數(shù)據(jù)的不平衡導(dǎo)致大量易分類的損失之和壓倒了難分類的樣本損失,最終難分類的樣本不能在神經(jīng)網(wǎng)絡(luò)中得到有效的訓(xùn)練. Focal Loss的本質(zhì)是一種加權(quán)思想,權(quán)重可根據(jù)分類正確的概率pt得到,利用γ可以對該權(quán)重的強(qiáng)度進(jìn)行調(diào)整.
針對非對稱深度哈希方法,希望難以在漢明空間中保持相似關(guān)系的數(shù)據(jù)對優(yōu)先訓(xùn)練,具體來說,對于DPLAH的整體訓(xùn)練損失,通過施加權(quán)重的方式,相對提高難以在漢明空間中保持相似關(guān)系的數(shù)據(jù)對之間的訓(xùn)練損失. 然而深度哈希學(xué)習(xí)并不是一個分類任務(wù),因此無法像Focal Loss一樣根據(jù)分類正確的概率設(shè)計權(quán)重,哈希學(xué)習(xí)的目的是學(xué)到保相似性的哈希編碼,本文最終利用數(shù)據(jù)對哈希編碼的相似度作為權(quán)重的設(shè)計依據(jù),具體的權(quán)重形式將在模型部分詳細(xì)介紹.
2? ?深度優(yōu)先局部聚合哈希
2. 1? ?基本定義
DPLAH模型采用非對稱的網(wǎng)絡(luò)設(shè)計. Q={qi}n
i=1表示n張查詢圖像,X = {xi}m
i=1表示數(shù)據(jù)庫有m張圖像;查詢圖像和數(shù)據(jù)庫圖像的標(biāo)簽分別用Z = {zi}n
i=1和Y = {yi}m
i=1表示;zi = [zi1,…,zic]T,i = 1,…,n;c表示類別數(shù);如果查詢圖像qi屬于類別j, j = 1,…,c;那么zij = 1,否則zij = 0. 利用標(biāo)簽信息,可以構(gòu)造圖像對的相似性矩陣S∈{-1,1}n × m,sij = 1表示查詢圖像qi和數(shù)據(jù)庫中的圖像xj語義相似,sij = -1表示查詢圖像qi和數(shù)據(jù)庫中的圖像xj語義不相似. 深度哈希方法的目標(biāo)是學(xué)習(xí)查詢圖像和數(shù)據(jù)庫中圖像的哈希編碼,查詢圖像的哈希編碼用U∈{-1,1}n × r,表示,數(shù)據(jù)庫中圖像的哈希編碼用B∈{-1,1}m × r表示,其中r表示哈希編碼的長度.
對于DPLAH模型,它在特征提取部分采用預(yù)訓(xùn)練好的Resnet18網(wǎng)絡(luò)[25]. 圖4為DPLAH網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,利用NetVLAD層聚合Resnet18網(wǎng)絡(luò)提取到的卷積特征,哈希編碼通過VLAD編碼得到,由于VLAD編碼在分類任務(wù)中被廣泛使用,于是本文將NetVLAD層的輸出作為分類任務(wù)的輸入,利用圖像的標(biāo)簽信息監(jiān)督NetVLAD層對卷積特征的利用. 事實上,任何一種CNN模型都能實現(xiàn)圖像特征提取的功能,所以對于選用哪種網(wǎng)絡(luò)進(jìn)行特征學(xué)習(xí)并不是本文的重點(diǎn).
2. 2? ?DPLAH模型的目標(biāo)函數(shù)
為了學(xué)習(xí)可以保留查詢圖像與數(shù)據(jù)庫圖像之間相似性的哈希編碼,一種常見的方法是利用相似性的監(jiān)督信息S∈{-1,1}n × m、生成的哈希編碼長度r,以及查詢圖像的哈希編碼ui和數(shù)據(jù)庫中圖像的哈希編碼bj三者之間的關(guān)系[9],即最小化相似性的監(jiān)督信息與哈希編碼對(ui,bj)內(nèi)積之間的L2損失. 考慮到相似性分布的傾斜問題,本文通過施加權(quán)重來調(diào)節(jié)查詢圖像和數(shù)據(jù)庫圖像之間的損失,其公式可以表示為:
J = (1-wij)α(uT
ibj - rsij)2
s.t. U∈{-1,1}n × r,B∈{-1,1}m × r,W∈Rn × m
(5)
受Focal Loss啟發(fā),希望深度哈希網(wǎng)絡(luò)優(yōu)先訓(xùn)練相似性不容易保留圖像對,然而Focal Loss利用圖像的分類結(jié)果對損失進(jìn)行調(diào)整,因此,需要重新進(jìn)行設(shè)計,由于哈希學(xué)習(xí)的目的是為了保留圖像在漢明空間中的相似性關(guān)系,本文利用哈希編碼的余弦相似度來設(shè)計權(quán)重,其表達(dá)式為:
wij =
,sij = 1
,sij = -1? ? ? ? ? ? ? ? ?(6)
式中:ui和bj分別表示查詢圖像i和數(shù)據(jù)庫圖像j的哈希編碼;sij = 1表示圖像i和j語義相似,sij = -1表示圖像i和j語義不相似. 從公式(6)中可以發(fā)現(xiàn),若ui和bj越相似,且圖像i和j語義相似,則wij的值接近1,這就表示哈希編碼ui和bj相似的難度低;反之ui和bj不相似,而圖像i和j語義相似,則wij的值接近0,這就表示哈希編碼ui和bj相似的難度高. 本文希望深度哈希網(wǎng)絡(luò)優(yōu)先關(guān)注相似難度高的圖像對,因此對查詢圖像和數(shù)據(jù)庫圖像之間施加權(quán)重(1-wij)α,α是一個超參數(shù).
對于查詢圖像的哈希編碼{ui}n
i=1∈U而言,它是離散值,所以不能直接利用反向傳播算法(BP)來更新神經(jīng)網(wǎng)絡(luò)的參數(shù)Θ. 為了使神經(jīng)網(wǎng)絡(luò)能夠進(jìn)行反向傳播,使用tanh(L)激活函數(shù)來近似表示U,其中L = {li}n
i=1表示圖像網(wǎng)絡(luò)中哈希層的輸出,對應(yīng)的優(yōu)化問題(5)可以被重新表示為:
J = (1-wij)α(tanh(li)Tbj - rsij)2
s.t. B∈{-1,1}m × r? ?(7)
使用Ψ={1,2,…,m}表示數(shù)據(jù)庫中所有圖像的索引,隨機(jī)地從數(shù)據(jù)庫中選擇nΨΥ張圖像創(chuàng)建查詢集,并用Υ = {i1,i2,…,in}?Ψ表示查詢集的索引. 此時,公式(7)可以表示為:
J = (1-wij)α(tanh(li)Tbj - rsij)2
s.t. B∈{-1,1}m × r? ? ? ?(8)
創(chuàng)建的查詢集通過深度哈希網(wǎng)絡(luò)生成哈希編碼,同樣它們在整個數(shù)據(jù)集中的哈希編碼也可以通過優(yōu)化直接得到,因此,還需要保證查詢集在哈希網(wǎng)絡(luò)中學(xué)習(xí)到的哈希編碼要與數(shù)據(jù)集中的哈希編碼盡可能相同. 對應(yīng)的優(yōu)化問題可進(jìn)一步表示為:
J = (1-wij)α(tanh(li)Tbj - rsij)2 +
β(bi - tanh(li))2
s.t. B∈{-1,1}m × r? ? ? ? ? ? ? ? ? ? ? (9)
由于VLAD對于圖像具有較好的表示性能,并且VLAD同樣被廣泛運(yùn)用于圖像分類任務(wù)中,因此,NetVLAD層的輸出對于分類任務(wù)也依然有效,并將NetVLAD層的輸出pi作為分類網(wǎng)絡(luò)的輸入. 利用NetVLAD在分類網(wǎng)絡(luò)中的預(yù)測標(biāo)簽和圖像的真實標(biāo)簽之間的損失更新網(wǎng)絡(luò)參數(shù),希望圖像哈希網(wǎng)絡(luò)能夠提取到更具有判別力的特征. 最終,DPLAH的目標(biāo)函數(shù)可寫為:
J=(1-wij)α(tanh(li)Tbj-rsij)2 +
β(bj-tanh(li))2+μ‖yi-WTpi‖2
2
s.t. B∈{-1,1}m × r? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (10)
2.3? ?學(xué)習(xí)過程
本文采用迭代優(yōu)化的方式來學(xué)習(xí)DPLAH網(wǎng)絡(luò)的參數(shù)Θ和數(shù)據(jù)庫圖像的哈希編碼B. 算法1是整個DPLAH算法的學(xué)習(xí)過程.
固定B,學(xué)習(xí)參數(shù)Θ. 當(dāng)B被固定,直接使用反向傳播算法(BP)來更新參數(shù)Θ,具體來說,從查詢集中采樣一個批次的圖像來更新深度哈希網(wǎng)絡(luò)的參數(shù).
固定參數(shù)Θ,學(xué)習(xí)B. 當(dāng)深度哈希網(wǎng)絡(luò)的參數(shù)Θ被固定時,使用與非對稱深度哈希[19]相同的優(yōu)化策略來更新數(shù)據(jù)庫中的哈希編碼B,公式如下所示:
B*k = -sign(2[B][^]k[U][^]T
kU*k - 2rSTU-2βU)? ? ? ? (11)
式中:B*k表示B的第k列;[B][^]k是矩陣B除了第k列的矩陣;U*k表示U的第k列;[U][^]k是矩陣U除了第k列的矩陣;S為相似性矩陣.
算法1? ?DPLAH學(xué)習(xí)算法
輸入:m張數(shù)據(jù)庫圖像X = {xi}m
i=1,數(shù)據(jù)庫圖像標(biāo)簽Y = {yi}m
i=1,相似性
矩陣S∈{-1,1}n × m
輸出:DPLAH的網(wǎng)絡(luò)參數(shù)Θ,數(shù)據(jù)庫圖像的哈希編碼B
1:初始化:Θ和B,哈希編碼長度r,最小批次大小g,迭代次數(shù)tl和
ts,查詢圖像個數(shù)n
2:for t1 = 1→tl
3: 隨機(jī)從數(shù)據(jù)庫圖像Ψ中采樣生成查詢集Υ
4: for t2 = 1→ts
5:? ?for k = 1→n/g
6? ? ? ? 隨機(jī)采取查詢圖像中的g張作為一個批次
7:? ? ? 利用BP算法更新Θ:Θ ← Θ - μ·[Δ]Θ(J)
8:? ? end
9:? ? for? i = 1→r
10:? ? ? ?按照公式(11)更新B* i
11:? ?end
12:? end
13:end
3? ?實驗設(shè)計與分析
3. 1? ?實驗設(shè)計
3.1.1? ?數(shù)據(jù)集
為了驗證DPLAH算法的有效性,在CIFAR-10[26]和NUS-WIDE[27]數(shù)據(jù)集上進(jìn)行實驗.
CIFAR-10數(shù)據(jù)集由60 000張32×32的RGB彩色圖像構(gòu)成,它是一個用于識別普適物體的數(shù)據(jù)集. 這些圖像被手動標(biāo)記為10個類別,分別是飛機(jī)、汽車、鳥、貓、鹿、狗、青蛙、馬、船和卡車.
NUS-WIDE是一個真實的網(wǎng)絡(luò)數(shù)據(jù)集,一共包含269 648張圖像,每張圖像都與來自81個語義類別中的一個或多個類別相關(guān)聯(lián). 本文遵循與ADSH類似的實驗方案,使用最常見的21個類別中的圖像,其中每個類別中至少包含了5 000張圖像,從而總共使用了195 834張圖像.
3.1.2? ?實驗運(yùn)行環(huán)境及超參數(shù)配置
所有關(guān)于DPLAH的實驗都是利用Pytorch深度框架完成的,利用預(yù)訓(xùn)練好的Resnet18網(wǎng)絡(luò)[25]提取圖像的特征,NetVLAD層對Resnet18模型輸出的卷積特征進(jìn)行聚合,最后,利用聚合得到的特征進(jìn)行哈希編碼的學(xué)習(xí).
對CIFAR-10和NUS-WIDE數(shù)據(jù)集,NetVLAD的聚類中心個數(shù)設(shè)置為64. 超參數(shù)β、μ和Υ分別設(shè)置為200、200和2 000,DPLAH網(wǎng)絡(luò)的學(xué)習(xí)率在10-7 ~ 10-3區(qū)間進(jìn)行調(diào)整,tl和ts分別為60和3,超參數(shù)α為0.2.
在本文實驗中,使用到的NetVLAD層去掉了規(guī)范化操作,由于整個數(shù)據(jù)集的哈希編碼是通過優(yōu)化算法直接得到,因此在訓(xùn)練初期并不使用權(quán)重. 具體來說,當(dāng)超參數(shù)tl的值小于10時,都不施加優(yōu)先權(quán)重;當(dāng)tl的值大于10時,施加權(quán)重進(jìn)行訓(xùn)練的同時,會對學(xué)習(xí)率進(jìn)行調(diào)整.
3.1.3? ?實驗對比
按照現(xiàn)有的深度哈希方法中的評估指標(biāo),使用平均準(zhǔn)確率均值(MAP)和Top-5K精度來評估DPLAH算法的性能. 對于NUS-WIDE數(shù)據(jù)集,計算前5 000張返回圖像的MAP. 對于CIFAR-10數(shù)據(jù)集,在每個類別中選取100張圖像作為測試圖像,對于NUS-WIDE數(shù)據(jù)集,同樣在每個類別中選取100張圖像作為測試圖像,因此這兩個數(shù)據(jù)集的測試圖像數(shù)量分別為1 000和2 100張,剩余圖像作為數(shù)據(jù)庫圖像. 遵循非對稱深度哈希等方法[19]在圖像相似性上的構(gòu)造方法,利用圖像標(biāo)簽構(gòu)造用于深度哈希函數(shù)學(xué)習(xí)的相似性矩陣. 具體來說:若兩張圖像共享至少一個標(biāo)簽,則它們被視為語義相似對,否則,它們是語義不相似的圖像對.
多種哈希學(xué)習(xí)方法被用來與DPLAH進(jìn)行比較,如SH、ITQ等無監(jiān)督的哈希方法(包括SH+CNN、ITQ+CNN),SDH、FastH和LFH等有監(jiān)督的哈希方法(包括SDH+CNN、FastH+CNN和LFH+CNN),CNNH、DPSH和ADSH等深度哈希方法(其中CNNH是兩階段的深度哈希學(xué)習(xí)方法,其他都是端到端的深度哈希學(xué)習(xí)方法).
3.2? ?實驗結(jié)果和分析
在兩個數(shù)據(jù)集上的MAP對比結(jié)果如表1所示. 由于ADSH算法的優(yōu)越性能,它成為本文重點(diǎn)比較的方法. 為了進(jìn)行公平的比較,此處利用Pytorch版本的ADSH來進(jìn)行實驗對比,預(yù)訓(xùn)練好的Resnet18模型同樣會被用來提取圖像的卷積特征,其他哈希算法的實驗結(jié)果來源于DPSH[16]和ADSH[19].
表1中的非深度哈希學(xué)習(xí)算法使用圖像的手工特征,同時也比較了使用CNN特征的非深度哈希學(xué)習(xí)算法,可以發(fā)現(xiàn)端到端的深度哈希方法優(yōu)于傳統(tǒng)的哈希學(xué)習(xí)方法,非對稱的深度哈希方法優(yōu)于對稱的深度哈希方法. 與LFH+CNN的最好結(jié)果0.814相比,DPLAH的平均準(zhǔn)確率均值要高出11%,同時,DPLAH的平均準(zhǔn)確率均值最多比非對稱深度監(jiān)督哈希方法ADSH高出2%.
由于非對稱深度監(jiān)督哈希方法(ADSH)的性能遠(yuǎn)優(yōu)于其他哈希學(xué)習(xí)方法,因此,比較DPLAH 和ADSH在不同比特長度下的Top-5K精度,結(jié)果如圖5所示.由表1和圖5可知,DPLAH無論在MAP還是Top-5K精度的衡量下,其性能都優(yōu)于現(xiàn)有的深度監(jiān)督哈希方法.
根據(jù)實驗結(jié)果,發(fā)現(xiàn)DPLAH方法在NUS-WIDE數(shù)據(jù)集上性能較好. 這可能由于NUS-WIDE數(shù)據(jù)集中的圖像來自于真實世界,圖像中包含的內(nèi)容非常豐富;而NetVLAD的提出就是為了解決現(xiàn)實中的場景識別問題,在面對圖像中的光線變化、視角變化等情況,具備一定的魯棒性,從而使得DPLAH方法在NUS-WIDE數(shù)據(jù)集上的性能較好.
為了驗證NetVLAD層確實能學(xué)習(xí)到具有區(qū)分力的哈希編碼,本文在NUS-WIDE數(shù)據(jù)集不使用優(yōu)先權(quán)重的條件下,僅僅將NetVLAD層加入哈希網(wǎng)絡(luò)中,對比不同比特長度下的MAP. 實驗結(jié)果如圖6所示.
圖7為DPLAH算法基于漢明距離排序的搜索結(jié)果. 結(jié)果是基于32 bits的哈希編碼長度給出的幾個示例. 在圖7中,每行圖片中的第1張代表查詢圖像,后面10張圖像表示與查詢圖像的漢明距離最近的10張圖像. 由圖7可知,DPLAH算法具有優(yōu)越的性能,盡管還存在一些錯誤的搜索結(jié)果(示例中最后一行的查詢圖像是飛機(jī),然而檢索出的圖像是輪船),但這在接受的范圍內(nèi).
4? ?結(jié)? ?論
本文提出了一種基于局部聚合的深度優(yōu)先哈希方法,在應(yīng)對相似性分布傾斜方面,受到了Focal Loss的啟發(fā),利用查詢圖像在哈希網(wǎng)絡(luò)中學(xué)習(xí)的哈希編碼和整個數(shù)據(jù)庫圖像的哈希編碼之間的余弦相似度,設(shè)計了損失函數(shù)的優(yōu)先權(quán)重,使得深度哈希網(wǎng)絡(luò)優(yōu)先關(guān)注相似難度高的圖像,從而保證難以在漢明空間中保持相似關(guān)系的圖像對得到充分訓(xùn)練. 在哈希特征提取方面,由于NetVLAD層能夠有效地提高對同類別圖像的表達(dá)能力,因此利用NetVLAD層將卷積得到的特征進(jìn)行聚合,從而使學(xué)到的哈希編碼更具有區(qū)分性. 在CIFAR-10和NUS-WIDE兩個數(shù)據(jù)集下進(jìn)行了實驗,將DPLAH與多種哈希學(xué)習(xí)方法進(jìn)行比較,通過實驗分析,表明了DPLAH算法的優(yōu)越性能.
參考文獻(xiàn)
[1]? ? CLARKSON K L. Fast algorithms for the all nearest neighbors problem[C]//24th Annual Symposium on Foundations of Computer Science (sfcs 1983). Tucson,AZ,USA:IEEE,1983:226—232.
[2]? ? ANDONI A,INDYK P. Near-optimal Hashing algorithms for approximate nearest neighbor in high dimensions[C]//2006 47th Annual IEEE Symposium on Foundations of Computer Science (FOCS′06). Berkeley,CA,USA:IEEE,2006:459—468.
[3]? ? 李武軍,周志華. 大數(shù)據(jù)哈希學(xué)習(xí):現(xiàn)狀與趨勢[J]. 科學(xué)通報,2015,60(5/6):485—490.
LI W J,ZHOU Z H. Learning to Hash for big data:current status and future trends[J]. Chinese Science Bulletin,2015,60(5/6):485—490. (In Chinese)
[4]? ? DATAR M,IMMORLICA N,INDYK P,et al. Locality-sensitive Hashing scheme based on p-stable distributions[C]//Proceedings of the Twentieth Annual Symposium on Computational Geometry-SCG 04. Brooklyn,New York:ACM Press,2004:253—262.
[5]? ?WEISS Y,TORRALBA A,F(xiàn)ERGUS R. Spectral Hashing[C]// IEEE Advances in Neural Information Processing Systems Conference. Vancouver,BC,Canada:NIPS,2008:1753—1760.
[6]? ? GONG Y C,LAZEBNIK S,GORDO A,et al. Iterative quantization:a procrustean approach to learning binary codes for large-scale image retrieval[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(12):2916—2929.
[7]? ? LIU W,MU C,KUMAR S,et al. Discrete graph Hashing[J]. Advances in Neural Information Processing Systems,2014,4:3419—3427.
[8]? ? LIU H,JI R,WU Y,et al. Towards optimal binary code learning via ordinal embedding[C]// AAAI Conference on Artificial Intelligence. Phoenix,AZ,USA:AAAI,2016:1258—1265.
[9]? ? LIU W,WANG J,JI R R,et al. Supervised Hashing with kernels[C]//2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence,RI,USA:IEEE,2012:2074—2081.
[10]? ZHANG P,ZHANG W,LI W J,et al. Supervised Hashing with latent factor models[C]// Proceedings of the 37th International ACM SIGIR Conference on Research & Development in Information Retrieval. Gold Coast,QLD,Australia:SIGIR,2014:173—182.
[11]? LIN G S,SHEN C H,SHI Q F,et al. Fast supervised Hashing with decision trees for high-dimensional data[C]// IEEE Conference on Computer Vision and Pattern Recognition. Columbus,OH,USA:IEEE,2014:1971—1978.
[12]? SHEN F M,SHEN C H,LIU W,et al. Supervised discrete Hashing[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston,MA,USA:IEEE,2015:37—45.
[13]? LECUN Y,BENGIO Y,HINTON G. Deep learning[J]. Nature,2015,521(7553):436—444.
[14]? XIA R,PAN Y,LAI H,et al. Supervised Hashing for image retrieval via image representation learning[C]// AAAI Conference on Artificial Intelligence. Quebec City,QC,Canada:AAAI,2014:2156—2162.
[15]? ZHAO F,HUANG Y Z,WANG L,et al. Deep semantic ranking based Hashing for multi-label image retrieval[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston,MA,USA:IEEE,2015:1556—1564.
[16]? LI W J,WANG S,KANG W C. Feature learning based deep supervised Hashing with pairwise labels[C]// International Joint Conference on Artificial Intelligence. New York,USA:IJCAI,2016:1711—1717.
[17]? LI Q,SUN Z,HE R,et al. Deep supervised discrete Hashing[C]// Advances in Neural Information Processing Systems Conference. Long Beach,CA,USA:NIPS,2017:2482—2491.
[18]? CAO Z J,SUN Z P,LONG M S,et al. Deep priority Hashing[C]// ACM International Conference on Multimedia. Seoul,Korea:MM,2018:1653—1661.
[19]? JIANG Q Y,LI W J. Asymmetric deep supervised Hashing[C]// AAAI Conference on Artificial Intelligence. New Orleans,LA,USA:AAAI,2018:3342—3349.
[20]? ARANDJELOVI[C]R,GRONAT P,TORII A,et al. NetVLAD:CNN architecture for weakly supervised place recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas,NV,USA:IEEE,2016:5297—5307.
[21]? LIN T Y,GOYAL P,GIRSHICK R,et al. Focal loss for dense object detection[C]//2017 IEEE International Conference on Computer Vision (ICCV).Venice,Italy:IEEE,2017:2999—3007.
[22]? J?GOU H,PERRONNIN F,DOUZE M,et al. Aggregating local image descriptors into compact codes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34(9):1704—1716.
[23]? YANDEX A B,LEMPITSKY V. Aggregating local deep features for image retrieval[C]//2015 IEEE International Conference on Computer Vision (ICCV). Santiago,Chile:IEEE,2015:1269—1277.
[24]? CIMPOI M,MAJI S,VEDALDI A. Deep filter banks for texture recognition and segmentation[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston,MA,USA:IEEE,2015:3828—3836.
[25]? HE K M,ZHANG X Y,REN S Q,et al. Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas,NV,USA:IEEE,2016:770—778.
[26]? KRIZHEVSKY A,HINTON G. Learning multiple layers of features from tiny images[J]. Handbook of Systemic Autoimmune Diseases,2009,1(4):1—60.
[27]? CHUA T S,TANG J H,HONG R C,et al. NUS-WIDE:a real-world web image database from National University of Singapore[C]//Proceeding of the ACM International Conference on Image and Video Retrieval-CIVR09. Santorini,F(xiàn)ira,Greece. New York:ACM Press, 2009:368—375.