ECCV 2018 | IBN-Net:打開域適應的新方式
51 人贊了文章
極市平台是專業的視覺演算法開發和分發平台,加入極市專業CV交流群,與6000+來自騰訊,華為,百度,北大,清華,中科院等名企名校視覺開發者互動交流!更有機會與李開復老師等大牛群內互動!
同時提供每月大咖直播分享、真實項目需求對接、乾貨資訊匯總,行業技術交流。點擊鏈接立刻申請入群~
作者:Panzer
首發於極市博客
原標題:ECCV 2018 | IBN-Net:打開Domain Generalization的新方式
本文由香港中文大學發表於ECCV2018,論文探索了IN和BN的優劣,據此提出的IBN-Net在語義分割的域適應任務上取得了十分顯著的性能提升。
論文地址:https://arxiv.org/pdf/1807.09441
代碼地址:https://github.com/XingangPan/IBN-Net
背景介紹
近年來,儘管CNN模型在諸如圖像分類、目標檢測和語義分割等任務上取得了驚艷的性能,但一個廣泛存在的問題是:訓練好的CNN模型只適用於特定的task甚至只適用於某一個domain。具體而言,該問題主要有兩個表現:1、如果不進行finetune,則將在其他task或者domain上表現非常差;2、經過finetune後,在新的task或者domain上表現優異,但在原來的的task或者domain上性能卻會出現顯著的下降。這背後的原因是什麼?又該以什麼方式加以解決,是一個非常值得探索的問題。
針對不同domain之間的shift問題,近年來有學者通過Domain Adaptation (DA)的方式加以解決,其核心思想是:如何使得源域(Source Domain)上訓練好的模型能夠很好地遷移到沒有標籤數據的目標域上(Target Domain)上,DA儘管可以使得模型能夠很好地適應目標域,但依然無法適應到其他目標域以外的Domain上,因此Domain Generalization(DG)應運而生,其核心思想是如何學習到不同Domain之間的共性特徵,使得模型在不同Domain上都具有良好的適應性。然而現實場景中的Domain是難以窮盡的,以上兩種方式依然需要不同Domain的數據參與到訓練中,這種數據收集的代價顯然是巨大的。有沒有一種方式能夠使得一個Domain上訓練好的模型,在不需要任何新的Domain數據參與訓練的情況下,也能具有很好的泛化能力?本文從特徵Normalization的角度做了一次有益的探索。
基本問題
跑過實驗的同學深知:在一個訓練集上訓練好的模型,如果測試數據和訓練集風格不一樣,模型的性能就會大打折扣,這時finetune就派上用場了,用新場景的數據對模型進行微調就是一種通用的做法。如下圖所示,(a)展示的是兩個不同的domain:真實數據和合成數據,顯然二者的風格是各異的;(b)展示的是對同一張圖片調整下色調和亮度,這是一種簡單的風格變換;(c)展示的是通過風格轉換網路對同一張圖片調整為指定的風格,這是一種複雜的風格變換。顯然解決以上差異的最佳方式在於讓網路學習到關於目標的不變性特徵,提高其泛化能力,而不是針對特定的風格重新訓練網路。(d)展示了Instance Normalization(IN)的作用,只要將IN嵌入到一個編解碼網路中,就可以將不同風格的圖片中的風格信息過濾掉,而只保留內容信息,充分證明了IN在保留外觀不變性方面的有效性。
從這一觀察出發,一個自然的想法是:只要在網路中利用好IN,就能提高網路學習外觀不變性的能力?為此作者進一步探索,將IN放置於何處才能更好地發揮其優勢?作者通過下圖的實驗直觀展示了特徵在網路不同深度中的分布,實驗中採用KL散度衡量特徵之間的差異性(Y軸),X軸代表ResNet50中不同block的ID,從左到右網路深度不斷加深,藍色代表不同數據集中風格各異的圖片,黃色代表同一個數據集中不同類別的圖片。
可以發現:隨著網路深度的增加,不同數據集圖片的特徵差異越來越小,而不同類別的圖片的特徵差異越來越大,這一差異表明低層的特徵表示更多反映的是外觀信息,而高層的特徵表示更多反映的是語義信息。因此為了過濾掉這些反映外觀變化的信息並同時保留語義信息,理應將IN放置於低層中。相比於IN,Batch Normalization(BN)把一個batch的數據進行歸一化,恰恰是增強了語義特徵之間的差異性。
解決之路
通過上圖的分析,為了充分發揮IN和BN的各自優勢,作者提出了IBN-Net的兩條基本構建原則:1、為了防止網路在高層的語義判別性被破壞,IN只加在網路低層中;2、為了保留低層中的語義信息,網路低層中也保留BN。根據這兩條原則,作者提出了如下兩個IBN block:
為何如此設計,作者給出了三點解釋:(1)在ResNet的原論文中已經證明,identity path不加任何東西更有利於優化ResNet,所以IN不應該加在identity path中;(2)IN置於第一個normalization層,是為了保證與identity path的結果的一致性;(3)在第一個normalization層,IN和BN各佔一半的通道數,一方面保證了不增加網路參數和計算量,另一方面也是為了在IN過濾掉反映外觀變化的信息的同時用BN保留語義信息。此外,作者還展示了在實驗中用到的其它幾個IBN block,其核心思想依然符合上述兩個設計原則,在此不再贅述。
實驗分析
1、實驗設定
通過將上文提到的IBN-block添加到不同的基礎網路中驗證IBN-block的普適性。實驗分別在圖像分類和語義分割兩個任務上進行,首先研究在一個數據集上的性能提升,其次驗證在跨數據集時網路的泛化能力。
2、ImageNet圖像分類
表2展示了在不同的基礎網路中添加IBN-block所帶來的性能提升,可以發現:在同樣的參數設定下(這裡選用的是圖3(b)中的IBN-block),IBN可以使得基礎網路的錯誤率降低0.5-1.5個百分點左右,說明IBN增強了模型的capacity。表3展示了跨數據集之間的性能提升,其中Monet代表對原始ImageNet數據進行了風格轉換,不同的IBN-block均可以使得基礎網路的錯誤率降低30個百分點左右,充分說明IBN可以提升模型的泛化能力。
3、跨域語義分割
作者在Cityscapes(真實數據)和GTA5(虛擬數據)上進行了Domain Generation的實驗,從表6可以發現,不論是從Cityscapes到GTA5還是從GTA5到Cityscapes,只要有IBN加持,性能均有5-6個百分點左右的提升,而這種提升是不需要測試集中的圖片進行重新訓練的,驗證了即使是在語義分割這樣一個複雜的任務上,IBN也可以有非常出色的性能表現。
總結展望
本文貢獻:
(1)結合IN和BN的優勢,提出了IBN-block,可以無縫嵌入到各種已有的網路架構中,提升了基礎網路的容量和泛化能力。
(2)在不增加網路參數和計算量的情況下,在圖像分類和語義分割兩個任務上,IBN均展現了非常優異的性能提升。
個人見解:
(1)不管是IN還是BN,本質上都是一種特徵歸一化的方式,二者唯一的區別在於對特徵均值和方差不同的統計方式,因此normalization的核心就是這裡的均值和方差。對於BN的均值和方差的研究,已有相關工作[1][2]發表,其研究表明:BN的均值和方差反映了不同數據集或者不同domain的獨特信息,而本文綜合考慮了IN和BN,在normalization層面上提升網路的泛化能力又邁出了堅實一步。
(2)Domain Generalization還有很長的路要走,當前的CNN模型在cross domain上的表現依然差強人意。儘管本文從normalization的角度部分解決了該問題,但從表6反映的結果來看,即使採用了本文的IBN-block,cross domain的結果依然遠遠落後於在同一個domain上訓練和測試的結果,相比於IBN帶來的微弱提升,這種差距是顯著的。因此除了normalization之外,還有更為核心的問題有待挖掘。期待你的精彩發現。
參考文獻
[1] Revisiting Batch Normalization For Practical Domain Adaptation. ICLR workshop(2017)
[2] AutoDIAL: Automatic DomaIn Alignment Layers. ICCV (2017)
本文為極市原創文章,轉載請註明出處,同時歡迎大家投稿~
推薦閱讀:
TAG:計算機視覺 | 深度學習DeepLearning |