標(biāo)簽(空格分隔):
1.論文主要內(nèi)容
作者通過CNN網(wǎng)絡(luò)來學(xué)習(xí)圖片的hash code,作者在這個學(xué)習(xí)到過程當(dāng)中主要的創(chuàng)新之處在一下幾個方面棠隐。
1).不在是使用單張圖片進(jìn)行訓(xùn)練,而是通過輸入一對圖片來進(jìn)行訓(xùn)練果覆,標(biāo)簽是:如果這兩張圖片來自于同一類別,那么認(rèn)為他們是相似的,為正樣本精堕,否則不同的類別的兩張圖片認(rèn)為是負(fù)樣本凸克。
2).作者精心設(shè)計了損失函數(shù)议蟆。使得輸出空間也就是hash空間,盡可能的多樣化萎战,編碼更多原始圖片的信息咐容。同時限制值的。
在檢索階段:對于來的一張圖片可以通過訓(xùn)練的網(wǎng)絡(luò)生成hashcode,然后在圖片庫中進(jìn)行檢索蚂维,漢明距離的計算戳粒。
實驗:作者在兩個數(shù)據(jù)集上進(jìn)行了實驗:CIFAR-10,NUS_WIDE虫啥,兩個數(shù)據(jù)集上得到了其他方法要好的結(jié)果蔚约。
具體的論文細(xì)節(jié)如下:
1.網(wǎng)絡(luò)結(jié)構(gòu)
2.損失函數(shù):
其中:假設(shè)輸入的兩張圖片是I1,I2
,得到的hashCode為b1,b2,為k維{+1,-1}向量涂籽,D(*)為Hamming distance
如果兩張圖片相似那么y=1
否則y=0
第一項是在y=0的時候炊琉,說明兩個圖片相似,那么他們兩的漢明距離就是他們之間的損失又活,因為我們認(rèn)為相似的圖片的hashcode應(yīng)該是非常相近的苔咪。
第二項說明在,兩張圖片不相似的時候柳骄,他們之間的距離团赏,我們需要的是,不相似的圖片距離盡可能的大耐薯。使得作為損失函數(shù)的一部分的第二項盡可能的小舔清。其中m是一個閾值參數(shù)。
上面是對一對圖片的損失函數(shù)曲初,那么對于訓(xùn)練集我們可以得到如下的損失函數(shù):
我們的目標(biāo)就是最小化損失函數(shù)体谒。但是對于上面的約束和其他論文的hashcode約束一樣,都是二值的臼婆,離散的抒痒,不可導(dǎo)。所以就出現(xiàn)了問題颁褂,在訓(xùn)練的時候故响,不好反向傳播誤差傀广。
下面就是對上面提出的損失函數(shù)進(jìn)行松弛,變成可導(dǎo)彩届,使得易于計算伪冰。
3.松弛
對上面的一對圖片寫成矩陣的表達(dá)形式,并添加正則項樟蠕。得到如下的損失函數(shù)贮聂。
這里使用了l1
正則,距離使用l2距離寨辩。
同時得到整體損失函數(shù)的矩陣表達(dá)形式:
下面是在反向傳播的時候需要用到的導(dǎo)數(shù):
通過作者提出來的這個訓(xùn)練框架寂汇,最后得到的hashcode 就是對b
向量進(jìn)行二值化:sign(b)
作者沒有使用導(dǎo)非線性的一些函數(shù):tanh,sigmoid等等,具體的好處作者接下來會陳述捣染。
4具體的實現(xiàn)細(xì)節(jié)
使用Caffe來實現(xiàn):具體的網(wǎng)絡(luò)結(jié)構(gòu)在上面有展示骄瓣。
3層卷積和隨后的三層pooling層,兩層的全連接層耍攘。
使用的卷積核的個數(shù):32榕栏,32,64 大小為55 stride=1
pooling:33 stride=2
第一個全鏈接層:500個神經(jīng)元蕾各,第二層是k個神經(jīng)元扒磁,也就是hashcode的長度。
初始化:Xavier的參數(shù)作為初始化式曲,一篇文章里面提到的網(wǎng)絡(luò)參數(shù)妨托。
batch size = 200
momentum = 0.9
learning rate 0.001,沒20000次迭代之后,減少40%
訓(xùn)練的時候吝羞,圖片對是隨機(jī)選擇的兰伤。
訓(xùn)練是先選擇一部分較少的輸出層的然后,使用這些參數(shù)來微調(diào)到更長的hashCode
5實驗部分:
5.1數(shù)據(jù)集:
CIFAR-10:60000 32*32 10個類別钧排。512D-GIST特征敦腔,同一個類別認(rèn)為是相似的,否則不相似恨溜。5w訓(xùn)練符衔,1w測試。
NUS-WIDE:269648 81個標(biāo)注的多類別糟袁。作者使用21個最常用的概念(類別)每個類別5000張判族。兩張圖片只要有一個類別一樣,就認(rèn)為相似项戴。1w測試形帮,其他訓(xùn)練。
5.2實驗參數(shù)估計
正則參數(shù)的實驗:
在hashcode length k = 12基礎(chǔ)上實驗
在線隨機(jī)生成訓(xùn)練圖片對和線下生成訓(xùn)練圖片對的比較
可以看出來,在線的訓(xùn)練誤差下降的更快沃缘。
微調(diào)和從頭開始訓(xùn)練
作者提出來躯枢,在訓(xùn)練的時候则吟,首先把hashcode 長度設(shè)置的小一點(diǎn)槐臀,然后獲得一些參數(shù)之后,在把長度提高氓仲,用這些參數(shù)的值水慨,進(jìn)行訓(xùn)練。
作者進(jìn)行了一些列的對比
看出來并不是從頭開始訓(xùn)練結(jié)果比較好敬扛,相反的是進(jìn)行微調(diào)效果會好晰洒。
可以看出來,微調(diào)之后的結(jié)果要好于從頭開始訓(xùn)練的過程啥箭。
和傳統(tǒng)的方法進(jìn)行比較
結(jié)論:
作者提出了非線性的特征學(xué)習(xí)和hashcode的面向特定任務(wù)的學(xué)習(xí)過程谍珊。
對于海明空間和原始空間中的正則項和實值的約束,還有在線訓(xùn)練樣本的生成急侥。
實驗表明作者提出的方法砌滞,優(yōu)于其他已存在的方法。