Embedding Label Structures:细粒度特征表示的标签结构嵌入
- 文章解決什么問題?現有方法很少關注到結構性的特征表示。為了獲得細粒度特征表示,一種方法是學習相似性度量,但是這種方法受到兩個限制:1)分類精度可能比不上在分類loss上微調的深度模型,收斂速度慢,2)沒有利用標簽的結構
- 針對這個問題,文章的貢獻:1)一個多任務深度學習框架,在不需要犧牲分類精確度的前提下,有效地學習細粒度特征表示。具體來說,我們在CNN中聯合優化分類loss(即softmax)和相似性loss(即:triplet),這既可以產生分類結果,也可以產生具有區分度的特征表示。2)此外,基于這個框架,我們提出了無縫嵌入標簽結構,例如層次結構(e.g.make,model和years)或者屬性(例如食物成分)我們在三個細粒度數據集上評估我們的方法,它們都包括層
次標簽或者共享屬性。實驗結果證實了我們的特征表示可以精確地區分細粒度類別,也可以有效發現在不同層次相關性的圖像。
圖1:細粒度汽車數據集中的例子,相似性可以在不同的level上定義,例如車型、模型甚至視點,通過中心的query表示。在圓圈中的圖像有相同的細粒度標簽,即型號和模型,最相近的兩個也共享相同的視點。?
? 圖上的這些車可能在外觀上很相似,但是具有不同的細粒度標簽。這樣的層次相似性會在細粒度特征表示中研究,因為它可以有很多用途。例如:對比信息或三元組(triplets)
? 為了獲得細粒度特征表示,一種方法是插入相似性約束,然而這種方法存在一些限制:1)盡管從triplet約束中學習到的特征對于發現相似樣例有效,它的分類精確度可能比不上在分類loss上微
調的深度模型,像我們實驗中論述的那樣。此外,使用這種約束的收斂速度常常很慢。2)更重要的是,以前的細粒度特征的方法不嵌入標簽結構,但是標簽結構對于定位在不同層次有相關性的圖像很關鍵
?聯合優化策略:可以生成更好的特征表示,用于細粒度圖像理解。同時,我們提出的框架還可以很容易地支持在框架中嵌入標簽結構,比如層次結構或者共享屬性。
方法部分
? 傳統的分類約束例如softmax常常在CNN細粒度圖像分類中使用,它可以高精度區分子類差異。假設我們有張訓練圖像,包含C個類別,每張圖像的標簽是。給定最后一個全全連接層的輸出,c是C個類別中的一個,softmax的loss可以被定義為所有訓練圖像的負對數似然:
? 其中編碼了圖像被分類為第個類別的后驗概率。簡而言之,公式(1)目的是將類中的數據“壓縮”到特征空間的一角。因此,類內差異不會被保留,而這種差異對于發現視覺上和語義上相似的實例是必不可少的。
? 為了解決這個局限,我們直接使用一個多任務學習策略對CNN中的相似性約束建模。具體來說,將三元組loss與分類目標作為相似性約束進行融合。三元組由三個圖像組成,表示為,其中ri是特定類別的參考圖像,pi是來自同一類別的圖像,ni是來自不同類別的圖像。給定輸入圖像ri(類似于pi和ni),此三元組驅動的網絡可以生成特征向量,其中超參數D是嵌入后的特征維度。理想情況下,對于每個參考ri,我們期望其與不同類別的任何ni之間的距離比同一類別內的pi大一定幅度m>0
?其中D(·,·)是triplet網絡的兩個l2正則化向量之間的平方歐氏距離。
在ft(`)特征空間中,通過最小化Et(r,p,n,m),可以將r和p分組在一起,同時排斥n。梯度可計算為:
?
?僅當D(r,n)-D(r,p)<m,否則為0。
? 與兩兩對比損失[10]不同的是,兩兩對比損失迫使同一類別的數據以固定的邊距保持接近,triplet損失允許一定程度的類內差異。盡管最小化識別任務的等式3在學習特征表示方面有優點,但它仍然有一些缺點。例如,給定一個具有N個圖像的數據集,所有可能的三元組的數量都是N的立方,與在C類中提供特定標簽的分類約束相比,每個三元組包含的信息(即,具有邊距的類似或不同約束)要少得多。這可能導致收斂緩慢。此外,如果沒有明確的分類約束,區分類的準確性可能不如使用softmax的傳統CNN,特別是在細粒度問題中,其中下級類的差異非常細微。
? 考慮到單獨使用三重損失(等式3)進行訓練的局限性,我們建議使用多任務學習策略聯合優化兩種類型的損失。圖2顯示了我們聯合學習的CNN架構。在訓練期間,R、P、N網絡共享相同的參數。之后?2歸一化后,將三個網絡(即ft(r)、ft(p)、ft(n))的輸出傳輸到三重態損失層,以計算相似性損失Et(r、p、n、m)。同時,網絡R的輸出fs(R)被轉發到softmax損耗層以計算分類誤差Es(R,l)。然后,我們通過加權組合將這兩種損失進行整合:
? 其中是控制兩種loss的權值。我們使用標準隨機梯度下降來優化公式(5)。最后的梯度計算是一個λ加權的分類約束?和相似性約束的,然后反向傳播到低層。這個框架通過公式5統一三個網絡,不僅學習有區分度的特征,也保存類內差異,而不犧牲分類精確度。此外,它解決了僅使用triplet loss時收斂緩慢的問題。考慮到采樣策略,也可以選擇Facenet的方法,或使用挖掘方法來探索訓練數據中的有挑戰性的例子。這兩種方法在我們的框架中都是有效的,因為聯合優化了促進了對好的解決方法的搜索,允許確定的采樣靈活度。
? 在測試階段,這個框架的輸入是一個圖像,通過softmax層生成分類結果,或者在l2正則化后的細粒度特征表示。有區分度的特征表示可以被用于多種任務,例如分類,檢索,這比單獨優化softmax更有效。?
?3.2 嵌入標簽結構
? 像之前討論的那樣,一個有效的特征表示應該能夠搜索不同層次的相關樣例(例如圖1),甚至不包含相同的細粒度類別。我們的框架是一個baseline,在不犧牲分類準確度的情況下,自然地嵌入標簽的結構。特別地,我們的目的是處理兩個類型的標簽結構,即層次標簽和共享屬性,這兩種在實踐中都有寬泛的應用。
3.2.1 生成層次標簽的三元組
? 在第一個例子中,細粒度標簽可以被自然分組為一個基于語義或者領域知識的樹形結構。層級可以包括多個層次。為了,我們用一個兩級結構解釋算法,接下來泛化到多層級。圖3說明了一個汽車數據集中兩層標簽的例子,葉結點上細粒度的汽車模型通過他們根結點上的車型被分組。
? 為了建模這個層次的粗和細類別標簽,我們提出泛化triplet的概念。特別地,引入了quadruplet來建模二級結構。每個四元組,包括四張圖像。與三元組類似,表示和參考圖像屬于相同細粒度類別的圖像。主要的區別是在四元組中,所有的負樣本被分類到兩個子類:最相似的一個與共享相同的粗類別,區別更大的一個是從不同的粗類別中采樣得到的。
? 給定一個四元組,這四張圖像的層次關系可以被定義為兩個不等式:
? 其中有兩個超參數m1和m2,滿足m1>m2>0,控制兩個層次的距離。值得注意的是如果公式6滿足,那么……自動成立。和三元組比較,四元組能夠在不同層次間建模更豐富的標簽結構,即粗標簽和細粒度標簽。總之,學習到的特征表示可以發現相關實例,例如:一個特定的模型和制造年份,或者從不同的車型中找到SUV。
? 考慮采樣策略,所有的訓練圖像被用于每個epoch的參考。對每個參考圖像,我們在精細和粗糙標簽上選擇和來自其他相關類別的?。為了將這個四元組約束插入到CNN訓練中,我們提出將公式(6)解構到兩個三元組,,稱為泛化三元組。和公式(3)相似,我們的方法尋找可以使采樣的四元組的聯合損失最小的最優參數:
? 更清晰地,這個泛化三元組可以自然地插入到我們的多任務學習框架(公式5)
? 迄今為止我們主要通過泛化三元組來表示四元組,討論了兩個層級的層次關系。實際上,我們的方法也適用于更泛化的多層級樣例。與四元組采樣策略相似,每個元組被標示為從不同相似性的層次選出的類別。因此,一個從x層級中的四元組包含x+2張圖像。這個元組被解構為x個三元組,通過將參考圖像和兩個相鄰的層次的圖像放在一起。這意味著多個三元組被采樣用于表示不同層次的相似度,即, 細粒度層次標簽的圖像比那些共享相同的粗層級標簽的圖像更相似。與兩級樣例相同,使用基于三元組的多任務學習框架可以進行優化。值得一提的是,傳統的三元組是泛化三元組的一個特殊形式,即只有一層的層次結構。
3.2.2 共享屬性的泛化三元組
? 第二個樣例,細粒度的對象可以共享共有的屬性。舉個例子,圖4說明了細粒度的食物可以共享相同的成分,?表示不同層級的相關性。直觀地,共享更多屬性的類別比共享比較少屬性的類別更相似。與第一個樣例中的樹形層次結構不同,我們不能直接用公式6來建模標簽的依賴,因為一些細粒度類別可以擁有多種屬性標簽。取而代之,我們用一種改進的三元關系來建模這種圖依賴關系。為了對我們的方法有更好的理解,我們考慮圖4種的前三種菜肴。盡管第二個和第三個菜肴和第一個相比屬于不同的類別,第二個菜肴和第一個共享更多的屬性(牛肉、胡蘿卜)。這種屬性重疊的差異啟發我們重新定義差額m,即D(r,p)和D(r,n) 之間的距離,稱為不同類別的屬性的Jaccard相似性:?
? ?其中是一個常數因子,是基礎差額,Ap和An分別是屬于正和負類別的屬性。因此,這些類別共享越多的屬性,這個三元組就擁有越小的margin。使用這樣的三元組loss的適應性margin,學習到的特征可以發現和查詢圖像包含共有的屬性的那些圖像。相似地,公式8可以自然地嵌入到我們基于三元loss的多任務學習框架種。實際上,原始三元組約束也是一個多屬性約束的特例,當每個細粒度標簽之和一個屬性相關。
實驗部分
? 在這一節中,我們在三個具有標簽結構的細粒度數據集上進行了全面的實驗來評估這個框架。我們旨在證實我們學習的特征表示可以被用于檢索不同相關度層次的圖像,同時比其他基于CNN的方法具有顯著更高的精確度。此外。我們也報告了它期望的在這些細粒度數據集上的分類精確度。
? 我們關注四種可以產生細粒度特征表示的方法的對比:1)通過三元組loss的深度特征學習,2)softmax之后基于三元組的微調,即不進行聯合優化,3)?我們的多任務學習框架,4)我們的學習框架,含標簽結構。
?在分類任務中,除了這四種方法之外,我們也報告了使用傳統softmax分類的CNN的準確率。所有的CNN基于GoogleNet,在這些細粒度數據集上微調進行公平比較。考慮到我們的超參數,我們一句經驗將特征維度設為200,margin為0.2,λs為0.8.
??4.1 兩層層次結構的斯坦福汽車
? 第一個實驗關注嵌入層次標簽的有效性,使用斯坦福汽車數據集。它包含196種汽車的16185張圖像(含有標注框)?,8144張圖像用于訓練,剩下的用于測試。類別,即細粒度類別標簽,被定義為make,model和年份,例如Audi S4 Sedan 2012。接著,我們將每個細粒度標簽分配給九個粗略的車型中的一個,例如SUV,Coupe和Sedan。(圖3),構成兩級層次結構。
? 圖5展示了使用從各種CNN中提取出的特征表示的檢索精確度,包含細粒度和粗略層次。在細粒度層次,我們的多任務學習方法的結果比其他的要好,即在top40檢索上高出至少13.5%的精確度。原因是聯合優化策略使用三元組的相似性約束,這可以加強訓練信息,幫助網絡達到更好的效果。不管是在我們的框架中用傳統的還是泛化的三元組(也即不使用或使用標簽結構),準確度的差異有0.5%,這是由于采樣策略導致的。在粗糙層次,我們的方法(不含標簽結構)也不能達到高精確度,使用泛化的三元組顯著超過了其他的方法,即高出至少12.4%,證實了我們的嵌入方法的有效性。為了給我們在粗級別檢索上期望的結果提出見解,我們從我們的多任務學習框架中使用傳統的和泛化的三元組提取特征,在降維后在圖6中可視化。隨機選取了六個粗粒度類別,和五個從每個粗類別中采樣出的細層次類別。泛化三元組的特征更好的分離,這也是由于標簽結構的嵌入。
?
?
?
?
?
?
?
?
?
?
? ?
?
?
總結
以上是生活随笔為你收集整理的Embedding Label Structures:细粒度特征表示的标签结构嵌入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS 2010 与 VS 2008的区别
- 下一篇: 十二 个经典 Linux 进程管理命令介