[論文閱讀]BIER - Boosting Independent Embeddings Robustly

[論文閱讀]BIER - Boosting Independent Embeddings Robustly

論文說明

作者將adboost的思想用在了CNN學習上,通過將深度網路的最後一個嵌入層分成多個嵌入集成。具體的是通過在線梯度提升的方法訓練這個集成。前一個學習器對樣本識別效果會改變樣本的權值用於下一個學習器的學習。

論文框架

作者不採用Siamese網路,而只使用簡單的GoogleNet,在最後的嵌入層分成多個不重疊的組,這樣可以充分的發揮大的嵌入sizes的優勢(因為有paper提出,簡單的使用大的sizes會因為過擬合問題導致正確率下降)。每個組都是在一個同樣的特徵表達上單獨的度量學習過程。集成的正確率依賴於每個學習器的正確率。因為簡單的優化一個全局loss,會導致所有的學習器有著同樣的特徵表達,這樣每個組的學習器相關性就會非常的高。所以在線梯度學習過程中每個學習器會根據損失函數的梯度重新給訓練樣本賦予權重,這樣接下來的學習器會聚焦權重大的樣本訓練。

Boosting a Metric Network

本文的方法是基於度量的CNN,不同於學習一個距離度量,在本文中通過定義兩個嵌入的點積學習一個餘弦相似性得分 s(cdot,cdot) :

s(f(x^{1}),f(x^2))=dfrac{f(x^1)f(x^2)}{||f(x^1)||cdot||f(x^2)||}

這樣,相似性的得分就會在-1與1之間。

在前面階段使用GoogLeNet,在最後的嵌入層再使用二元組或者三元組的方式。具體的通過採樣一個mini-batch的圖片,直接通過網路前向傳播,在網路最後的損失層再採樣樣本對和三元組。之後損失通過網路反向傳播。具體的採樣方法是先從數據集中採樣一定數量的類,再對每個類採樣一定數量的圖片。保證每個類大概有5到10到圖片,batch size大小設置為128.

文中考慮了三種不同的損失函數,如下圖所示:

其中 s=s(f(x^{1}),f(x^2)) 是圖片 x^1x^2 的相似性得分。 yin{1,0} 表示圖片對的標籤。 s^- 表示負樣本對的相似性得分, s^+ 表示正樣本對的得分。m表示二元組和三元組的邊緣間隔。 alpha 和eta 是尺度和平移參數。同時設置binomial deviance的 C_y 來平衡正負樣本對:

C_y=egin{cases}1quad ifquad y=1\25quad if quad y=0end{cases}

Online Gradient Boosting CNNs for Metric Learning

將最後的嵌入層分成多個group,我們希望不同的group的學習器相關性要很低,不然相關性太高,之間並沒有差別,集成的方法效果也體現不出來。所以使用在線梯度提升的方法在固定的M個弱學習器上迭代最小化損失函數。根據損失函數的梯度會更新樣本權重,接下來的學習器就會在更新權重的樣本上再訓練。同樣,正確分類的樣本在下一個學習器中權值很低,而錯誤分類的樣本則會得到更高的權重。這樣的方式,接下來的學習器就會聚焦於不同於上一個學習器的樣本。這樣就能夠使得學習到的學習器差異很大。

對於一個損失 l(cdot ) ,我們找到一組弱學習器 {f_1(x),f_2(x),...f_M(x)} 以及他們對應的提升模型:

F(x^1,x^2)=sum_{m=1}^Malpha_ms(f_m(x^1),f_m(x^2))

其中F表示集成的輸出, alpha_m 表示第m個學習器的權重係數。而第m個學習器是在加權訓練集上訓練,其權值是通過前m-1個階段學習器預測的損失函數的負梯度值得到。且每個位置的學習器的權值是固定的。

具體的訓練過程如下:

這裡的舉例是二元組,首先在前向傳播階段,我們計算每個輸入樣本n以及每個組m的相似性得分 s_n^m .在反向傳播階段,我們反向傳播加權的損失。而權值是通過前m-1個學習器的負梯度值得到。

作者提到,在線梯度提升演算法會產生弱學習器 f_m(cdot) 的凸結合,接下來的學習器不得不聚焦於更複雜的訓練樣本,所以應該有一個更大的embedding size。文章利用這個先驗,設置第m個學習器的group 大小與它的權值成比例,而權值為:

alpha_m=eta_mcdot prod^M_{n=m+1}(1-eta_n)

除了成比例的約束外,具體的size都是根據實驗得到。

在測試階段,我們簡單的計算所有弱學習器 f_1(cdot),f_2(cdot),...f_M(cdot) ,使用L2正則化,並用各自的boosting權值 alpha_m 對它們加權。最終我們連接所有的向量到一個特徵向量,這也就是輸入圖片x的嵌入 f(x) .

Weight Initialization

因為學習器低的相關度有助於性能的提升,所以作者想在開始就初始化網路的最後一層的權值向量W,使得不同組的訓練組的激活值不同,達到低關聯的目的。

令M表示學習器的數量, G_i 表示group i, 1leq i leq M 的神經元索引。 X={x^1,x^2,...x^N} 表示訓練數據集,優化公式如下:

arg min_Wsum^N_{n=1}sum^M_{i=1,j=i+1}sum_{kin G_i,lin G_j}(a_k^n cdot a_l^n)^2+lambdasum^d_{i=1}(w_i^Tw_i-1)^2\ s.t.quad a^n=(x^n)^TW

在這個優化的問題上,作者不採用端到端的方式,而是固定特徵表達部分,僅僅訓練W,這樣優化能夠很快收斂。

實驗結果

baseline 是常規損失函數加上512的embedding size。上表說明加了初始化和boosting based方法的效果。

三種不同的損失函數對比如下:

group num如下:

embedding sizes:

Impact of Initialization:


推薦閱讀:

ICCSIE2018第二輪徵稿啟動——新增JCR一區SCI期刊版面
【趣度】史上最奇葩論文,你知道多少?
職稱論文發表常見問題
論文中的縮略詞可不能出現這些錯誤

TAG:圖片檢索 | 學術論文 |