讀論文:CVPR2018 SSAH

轉(zhuǎn)載請注明作者:夢里茶

這是騰訊AI Lab與西電合作的一篇CVPR2018的paper汹族,在多模態(tài)檢索任務(wù)中加入對抗網(wǎng)絡(luò)組件飘弧,為跨模態(tài)對象生成更好的語義特征暇昂,從而提高了跨模態(tài)檢索的效果笋妥。

問題描述

跨模態(tài)檢索:

  • 利用一種模態(tài)的數(shù)據(jù)去檢索另一種模態(tài)中的數(shù)據(jù)尝抖,比如文字搜圖片
Text2Image
  • 尋找多種模態(tài)的數(shù)據(jù)對應(yīng)的關(guān)鍵字
Data2Label
  • 常用的數(shù)據(jù)集:MSCOCO, NUS-WIDE, MIRFLICKR-25K

如果我們在檢索的時候再去做特征提取毡们,檢索速度會很慢,因此通常需要預(yù)先將特征提取出來昧辽,根據(jù)相似度建立索引衙熔,從而加快檢索速度,為了節(jié)省存儲空間搅荞,并加快計算效率红氯,通常會要求特征盡量短,并且是二進制表示取具,這樣的特征我們稱為Hash脖隶。

常用方法

我們要根據(jù)多模態(tài)的內(nèi)容生成一個hash,希望不同模態(tài)的同個對象hash盡量相近暇检,不同對象的hash盡量不同产阱。由于跨模態(tài)的內(nèi)容具有語義上的聯(lián)系,通常的做法是將不同模態(tài)的內(nèi)容映射到公共的語義空間块仆,已經(jīng)有很多這方面的工作构蹬,有監(jiān)督/無監(jiān)督的王暗,Shallow的手工特征/Deep特征。得到特征之后庄敛,可以用sign操作將連續(xù)的feature向量變成離散值俗壹,從而得到更輕量的特征。

sign

SSAH

image

這篇論文提出了一個結(jié)合對抗學習的深度神經(jīng)網(wǎng)絡(luò):

  • 利用深度提取圖像和文本特征藻烤,轉(zhuǎn)為hash(I/T->F->L+H->B)
  • 利用標簽生成特征绷雏,再轉(zhuǎn)為hash,并希望特征能夠還原回label((L->F->L+H->B)
  • 有監(jiān)督地最小化不同模態(tài)特征和hash的差異
  • 加入能夠區(qū)分不同來源的特征的判別器進行對抗訓練怖亭,進一步減小不同模態(tài)特征的差異

接下來具體講其中幾個部分:

Self supervised semantic Generation(L->F->L+H->B)

  • 輸入:某個圖文對應(yīng)的label涎显,每個對象會對應(yīng)多個label,one hot成01向量
  • 經(jīng)過四層神經(jīng)網(wǎng)絡(luò)(L->4096->512->N)
  • 輸出長度為N的向量兴猩,N=K+c期吓,K為哈希碼長度,c為label的類別個數(shù)
  • 訓練目標:讓生成的hash保留語義上的相關(guān)性倾芝,并能還原回原來的label
image

訓練目標由這個Loss約束完成:

image

首先解釋一下符號(以下數(shù)學符號用LaTeX格式顯示讨勤,簡書不支持公式編輯,更好的閱讀體驗請查看cweihang.io)晨另,

  • $$H^l$$ 是根據(jù)label生成的hash潭千,

  • $$B^l$$是由hash執(zhí)行sign操作得到的二進制碼

  • $$\hat{L}$$ 是由特征還原回來的label

  • $$L$$ 是原本的label

  • $$\Delta_{ij}l=\frac{1}{2}(F_il)\top(F_jl)$$ ,即樣本i和樣本j的label生成的特征的余弦相似度

  • $$\Gamma_{ij}l=\frac{1}{2}(H_il)\top(H_jl)$$拯刁,即樣本i和樣本j的label生成的特征余弦相似度

  • $$S_{ij}$$ 表示樣本i和j是否包含至少一個相同的label脊岳,

    • 包含為1,表示樣本i和j在語義上相似
    • 不包含為0垛玻,表示樣本i和j在語義上不相似
  • 對于 $$\mathcal{J}_1$$ ,

$$-\sum_{i,j=1}{n}{S_{ij}\Delta_{ij}{l}-log(1+e{\Delta_{ij}l})} $$

$$= -\sum_{i,j=1}{n}{log(\frac{e{S_{ij}\Delta_{ij}{l}}}{1+e{\Delta_{ij}^l}})} $$

$$= -\sum_{i,j=1}{n}{log(\frac{e{\Delta_{ij}{l}}}{1+e{\Delta_{ij}^l}})} if S_{ij}=1$$

$$= -\sum_{i,j=1}{n}{log(\frac{1}{1+e{\Delta_{ij}^l}})} if S_{ij}=0$$

$$= \sum_{i,j=1}{n}-{S_{ij}log(\frac{e{\Delta_{ij}{l}}}{1+e{\Delta_{ij}l}})-(1-S_{ij})log(1-\frac{e{\Delta_{ij}{l}}}{1+e{\Delta_{ij}^l}})} $$

所以割捅,實際上這個loss和交叉熵loss是等效的

即$$S_{ij}=1$$時,

$$min -\sum_{i,j=1}{n}{log(\frac{e{\Delta_{ij}{l}}}{1+e{\Delta_{ij}l}})}=max\sum_{i,j=1}{n}{log(\frac{1}{1+e{-\Delta_{ij}l}})}=max \Delta_{ij}^l $$

最大化兩個向量的余弦相似度

$$S_{ij}=0$$ 時帚桩,

$$min -\sum_{i,j=1}{n}{log(\frac{1}{1+e{\Delta_{ij}l}})}=max\sum_{i,j=1}{n}{log(\frac{1}{1+e{\Delta_{ij}l}})}=min\Delta_{ij}^l $$

最小化兩個向量的余弦相似度

  • 對于$$ \mathcal{J}_2$$ 同理亿驾,從而約束了相似的label具有相似的hash

  • 對于 $$\mathcal{J}_3 $$, 使 $$H^l$$ 和 $$B^l$$ 盡可能接近,從而使得Hash向量中的元素盡量接近-1,1账嚎,減少了 H -> B 時的損失

  • 對于 $$\mathcal{J}_4$$ , 使得還原的標簽與原來的標簽盡可能相同

這個部分跟自編碼器很像莫瞬,是自監(jiān)督的過程,由label生成特征郭蕉,再由特征還原回label

Feature Learning(I/T->F->L+H->B)

  • 輸入:圖像/文本疼邀,
  • 經(jīng)過神經(jīng)網(wǎng)絡(luò)提取特征(圖像和文本的網(wǎng)絡(luò)不同)
  • 輸出長度為N的向量,N=K+c召锈,K為哈希碼長度旁振,c為label的類別個數(shù)
  • 訓練目標:
    • 在特征中保留語義信息,因此希望預(yù)測label與真實label相近
    • hash盡量接近binary code
    • 讓特征提取得到的feature和hash與Semantic Generation得到的特征和hash盡量相同,
      • 因此監(jiān)督信號做feature learning的時候還對提取feature和生成feature的相似性做約束拐袜,
      • 對提取hash和生成hash的相似性做約束

其中吉嚣,圖像的特征提取網(wǎng)絡(luò)作者試用了CNN-F和VGG16(VGG16更優(yōu)),文本特征提取則是一個新的多尺度融合模型:

image
  • 輸入:文本蹬铺,轉(zhuǎn)為一個詞袋向量尝哆,由于詞袋向量非常稀疏,需要轉(zhuǎn)化為一個相對稠密的向量
  • 網(wǎng)絡(luò):T->Multi-scale Fusion->4096->512->N
  • 輸出長度為N的向量甜攀,N=K+c秋泄,K為哈希碼長度,c為label的類別個數(shù)
  • Multi-scale Fusion:
    • 5個average pooling layer(1x1,2x2,3x3,5x5,10x10)+1個1x1conv

訓練Loss與前面的Semantic Generation很像

image

但又與之前的模型不同赴邻,這里的監(jiān)督信號有標簽和標簽生成的特征印衔,而之前的監(jiān)督信號就是輸入本身。

其中

  • $$\Delta_{ij}l=\frac{1}{2}(F_i{l})\top(F_j{v,t}) $$姥敛,即樣本i的標簽label生成的特征和樣本j的輸入(圖/文)提取的特征的余弦相似度,目標是使提取的特征和生成的特征盡量相近
  • $$\Gamma_{ij}l=\frac{1}{2}(H_il)\top(H_j{v,t}) $$瞎暑,即樣本i的標簽label生成的hash和樣本j的輸入(圖/文)提取的hash的余弦相似度彤敛,目標是使提取的hash和生成的hash盡量相近

Adversarial learning

  • Motivation:不同模態(tài)提取的特征會有不同的分布,希望相同語義的對象在不同模態(tài)里的特征表達盡量接近
  • Solution:加入判別器D了赌,希望D能區(qū)分特征是來自Feature Learning還是Semantic Generation墨榄,D越強大,越能區(qū)分兩種特征勿她,要欺騙D袄秩,就迫使Feature Learning和Semantic Generation得到的特征盡量相近
image
  • 判別器D的網(wǎng)絡(luò)結(jié)構(gòu):F->4096->4096->1
  • 每個樣本(圖+文+label)產(chǎn)生3個特征 $$(????^??,??????,??_????)$$
  • 輸入:圖/文特征+生成特征 $$(????^??, ????^?? )$$ 或$$ (????^??,????^??)$$
  • 輸出: $$(????^??, ????^?? )$$ 或 $$(????^??, ????^?? )$$ ,即輸入向量是否來自生成特征
  • 監(jiān)督信號: $$????^??$$ 或 $$??????=0$$逢并,$$??_????=1$$
  • 判別器的損失函數(shù):
image

即最小化判別器的預(yù)測誤差

Training

  • 于是我們有了特征生成Loss:
    $$\mathcal{L}_{gen}=\mathcal{L}v+\mathcal{L}t+\mathcal{L}^l $$

圖像特征提取loss+文本特征提取loss+標簽生成loss

  • 以及對抗loss
    $$\mathcal{L}{adv}=\mathcal{L}^v{adv}+\mathcal{L}^t_{adv} $$

  • 我們的優(yōu)化目標是:
    $$(B,\theta{v,t,l})=argmin_{B,\theta{v,t,l}}\mathcal{L}{gen}(B,\theta^{v,t,l})-\mathcal{L}{adv}(\hat{\theta}_{adv}) $$

在最優(yōu)的判別器參數(shù) $$\hat{\theta}_{adv}$$ 下之剧,最小化特征的生成Loss

以及

$$\theta_{adv}=argmax_{\theta_{adv}} L_{gen}(\hat{B}, \hat{\theta}^{v,t,l})-L_{adv}(\theta_{adv}) $$

在最優(yōu)生成器參數(shù) $$\hat{B}, \hat{\theta}^{v,t,l} $$下,最小化判別器的識別誤差 $$L_{adv} $$

  • 具體實現(xiàn)上砍聊,分為四步迭代進行優(yōu)化:
    • Label自監(jiān)督生成特征
    • 圖像分類器feature learning
    • 文本分類器feature learning
    • 判別器訓練

于是SSAH的工作機制就梳理完畢了

方法評估

生成的Hash效果是否足夠好背稼,通常由Hamming Ranking和Hash Lookup來評估,在論文中玻蝌,作者還對模型本身做了Training efficiency蟹肘,Sensitivity analysis,Ablation study的實驗評估俯树。

  • Hamming Ranking
    • 按照哈希碼海明距離進行Ranking帘腹,計算mAP


      image

可以看到使用VGG作為圖像基礎(chǔ)網(wǎng)絡(luò)時,SSAH準確率領(lǐng)先其他方法很多许饿。

  • Hash Lookup
    • 海明距離小于某個值認為是正樣本阳欲,這個值稱為Hamming Radius,改變Radius可以改變Precision-Recall的值,于是可以得到P-R曲線胸完,P-R曲線與坐標軸圍成的面積越大书释,說明效果越好


      image

SSAH的PR曲線基本都是在其他模型的曲線之上

  • 對Ranking的結(jié)果計算TopN的命中率(不過這個文中好像沒講)

  • Training efficiency

    • 達到相同的效果所需訓練時間


      image

相對于另一種深度學習方法DCMH,SSAH只要比較短的時間就能得到比較好的效果

  • Sensitivity analysis
    • 超參數(shù)改變時的結(jié)果變化


      image

可以看到赊窥,超參數(shù)變化時爆惧,準確率依然能維持在比較高的水平

  • Ablation study
    • 去除不同組件對效果的影響


      image

其中,
SSAH-1: remove LabNet
SSAH-2: TxtNet改成三層全連接
SSAH-3: 去掉對抗網(wǎng)絡(luò)
可以看到在I2T任務(wù)中锨能,標簽生成網(wǎng)絡(luò)是很重要的扯再,在T2I任務(wù)中對抗網(wǎng)絡(luò)的效果更明顯。

Summary

SSAH中最妙的兩點是址遇,用Label生成特征和哈希來監(jiān)督feature learning熄阻,加入對抗學習來拉近不同模態(tài)特征的相似性,模型的思路足夠清晰倔约,容易復現(xiàn)秃殉,有很多值得學習的東西。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浸剩,一起剝皮案震驚了整個濱河市钾军,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绢要,老刑警劉巖瞎嬉,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尉咕,死亡現(xiàn)場離奇詭異徒仓,居然都是意外死亡球恤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門剿配,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搅幅,“玉大人,你說我怎么就攤上這事惨篱≌悼穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵砸讳,是天一觀的道長琢融。 經(jīng)常有香客問我,道長簿寂,這世上最難降的妖魔是什么漾抬? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮常遂,結(jié)果婚禮上纳令,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好平绩,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布圈匆。 她就那樣靜靜地躺著,像睡著了一般捏雌。 火紅的嫁衣襯著肌膚如雪跃赚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天性湿,我揣著相機與錄音纬傲,去河邊找鬼。 笑死肤频,一個胖子當著我的面吹牛叹括,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宵荒,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼汁雷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了报咳?” 一聲冷哼從身側(cè)響起摔竿,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎少孝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熬苍,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡稍走,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了柴底。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婿脸。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柄驻,靈堂內(nèi)的尸體忽然破棺而出狐树,到底是詐尸還是另有隱情,我是刑警寧澤鸿脓,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布抑钟,位于F島的核電站,受9級特大地震影響野哭,放射性物質(zhì)發(fā)生泄漏在塔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一拨黔、第九天 我趴在偏房一處隱蔽的房頂上張望蛔溃。 院中可真熱鬧,春花似錦、人聲如沸贺待。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽麸塞。三九已至秃臣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喘垂,已是汗流浹背甜刻。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留正勒,地道東北人得院。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像章贞,于是被迫代替她去往敵國和親祥绞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容