国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

深度學(xué)習(xí)哈希綜述

2020-10-20 10:05:54江育娥
小型微型計算機系統(tǒng) 2020年10期
關(guān)鍵詞:哈希相似性標(biāo)簽

沈 琳,林 劼,江育娥

(福建師范大學(xué) 數(shù)學(xué)與信息學(xué)院,福州 350117)

1 引 言

隨著科學(xué)技術(shù)的發(fā)展,世界范圍內(nèi)興起了“大數(shù)據(jù)”浪潮,各個領(lǐng)域的數(shù)據(jù)呈現(xiàn)出井噴式增長的趨勢,隱藏在數(shù)據(jù)之下的信息具有重大價值[1],因此,有效地對海量數(shù)據(jù)進行搜索、分析就變得日趨關(guān)鍵.其中最近鄰搜索(Nearest Neighbor,NN)[2-4],即搜索出與查詢項距離最近、最相似的數(shù)據(jù)項,已經(jīng)成為一項重要的研究內(nèi)容.隨著數(shù)據(jù)量不斷增大,最近鄰搜索需要的存儲空間越來越大,其計算復(fù)雜度越來越高,同時搜索效率也越來越低.因此近似最近鄰搜索(Approximate Nearest Neighbor,ANN)[3-5]由于其準(zhǔn)確、高效的性能而得到關(guān)注,其中的一項重要技術(shù)——哈希方法[6-8],在大數(shù)據(jù)中具有搜索效率高、存儲成本低、搜索效果準(zhǔn)確等優(yōu)點,漸漸成為研究的一個重要方向.哈希方法的主要思想是將數(shù)據(jù)點從原始空間映射到漢明空間,在此過程中需保持樣本間在原始空間中的相似性,同時數(shù)據(jù)點被映射為緊湊的二進制編碼,從而降低存儲成本,提高搜索速率.

近年來,隨著計算機技術(shù)的發(fā)展,深度學(xué)習(xí)(Deep Learning,DL)[7,10,11]迅速成為各學(xué)者趨之若鶩的研究熱點,被廣泛應(yīng)用于自然語言處理、計算機視覺、機器學(xué)習(xí)多個領(lǐng)域.深度學(xué)習(xí)又稱深度神經(jīng)網(wǎng)絡(luò),其主要原理是通過利用人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANNs)[10,12,13],對海量數(shù)據(jù)進行逐層篩選和提取,獲得特征表示.

由于哈希算法需要先將數(shù)據(jù)從原始空間映射到特征空間,即對數(shù)據(jù)進行特征提取,再將特征映射為哈希碼,而深度學(xué)習(xí)又具有強大的特征學(xué)習(xí)能力,因此哈希算法逐漸開始利用深度學(xué)習(xí)進行特征提取,于是衍生出一種新的方法——即深度學(xué)習(xí)哈希[7,14-16].深度學(xué)習(xí)哈希融合了哈希方法與深度學(xué)習(xí)技術(shù),通過利用深度學(xué)習(xí)的方法,獲得原始數(shù)據(jù)的特征表示與語義信息,進而得到數(shù)據(jù)的二進制哈希碼.

目前已有文獻(xiàn)對哈希方法展開綜述,如Wang[8]等人對學(xué)習(xí)哈希的框架和各種類型的代表技術(shù)進行了全面的闡述.文獻(xiàn)[9]中對哈希算法的學(xué)習(xí)進行了全面的綜述,并根據(jù)保留相似性的方式將其進行分類.而本文關(guān)注哈希在深度學(xué)習(xí)中的應(yīng)用,介紹了深度學(xué)習(xí)哈希當(dāng)前的研究進展并歸納總結(jié)了各種不同方法.

2 深度學(xué)習(xí)哈希介紹

深度學(xué)習(xí)的快速發(fā)展,促使其與哈希技術(shù)的結(jié)合——深度學(xué)習(xí)哈希得到越來越多的關(guān)注.深度學(xué)習(xí)哈希的應(yīng)用越來越廣,尤其是在圖像檢索方面.Salakhutdinov R等[17]第一個提出將深度學(xué)習(xí)與哈希結(jié)合,采用無監(jiān)督的學(xué)習(xí)方法,利用多個RBM提取樣本特征,產(chǎn)生哈希碼.卷積神經(jīng)網(wǎng)絡(luò)哈希[18](Convolutional Neural Networks Hashing,CNNH)方法基于監(jiān)督的學(xué)習(xí)方式,將哈希學(xué)習(xí)過程分解為兩個部分:首先學(xué)習(xí)近似的哈希碼,然后基于CNN同時學(xué)習(xí)樣本特征和哈希函數(shù).然而,分兩步學(xué)習(xí)哈希碼可能會導(dǎo)致得到的是次優(yōu)解,于是Lai等[19]提出了深度神經(jīng)網(wǎng)絡(luò)哈希(Deep Neural Networks Hashing,DNNH)方法,該方法基于三元組的有監(jiān)督學(xué)習(xí)方法,利用卷積神經(jīng)網(wǎng)絡(luò),同時學(xué)習(xí)特征和哈希碼.為了進一步利用樣本的語義監(jiān)督信息,深度語義排序哈希[20](Deep Semantic Ranking Hashing,DSRH)利用三元組排序損失,以保持圖像的語義結(jié)構(gòu).大多數(shù)深度學(xué)習(xí)哈希方法都是為處理簡單的二進制相似性而設(shè)計的,與多個標(biāo)簽相關(guān)的圖像的多級語義結(jié)構(gòu)尚未得到很好的探索.DSRH[21]通過采用對多級相似性信息進行編碼的排序列表保持多標(biāo)簽圖像之間的多級語義相似性,從而解決了上述問題.隨著數(shù)據(jù)量的不斷增大,為了實現(xiàn)快速圖像檢索,二進制哈希碼深度學(xué)習(xí)[22](Deep Learning of Binary Hash Codes,DLBHC)在神經(jīng)網(wǎng)絡(luò)的倒數(shù)第二層加入隱含層,來表示類標(biāo)簽的潛在概念.該方法適用于大型數(shù)據(jù)集.

隨著研究的發(fā)展,研究人員不再局限于單一模態(tài)的情況,開始對多模態(tài)的深度學(xué)習(xí)哈希方法展開研究.比如基于排序的深度跨模態(tài)哈希算法[23](Ranking-based Deep Cross-Modal Hashing,RDCMH),首先利用樣本的特征和標(biāo)簽信息獲得半監(jiān)督語義排序列表,然后將語義排序信息集成到深度跨模態(tài)哈希中.文獻(xiàn)[24]提出了一種基于全局和局部語義保持的跨模態(tài)檢索深度哈希方法(GLSP),針對模態(tài)間和模態(tài)內(nèi),分別引入局部和全局語義結(jié)構(gòu),學(xué)習(xí)哈希碼.

3 深度學(xué)習(xí)哈希過程介紹

深度學(xué)習(xí)哈希是指通過不斷減小損失來訓(xùn)練神經(jīng)網(wǎng)絡(luò),對輸入數(shù)據(jù)提取出高維特征,然后映射為緊湊的二進制哈希碼.現(xiàn)有深度學(xué)習(xí)哈希方法的輸入模態(tài)大多為圖像、文本或視頻,廣泛應(yīng)用于圖像檢索、文本檢索以及視頻檢索等領(lǐng)域.如圖1所示,深度學(xué)習(xí)哈希方法的主要組成部分分為輸入、深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、產(chǎn)生哈希碼的哈希層和損失.常用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)有卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[25-27]、多層感知機(Multi-Layer Perception,MLP)[28-30]、受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)[31-33]和自編碼器(Auto-Encoder)[34-36]等.樣本的輸入形式通常有單樣本、二元組、多元組等,不同的輸入形式對應(yīng)的學(xué)習(xí)方式不同,學(xué)習(xí)方式通常分為有監(jiān)督、無監(jiān)督和半監(jiān)督[62],有監(jiān)督是指在有樣本標(biāo)簽的前提下,通過標(biāo)簽構(gòu)建樣本之間的相似性,從而對網(wǎng)絡(luò)進行訓(xùn)練,樣本標(biāo)簽有單標(biāo)簽和多標(biāo)簽兩種情況;無監(jiān)督指在沒有樣本標(biāo)簽的情況下,利用樣本間的空間距離等方式定義樣本的空間相似性;半監(jiān)督通常適用于少量樣本有標(biāo)簽,而其余大部分樣本無標(biāo)簽的情況.

圖1 深度學(xué)習(xí)哈希方法的主要組成部分Fig.1 Main components of deep learning hashing method

4 目標(biāo)函數(shù)及誤差定義

損失函數(shù)用于度量真實值與模型預(yù)測值之間的誤差,衡量模型正確提取樣本特征的能力.通過最小化損失函數(shù)對網(wǎng)絡(luò)結(jié)構(gòu)進行訓(xùn)練,從而得到較優(yōu)的模型.在深度學(xué)習(xí)哈希中,特定的任務(wù)通常需要制定特定的損失函數(shù),其主要包括以下幾個部分:重構(gòu)誤差、哈希碼約束、相似性保持、分類誤差和松弛化.重構(gòu)誤差用于約束生成的哈希碼與原樣本之間的誤差,即提高模型提取特征的能力;哈希碼約束是對生成的哈希碼進行約束,使其具有位不相關(guān)、位平衡等特性;相似性保持的作用是使樣本的相似性信息得到利用,從而生成具有相似性保持的哈希碼;分類誤差用于提高模型分類樣本的準(zhǔn)確度,使模型的標(biāo)簽信息進一步得到利用;松弛化的目的在于利用各種方法使模型更易優(yōu)化.

4.1 重構(gòu)誤差

與自編碼器類似的,重構(gòu)誤差指原始數(shù)據(jù)與經(jīng)過模型提取的二值哈希碼之間的誤差.如文獻(xiàn)[37]在損失函數(shù)中加入重構(gòu)誤差,目的是使網(wǎng)絡(luò)能夠較好地重構(gòu)原始輸入,即精確地提取出原始輸入的特征.重構(gòu)誤差常出現(xiàn)在無監(jiān)督的深度學(xué)習(xí)哈希方法中,該方法的網(wǎng)絡(luò)結(jié)構(gòu)通常為自編碼器或者生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN).其定義[38]如公式(1):

(1)

X∈D×N表示N個D維樣本的樣本矩陣,X={x1,x2,…,xN},W是連接網(wǎng)絡(luò)倒數(shù)兩層的權(quán)重矩陣,A表示X的網(wǎng)絡(luò)輸出值矩陣,B為A量化后的二值哈希碼矩陣,B=sgn(A)∈{-1,1}L×N,c指網(wǎng)絡(luò)最后一層的偏置向量,1a×b是一個大小為a×b且全為1的矩陣,指Frobenius范數(shù),激活函數(shù)采用符號函數(shù)sgn(·).

4.2 哈希碼約束

哈希碼約束指在哈希碼的層面上進行約束,使生成的哈希碼更符合要求,而與樣本的輸入形式、樣本標(biāo)簽的有無,以及所采用的深度神經(jīng)網(wǎng)絡(luò)類型均無關(guān).哈希碼約束大致包括量化誤差、位獨立、位平衡、哈希約束、參數(shù)正則化以及稀疏性限制.量化誤差用于減小特征與量化后的哈希碼之間的誤差;位獨立的作用是使哈希碼位與位之間相互獨立;位平衡使每一位哈希碼取值-1或1的概率相等;哈希約束的目的是約束量化前的實值特征趨近于+1或-1;參數(shù)正則化用于防止模型過擬合;稀疏性限制在犧牲哈希碼長度的前提下,使生成的哈希碼盡可能多地包含零元素.

4.2.1 量化誤差

量化誤差指量化后的二值碼與實值特征之間的差異,Zhang等人[39]在損失函數(shù)中加入量化誤差,其作用是最小化網(wǎng)絡(luò)提取的樣本特征經(jīng)量化操作后產(chǎn)生的誤差.定義[23,38,40-42,63,64]如公式(2)所示:

(2)

4.2.2 位獨立

為了使生成的哈希碼不同的位互不相關(guān),引入了位獨立項[9].公式見(3),其中I是單位矩陣:

(3)

4.2.3 位平衡

為了使生成的哈希碼位平衡,即每一位都有50%的概率為-1或1,提出了位平衡項,常見的方法有以下幾種:

1)哈希碼位內(nèi)方差最大化

a)如Jiang[41]等人定義的位平衡項:

(4)

b)如公式(5)中定義的位平衡項[65],其中tr(·)表示矩陣的秩:

balanceloss2=tr(AAT)

(5)

2)Zhao[21]等人定義的位平衡項鼓勵哈希碼的每個位平均為零,并確保學(xué)習(xí)過程更穩(wěn)定地收斂.公式(6)中Bij為樣本xj的第i位哈希碼,L指哈希碼位數(shù):

(6)

4.2.4 哈希約束

哈希約束用于約束網(wǎng)絡(luò)每個輸出節(jié)點的輸出值,即準(zhǔn)哈希碼中的每一個哈希位,都接近-1或1,使其最終量化后的誤差減小.常見的哈希約束項有以下幾種定義,式中Aij表示樣本xj經(jīng)過網(wǎng)絡(luò)后得到的第i位輸出,1為元素全為1的向量,‖·‖1為L1范數(shù),|·|為對向量每一維取絕對值操作,A·j表示樣本xj的網(wǎng)絡(luò)輸出值.

1)如[66]所定義的哈希約束項:

(7)

2)如[63]定義的哈希約束項:

constloss2=min(‖A·j+1‖2,‖A·j-1‖2)

(8)

3)如Guo[43]等人定義的哈希約束項,其中abs(·)為絕對值函數(shù):

(9)

其中,

4.2.5 參數(shù)正則化

為了避免模型過擬合,常用的方法是正則化,正則化的思想就是在損失函數(shù)中加入刻畫模型復(fù)雜程度的指標(biāo)[67].模型復(fù)雜度一般只由權(quán)重W決定,因此引入?yún)?shù)正則化項來最小化模型參數(shù),其定義[38]如公式(10)所示:

regularizationloss=‖W‖F(xiàn)

(10)

4.2.6 稀疏性限制

稀疏性限制在犧牲哈希碼長度的前提下,使網(wǎng)絡(luò)產(chǎn)生的哈希碼中含有較少的非零元素,其目的是從長哈希碼中獲得高精度,并且能取得與緊湊哈希碼相當(dāng)?shù)母哒倩芈剩?/p>

(11)

2)公式(12)[44]中利用L1范數(shù)正則化項實現(xiàn)稀疏性限制,其中α為控制稀疏性程度的參數(shù),B·i是樣本xi的哈希碼:

sparseloss2=α‖B·i‖1

(12)

4.3 相似性保持

相似性保持指在原始空間中相似的樣本,其在漢明空間中的二值哈希碼之間的漢明距離較小,而不相似的樣本,二值碼漢明距離較大.樣本間的相似性度量可根據(jù)樣本之間距離的遠(yuǎn)近或者標(biāo)簽是否相同來定義.相似性保持通常應(yīng)用在有監(jiān)督的深度學(xué)習(xí)哈希方法中,而在無監(jiān)督的情況下,需要樣本間的空間距離作為監(jiān)督信息.相似性保持項通常分為樣本的空間相似性和樣本語義相似性.

4.3.1 樣本空間相似性

樣本空間相似性通常是在樣本無標(biāo)簽的情況下,利用樣本空間的距離,度量樣本相似性,進而保持哈希碼的相似性.大致有以下兩種方法:

1)利用拉普拉斯矩陣保持相似性,如公式(13)定義的相似性保持項[38]:

sploss1=tr(ALAT)

(13)

其中拉普拉斯矩陣L=D-R保存了關(guān)于初始空間中樣本間相似性的信息;對角矩陣D,其對角元素值為矩陣R行或列,djj=∑irij.權(quán)重矩陣R∈N×N,其元素rij表示樣本xi與xj之間的距離:

2)基于圖模型構(gòu)造樣本間的相似度矩陣S,將此矩陣作為樣本的相似性信息,用于指導(dǎo)二值哈希碼的生成,使其能夠保持樣本的相似性.其做法是根據(jù)原始空間中樣本的特征,找到與其最有可能相似或標(biāo)簽相同的樣本.如文獻(xiàn)[65]多次使用K最近鄰算法(k-Nearest Neighbor,kNN),構(gòu)建出樣本的最近鄰圖譜,然后在此圖譜上進行搜索,擴展圖譜上所有節(jié)點的最近鄰.具體做法為:首先計算兩兩樣本之間的余弦距離,用KNN搜索保留每個樣本的前K1個相似樣本,得到初始的相似矩陣,用S1表示:

然后在S1的基礎(chǔ)上再進行一次KNN,此時是計算樣本K2個最近鄰之間的相似度,得到S2:

最后將S1與S2合并,得到最近鄰圖譜S:

4.3.2 語義相似性

1)利用樣本間哈希碼相似性與標(biāo)簽相似性之間的差異定義語義相似性:對于L×N的哈希碼矩陣B,相似性保持項如下[39]:

(14)

其中S={sij}N×N是樣本的相似性矩陣:

若哈希碼越相似,即σ(Ωij)越大,則似然p(sij|B)越大,反之越小.對似然取負(fù)對數(shù)即為交叉熵?fù)p失函數(shù):

-∑sij∈S[sijΩij-log(1+exp(Ωij))]

(15)

3)通過令相似樣本哈希碼之間的漢明距離最小化,同時使不相似樣本哈希碼之間的距離最大化,保持語義相似性:

a)為了最小化類內(nèi)方差,最大化類間方差,定義如下相似性保持項[40]:

sploss4=tr(∑B-∑W)

(16)

ND和NS分別是不相似樣本對數(shù)和相似樣本對數(shù),{Ad1,Ad2}表示不相似樣本對集合D中樣本對的網(wǎng)絡(luò)輸出,{As1,As2}表示相似樣本對集合S中樣本對的網(wǎng)絡(luò)輸出.

b)如下所定義的相似性保持項中[45],第一項懲罰相似樣本對映射到不同的二值碼,保證了相似樣本之間的距離盡可能地小,第二項懲罰不相似的樣本對映射到相近的二值碼,使得不相似樣本之間的距離盡可能大,其中M是邊緣閾值參數(shù),用于限制樣本對之間的距離,以平衡兩項損失,當(dāng)‖A·i-A·j‖1>M,認(rèn)為兩個樣本不相似,即不屬于同一類.

sploss5=sij‖B·i-B·j‖1+(1-sij)max{0,M-‖B·i-B·j‖1}

(17)

4)通過最小化語義空間中的聯(lián)合概率分布P與漢明空間中的聯(lián)合概率分布V之間的Kullback-Leibler分歧,保持樣本的語義相似性.如Lei[24]等人利用樣本之間共同標(biāo)簽的數(shù)量作為監(jiān)督信息,為每個樣本學(xué)習(xí)相似性保持哈希碼.首先定義G為具有N個樣本的數(shù)據(jù)集的關(guān)聯(lián)矩陣,其元素Gij為樣本xi與xj的公共標(biāo)簽個數(shù).然后利用G計算語義空間中的聯(lián)合概率分布P,其元素pij:

在漢明空間中,利用漢明距離dH(·,·)計算概率分布V,將其元素vij定義為B·i和B·j的聯(lián)合概率分布,vij越大表明哈希碼B·i與B·j越相似:

于是KL分歧為:

(18)

(19)

其中,[·]+=max(0,·),δdH(B·q,B·i,B·j)=dH(B·q,B·i)-dH(B·q,B·j),參數(shù)M是邊緣閾值,控制樣本對距離的最小邊緣.

4.4 分類損失

樣本標(biāo)簽不僅用于挖掘圖像語義結(jié)構(gòu)的監(jiān)督信息,還能提供樣本分類信息.在損失函數(shù)中加入分類損失能夠減小樣本分類錯誤產(chǎn)生的誤差.分類損失大致有以下兩種情況:

1)利用softmax損失來定義樣本xi的分類損失,若模型對于樣本真正所屬類別的預(yù)測概率為1,則無損失,否則將產(chǎn)生softmax損失:

(20)

其中,c表示樣本類別數(shù),y為樣本xi的標(biāo)簽,W表示權(quán)重.

2)利用交叉熵定義樣本x的分類損失:

(21)

3)將全連接層看作分類器,其作用是把二值碼分到對應(yīng)的類.如公式(22)所示,將二值碼的學(xué)習(xí)看作是線性的分類問題,以最小化分類誤差[46]:

classifiedloss=‖Y-BW‖2

(22)

4.5 松弛化

在對網(wǎng)絡(luò)輸出進行量化時,通常使用符號函數(shù)進行二值化,然而符號函數(shù)不可導(dǎo),使得網(wǎng)絡(luò)優(yōu)化困難,因此通常使用以下幾種方法進行松弛化:

1)如公式(23)定義的松弛化項[47,48,66],用雙正切激活函數(shù)tanh(·)替代符號函數(shù)sgn(·),將輸出映射到[-1,1]范圍內(nèi),其中Aij為樣本xj的第i位網(wǎng)絡(luò)輸出,β為控制平滑度的參數(shù),其作用是決定函數(shù)值接近-1或者1的速度,可通過逐漸增大β來近似sgn(·):

(23)

(24)

3)文獻(xiàn)[69]中將哈希碼之間的距離由漢明距離替換成歐氏距離,并在損失函數(shù)中增加量化誤差項,以此替換二值化約束.

4)除了將漢明距離替換成歐氏距離之外,可以添加如下正則化項替代二值約束來實現(xiàn)松弛化[49]:

‖|A·j|-1‖1

(25)

5 深度學(xué)習(xí)哈希方法分類

如圖2所示,深度學(xué)習(xí)哈希方法可以根據(jù)樣本的標(biāo)簽情況,分為無標(biāo)簽的深度學(xué)習(xí)哈希方法、單標(biāo)簽的深度學(xué)習(xí)哈希方法和多標(biāo)簽的深度學(xué)習(xí)哈希方法,本文將對每一類方法分為單樣本、二元組、多元組進行詳細(xì)的介紹.

圖2 深度學(xué)習(xí)哈希方法分類Fig.2 Classification of deep learning hash method

5.1 無標(biāo)簽的深度學(xué)習(xí)哈希方法

無標(biāo)簽的深度學(xué)習(xí)哈希方法指在沒有標(biāo)簽的情況下,利用深度學(xué)習(xí)進行哈希的一類方法.該方法通常有兩類做法,一類是不需要監(jiān)督信息,因此無法利用樣本間的相似性關(guān)系,生成的哈希碼也沒有相似性保持特性;另一類是在沒有標(biāo)簽的情況下,利用樣本間的空間距離衡量樣本的相似性,常用的方法有通過KNN等方法生成樣本的最近鄰圖譜,或者構(gòu)建拉普拉斯矩陣等.

5.1.1 輸入樣本形式為單樣本

單樣本輸入的無標(biāo)簽深度學(xué)習(xí)哈希方法指樣本的輸入形式為一個樣本,經(jīng)過神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過最小化設(shè)計的損失函數(shù)訓(xùn)練網(wǎng)絡(luò),最后將樣本映射為哈希碼.大部分單樣本輸入的無標(biāo)簽深度學(xué)習(xí)哈希方法[37,40,68]考慮到輸入形式以及無標(biāo)簽的限制,都不考慮相似性保持特性,更多的使用重構(gòu)誤差、哈希碼約束來定義損失函數(shù),但部分論文[38,63]引入了拉普拉斯矩陣來保持樣本的空間相似性.此類方法多應(yīng)用于樣本特征的提取或可視化搜索等.

如Xia[37]在異構(gòu)深度哈??蚣芟拢枚褩W跃幋a器(Stacked Auto Encoder,SAE)對特征與二值碼之間的非線性映射進行建模,即生成初始的二值碼,該層的損失函數(shù)考慮在位平衡和位獨立的約束下,最小化重構(gòu)誤差.然后,利用受限玻爾茲曼機層最大化訓(xùn)練樣本的似然,來減小初始二值碼的維數(shù).最后使用P-R曲線驗證該方法的有效性.

5.1.2 輸入樣本形式為二元組

二元組輸入的無標(biāo)簽深度學(xué)習(xí)哈希方法指將成對的樣本輸入到網(wǎng)絡(luò)中,利用樣本間的空間相似性關(guān)系、哈希碼約束等目標(biāo)函數(shù)項來訓(xùn)練網(wǎng)絡(luò),最終生成兩個哈希碼的一類深度學(xué)習(xí)哈希方法[64,65].由于二元組的輸入形式以及樣本無標(biāo)簽,該類方法往往會利用樣本間的空間相似性關(guān)系,在損失函數(shù)中加入相似性保持項,使生成的二值哈希碼具有語義保持性.

如文獻(xiàn)[64]首先將KNN構(gòu)建的近鄰圖譜作為監(jiān)督信息,利用CNN生成樣本對應(yīng)的哈希碼;然后將其輸入到生成對抗網(wǎng)絡(luò)中,并輸入二進制噪聲,利用生成器、判別器以及損失函數(shù)進行訓(xùn)練,優(yōu)化哈希碼.總體損失函數(shù)為相鄰結(jié)構(gòu)損失、內(nèi)容損失和對抗性損失之和.其中,相鄰結(jié)構(gòu)損失是KNN構(gòu)造的相似矩陣與生成的哈希碼之間的差異,其作用是使二值碼具有相似性保持;內(nèi)容損失定義為像素化均方誤差損失、VGG損失、量化損失之和.

5.1.3 輸入樣本形式為多元組

據(jù)了解,目前尚無針對多元組輸入的無標(biāo)簽深度學(xué)習(xí)哈希方法的研究,由于多元組輸入形式一般是為了通過利用樣本之間的語義相似性關(guān)系,更好地保持樣本的語義信息.而對于無標(biāo)簽的情況,可以利用樣本之間的空間相似性定義多元組相似性,并利用哈希碼約束等損失項定義損失函數(shù),從而生成相似性保持的哈希碼.但該方法很難確定樣本相似或不相似的閾值,并且很難界定多個樣本之間的相似性等級.若使用樣本的距離來衡量樣本的相似性關(guān)系,則需要計算多元組樣本兩兩之間的距離.因此,若在今后的研究工作中,如果能夠解決樣本距離的計算問題,則可對多元組輸入的無標(biāo)簽深度學(xué)習(xí)哈希方法進行探索.

5.2 單標(biāo)簽的深度學(xué)習(xí)哈希方法

單標(biāo)簽的深度學(xué)習(xí)哈希方法指在樣本只有單一標(biāo)簽時,利用深度學(xué)習(xí)進行哈希的方法.通常使用樣本標(biāo)簽確定樣本的相似性關(guān)系,當(dāng)樣本的標(biāo)簽一樣時,則認(rèn)為樣本相似,反之,當(dāng)樣本標(biāo)簽不一致時,則樣本不相似.單標(biāo)簽的深度學(xué)習(xí)哈希方法通常通過保持樣本的語義來生成二值哈希碼.

5.2.1 輸入樣本形式為單樣本

單樣本輸入的單標(biāo)簽深度學(xué)習(xí)哈希方法[22,43,46,50-52,70]指輸入單樣本到深度神經(jīng)網(wǎng)絡(luò)中,通過定義的損失函數(shù)得到有效的二值哈希碼.該類方法常利用分類誤差、哈希碼約束作為損失函數(shù)項來訓(xùn)練網(wǎng)絡(luò),受其輸入形式的限制,大部分方法不具有相似性保持能力.單樣本輸入的單標(biāo)簽深度學(xué)習(xí)哈希方法常應(yīng)用于移動視覺搜索、文檔搜索等場景.

(26)

5.2.2 輸入樣本形式為二元組

二元組的單標(biāo)簽深度學(xué)習(xí)哈希方法[39,41,42,44,45,49,53,66]指將成對的樣本輸入到深度神經(jīng)網(wǎng)絡(luò)中,利用樣本間的語義相似性關(guān)系訓(xùn)練網(wǎng)絡(luò),進而生成哈希碼的一類方法.由于帶單標(biāo)簽的二元組輸入形式,該類方法往往會根據(jù)樣本標(biāo)簽的異同定義樣本的語義相似性關(guān)系,并在損失函數(shù)中加入相似性保持項、哈希碼約束項,使生成的二值哈希碼具有語義保持性.此類方法常用于視頻檢索、圖像檢索等.

如Li[42]提出了深度成對監(jiān)督哈希(deep pairwise-supervised hashing,DPSH)的端到端學(xué)習(xí)框架,將成對的圖像輸入到CNN中,利用基于樣本語義相似性的損失函數(shù),訓(xùn)練CNN,產(chǎn)生最終的哈希碼.該框架所設(shè)計的損失函數(shù)如下:通過在損失函數(shù)中加入量化誤差項來最小化量化損失,同時利用圖像的標(biāo)簽定義相似性保持項,考慮到優(yōu)化問題,對損失函數(shù)進行松弛化.最后在兩個數(shù)據(jù)集上測試該方法的mAP值.

5.2.3 輸入樣本形式為多元組

目前的多元組深度學(xué)習(xí)哈希方法[19,20,23,47]大多指輸入形式為三元組的方法.三元組指一次輸入三個樣本,第一個樣本為主樣本,第二個樣本與第一個樣本相似,第三個樣本與第一個樣本不相似.根據(jù)樣本相似性關(guān)系指導(dǎo)生成對應(yīng)關(guān)系的哈希碼,即第一個樣本的哈希碼與第二個樣本哈希碼的距離小于與第三個樣本哈希碼的距離.多元組輸入的單標(biāo)簽深度學(xué)習(xí)哈希方法通常利用哈希碼約束等損失函數(shù)項,并保持樣本的語義關(guān)系,指導(dǎo)深度神經(jīng)網(wǎng)絡(luò)生成具有相似性保持的哈希碼.該類方法常被應(yīng)用在跨模態(tài)檢索、圖像檢索上.

如Lai[19]等提出了一種基于三元組排序損失的監(jiān)督哈希方法,輸入三元組圖像到CNN中,提取圖像特征,通過最小化三元組排序損失訓(xùn)練網(wǎng)絡(luò),然后利用劃分和編碼模塊將提取的特征分為多個分支,每個分支對應(yīng)一個哈希位.

5.3 多標(biāo)簽的深度學(xué)習(xí)哈希方法

多標(biāo)簽的深度學(xué)習(xí)哈希方法指的是當(dāng)樣本具有多個標(biāo)簽時,根據(jù)樣本的語義排序關(guān)系是否有公共標(biāo)簽,定義樣本的語義相似性,然后通過深度學(xué)習(xí)對樣本進行哈希,產(chǎn)生語義保持的哈希碼.樣本的語義排序關(guān)系可以通過對數(shù)據(jù)庫樣本與查詢樣本之間共同標(biāo)簽個數(shù)的多少進行排序得到.

5.3.1 輸入樣本形式為單樣本

據(jù)了解,目前尚無針對單樣本輸入的多標(biāo)簽深度學(xué)習(xí)哈希方法的相關(guān)研究,可通過softmax分類損失以及哈希碼約束定義損失函數(shù)來保持樣本的語義信息,但由于樣本具有多個標(biāo)簽,需要求多個softmax分類損失,較為繁瑣,并且無法保持樣本與樣本之間的語義相似性,因此對于多標(biāo)簽的情況,大部分采用二元組或多元組的輸入形式,不僅能通過softmax分類損失保持樣本的語義信息,并且能充分利用樣本的語義相似性關(guān)系.

5.3.2 輸入樣本形式為二元組

二元組輸入的多標(biāo)簽深度學(xué)習(xí)哈希方法[24,69]通常根據(jù)樣本是否具有公共標(biāo)簽定義其相似性,若兩個樣本之間至少有一個公共標(biāo)簽,則認(rèn)為其相似,否則不相似.其損失函數(shù)項大致有樣本的語義相似性保持項、哈希碼約束和分類損失等.此類方法通常用于跨模態(tài)檢索等場景.

如Lei[24]提出了一種基于全局和局部語義保持的跨模態(tài)檢索深度哈希方法.針對圖像形式的輸入,利用CNN提取特征,針對文本形式的輸入,利用MLP提取文本特征.在多標(biāo)簽的情況下,對于不同模態(tài),利用樣本的相似性(是否有共同標(biāo)簽)與所學(xué)哈希碼的漢明距離之間的關(guān)系,使所學(xué)習(xí)的哈希碼保留局部語義結(jié)構(gòu);對于模態(tài)內(nèi),引入具有全局多級相似性的監(jiān)督信息,最小化語義空間和漢明空間中的聯(lián)合概率分布之間的Kullback-Leibler分歧,使每個模態(tài)的哈希碼具有全局語義保持性.

5.3.3 輸入樣本形式為多元組

多元組輸入的多標(biāo)簽深度學(xué)習(xí)哈希方法[20,21,48,54]通常是指在樣本具有多標(biāo)簽的情況下,根據(jù)數(shù)據(jù)集中樣本與主樣本的公共標(biāo)簽個數(shù),對數(shù)據(jù)集中所有樣本進行排序,得到主樣本的排序列表,并根據(jù)排序順序定義其與主樣本的相似性水平.大多數(shù)多元組輸入的多標(biāo)簽深度學(xué)習(xí)哈希方法都采用三元組的輸入形式,在此三元組中,第一個樣本作為主樣本,第二個樣本與第一個樣本的相似性水平高于第三個樣本與第一個樣本的相似性水平,以此作為語義相似性保持的約束條件,再加上分類損失、哈希碼約束等損失函數(shù)項,訓(xùn)練深度神經(jīng)網(wǎng)絡(luò).該類方法適用于跨模態(tài)檢索等應(yīng)用.

如基于順序敏感的深度哈希算法[48],利用卷積神經(jīng)網(wǎng)絡(luò)提取特征,然后通過一個哈希層產(chǎn)生二值哈希碼,并利用基于三元組的排序損失以及基于交叉熵的多標(biāo)簽分類損失來挖掘多標(biāo)簽樣本的信息,最后通過松弛化減少量化損失.其基于三元組的排序損失為:

(27)

其中xq為主樣本,l為xq的排序列表的大小,ri是關(guān)于樣本xi與xq的語義相似性水平,M控制兩對樣本對的最小邊緣距離,Z是與排序列表長度有關(guān)的常數(shù).

6 評估指標(biāo)

深度學(xué)習(xí)哈希方法的評估指標(biāo)有mAP、precision、recall、ACG等,用于評估方法的性能、準(zhǔn)確率.令Nr表示檢索到的實際與查詢樣本相似的樣本個數(shù),Ns表示搜索到的樣本總個數(shù),Na指的是數(shù)據(jù)集中所有與查詢樣本相似的樣本數(shù).

6.1 查準(zhǔn)率(Precision)

查準(zhǔn)率(Precision)是指利用深度學(xué)習(xí)哈希方法檢索到的樣本中與查詢樣本相似的樣本占所有檢測到的樣本的比例,Xu[55]等用此指標(biāo)來評估模型的檢索性能:

(28)

6.2 查全率(Recall)

查全率(Recall)是指深度學(xué)習(xí)哈希方法檢索出的樣本數(shù)(即相似于查詢樣本)占數(shù)據(jù)集中所有符合條件(即與查詢樣本相似)的樣本數(shù)的比例,用于評估方法檢索的全面性:

(29)

6.3 F值(F Score)

由于查準(zhǔn)率與查全率有互逆性,即當(dāng)查準(zhǔn)率高時,查全率可能處于較低的值,反之.于是引入F值來綜合評估查準(zhǔn)率和查全率:

(30)

當(dāng)β>1時,說明在當(dāng)前的學(xué)習(xí)任務(wù)中,較關(guān)注查全率,反之,當(dāng)β<1時,比較重視查準(zhǔn)率,當(dāng)β=1時,即F1值,查準(zhǔn)率與查全率同等重要,需要同時考慮.

6.4 查準(zhǔn)率-查全率曲線(P-R Curve)

根據(jù)深度學(xué)習(xí)哈希方法的預(yù)測結(jié)果對樣本進行排序,依次取不同樣本作為劃分閾值,則可以得到多組Precision和Recall,繪制得到P-R曲線.P-R曲線越靠近坐標(biāo)(1,1)越好,此時查準(zhǔn)率和查全率都接近1.若方法A的P-R曲線完全位于另外一個方法B的下方,即被完全包住,則認(rèn)為方法B優(yōu)于方法A,若兩條P-R曲線交叉,則需要根據(jù)P-R曲線下面積AP(Average Precision)的大小或者平衡點的位置進行判斷,AP越大,則方法的搜索性能越好.Torralba[56]等應(yīng)用P-R曲線,比較在哈希碼長度不同的情況下,模型性能的差異.

6.5 受試者工作特征曲線(ROC)

ROC曲線是受試者工作特征曲線(Receiver Operating Characteristic),與P-R曲線相似,將樣本按照深度學(xué)習(xí)哈希方法學(xué)習(xí)得到的結(jié)果進行排序,然后依次將每個樣本當(dāng)作正例,每次得到一組真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,F(xiàn)PR),并分別作為縱坐標(biāo)和橫坐標(biāo),最終得到ROC曲線.

(31)

(32)

ROC曲線適用于分類任務(wù),用于評估方法分類的準(zhǔn)確性.若方法A的ROC曲線處于方法B的范圍內(nèi),則認(rèn)為方法B優(yōu)于方法A.若兩條ROC曲線相交,則需要根據(jù)ROC曲線下的面積AUC(Area Under ROC Curve)大小進行判斷,AUC越大,則方法的分類效果越好.

6.6 平均精度(AP)

AP(Average Precision)是平均精度,在檢索應(yīng)用中,表示深度學(xué)習(xí)哈希方法對查詢樣本q的返回結(jié)果的平均查準(zhǔn)率.其中Precisioni表示前i個返回的檢索結(jié)果的查準(zhǔn)率,ri指第i個返回結(jié)果與查詢樣本q是否相關(guān),相關(guān)時ri=1,不相關(guān)時為0,n是檢索返回的樣本數(shù),N為數(shù)據(jù)集中與q相關(guān)的圖片總數(shù).

(33)

6.7 平均精度均值(mAP)

mAP(mean Average Precision)是平均精度均值,即所有查詢樣本Q={q1,…qm}的AP的均值,用于評估方法的平均檢索性能,mAP越大,則方法的性能越好.Dong[57]等用mAP來評估模型用于人臉識別[70]的性能.

(34)

6.8 歸一化的累計收益折扣(NDCG)

NDCG(Normalized Discounted Cumulative Gain),通常適用于語義排序的情況,用于評估樣本的排序效果.給定查詢樣本q及其具有p個樣本的排序列表,NDCG分?jǐn)?shù)如公式(35)所示,其中ri為排序列表中第i個返回樣本與查詢樣本q的相似性等級,如公共標(biāo)簽個數(shù)等,Z為標(biāo)準(zhǔn)化因素.

(35)

6.9 平均累計收益(ACG)

ACG(Average Cumulative Gain)通過計算前p個位置內(nèi)樣本相似性等級的平均值.

(36)

7 總結(jié)與展望

本文對深度學(xué)習(xí)哈希方法的研究進展以及方法的基本框架進行了介紹;然后詳細(xì)闡述了深度學(xué)習(xí)哈希方法的多種目標(biāo)函數(shù)項,包括重構(gòu)誤差、位平衡、位獨立、哈希約束、參數(shù)正則化和稀疏性限制等;并根據(jù)樣本標(biāo)簽的個數(shù)(無標(biāo)簽/單標(biāo)簽/多標(biāo)簽)以及輸入形式(單樣本/二元組/多元組)對該方法進行分類,詳細(xì)介紹每類方法的主要過程.

綜上所述,現(xiàn)有的深度學(xué)習(xí)哈希方法從輸入形式到學(xué)習(xí)方式,從神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)類型到應(yīng)用場景都得到了深入的研究.單元組、二元組和多元組的輸入形式,有監(jiān)督、半監(jiān)督和無監(jiān)督的學(xué)習(xí)方式,CNN、RBM和GAN等神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),單模態(tài)和多模態(tài)的應(yīng)用等都使得深度學(xué)習(xí)哈希方法在圖像搜索[58]、文本搜索[59]和視頻檢索[60]等各個方面得到了廣泛的研究與應(yīng)用.但仍存在以下幾個不足,未來的研究工作可以針對這幾個方面展開:

1)深度學(xué)習(xí)哈希方法由于深度神經(jīng)網(wǎng)絡(luò)具有強大的提取特征的能力以及二值哈希碼的特性,取得了較好的性能,得到了較為廣泛的應(yīng)用,特別是在圖像搜索方面,然而對于其他方面的應(yīng)用仍然研究較少,未來工作可以針對除圖像、視頻等常見的領(lǐng)域之外,如生物序列方面、文本方面等進行研究,將深度學(xué)習(xí)哈希方法推廣應(yīng)用到更廣泛的領(lǐng)域.

2)現(xiàn)有的深度學(xué)習(xí)哈希方法大多數(shù)僅使用CNN、RBM提取樣本特征,對于其他神經(jīng)網(wǎng)絡(luò)的應(yīng)用有待研究.未來可根據(jù)不同的應(yīng)用需求,使用LSTM、RNN等其他神經(jīng)網(wǎng)絡(luò).

3)進一步地,由于最后通常采用不可導(dǎo)的符號函數(shù)sgn(·)來產(chǎn)生二值碼,因此存在網(wǎng)絡(luò)的優(yōu)化問題,現(xiàn)有的優(yōu)化方法仍有待改進.今后的工作方向可針對此問題加以研究.

4)現(xiàn)有的深度學(xué)習(xí)哈希方法大多數(shù)采用有監(jiān)督的學(xué)習(xí)方法,在樣本無標(biāo)簽或有標(biāo)簽的樣本數(shù)較少時,所能采用的無監(jiān)督[61]以及半監(jiān)督方法較少.因此,在將來的工作中可對此方面進行研究.

對于多元組輸入的深度學(xué)習(xí)哈希方法,目前大多數(shù)仍是三元組的輸入形式,將來可對其他多元組(大于三元組)輸入形式的方法加以探索,以應(yīng)用在其他場景,如當(dāng)樣本具有多個標(biāo)簽,且標(biāo)簽具有大小等級關(guān)系時,可考慮采用多元組的輸入形式.

猜你喜歡
哈希相似性標(biāo)簽
一類上三角算子矩陣的相似性與酉相似性
淺析當(dāng)代中西方繪畫的相似性
河北畫報(2020年8期)2020-10-27 02:54:20
無懼標(biāo)簽 Alfa Romeo Giulia 200HP
車迷(2018年11期)2018-08-30 03:20:32
不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
海峽姐妹(2018年3期)2018-05-09 08:21:02
低滲透黏土中氯離子彌散作用離心模擬相似性
標(biāo)簽化傷害了誰
基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
基于多進制查詢樹的多標(biāo)簽識別方法
計算機工程(2015年8期)2015-07-03 12:20:27
基于維度分解的哈希多維快速流分類算法
計算機工程(2015年8期)2015-07-03 12:20:04
基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗證算法
計算機工程(2014年6期)2014-02-28 01:25:40
志丹县| 天台县| 郎溪县| 瑞金市| 循化| 河津市| 册亨县| 民县| 洪湖市| 溧水县| 许昌市| 安宁市| 靖边县| 灵丘县| 绥德县| 黄龙县| 九寨沟县| 白水县| 神农架林区| 贺州市| 蚌埠市| 霍城县| 丽江市| 仙游县| 望都县| 云龙县| 随州市| 正镶白旗| 苗栗市| 孝昌县| 湟中县| 资兴市| 六枝特区| 宁城县| 横峰县| 桂林市| 大竹县| 南江县| 武平县| 台州市| 家居|