LiftPool:雙向池化操作,細節拉滿,再也不怕丟特徵了 | ICLR 2021

論文參考信號處理中提升方案提出雙向池化操作LiftPool,不僅下采樣時能保留儘可能多的細節,上採樣時也能恢復更多的細節。從實驗結果來看,LiftPool對圖像分類能的準確率和魯棒性都有不錯的提升,而對語義分割的準確性更能有可觀的提升。不過目前論文還在準備開源階段,期待開源後的復現,特別是在速度和顯存方面結果

來源:曉飛的算法工程筆記 公衆號

論文: LiftPool: Bidirectional ConvNet Pooling

Introduction


 空間池化是卷積網絡中很重要的操作,關鍵在於縮小分辨率的同時保留最重要的特徵值,方便後續的模型辨別。簡單的池化操作,如最大池化和平均池化,不僅池化時忽略了局部特性,還不支持逆向恢復丟失的信息。爲此,論文提出了雙向池化層LiftPool,包含保留細節特徵的下采樣操作LiftDownPool以及產生精細特徵圖的上採樣操作LiftUpPool。

 LiftPool的靈感來自於信號處理中的提升方案(Lifting Scheme),下采樣時將輸入分解成多個次頻帶(sub-band),上採樣時能夠完美地逆向恢復。如圖1所示,LiftDownPool產生四個次頻帶,其中LL次頻帶是去掉細節的輸入近似,LH、HL和HH則分別包含水平、垂直和對角方向的細節信息。用戶可以選擇一個或多個次頻帶作爲輸出,保留其它次頻帶用於恢復。LiftUpPool根據次頻帶恢復上採樣輸入,對比MaxUpPool的效果,LiftUpPool則能產生更精細的輸出。

Methods


 下采樣特徵圖時,池化操作核心在於減少下采樣造成的信息損失,而信號處理中的提升方案(Lift Scheme)恰好能滿足這一需求。提升方案利用信號的相關結構,在空間域構造其下采樣的近似信號以及多個包含細節信息的次頻帶(sub-band),在逆轉換時能完美重構輸入信號。借用提升方案,論文提出了雙向池化層LiftPool。

LiftDownPool

  • LiftDownPool-1D

 以一維信號\(x=[x_1, x_2, x_3, \cdots, x_n], x_n\in\mathbb{R}\)爲例,LiftDownPool將其分解成下采樣近似信號\(s\)和差分信號\(d\)

 其中\(F(\cdot)=f_{update}\circ f_{predict}\circ f_{split}(\cdot)\)包含3個函數,\(\circ\)表示函數組合。

 LiftDownPool-1D的整體過程如圖2所示,包含以下步驟:

  • Split操作\(f_{split}:x\to (x^e, x^o)\):將信號\(x\)分成偶數下標組\(x^e=[x_2, x_4, \cdots, x_{2k}]\)和奇數下標組\(x^o=[x_1, x_3, \cdots, x_{2k+1}]\),這兩組信號是密接相關的。
  • Predict操作\(f_{predict}:(x^e, x^o)\to d\):給定信號集\(x^e\)\(x^o\),設想的是\(x^e\)可通過預測器\(\mathcal{P}(\cdot)\)轉換得到\(x^o\)。這裏不要求預測器是完全準確的,定義兩者間的差分信號\(d\)爲:

    公式2只保留了少量的細節差異信息,功能等價於對\(x\)進行了高通濾波。
  • Update操作\(f_{update}:(x^e, d)\to s\):因爲\(x^e\)是從\(x\)簡單下采樣而來的,直接將\(x^e\)作爲\(x\)的近似會有嚴重的混疊現象(採樣導致信號減弱,具體可見原文附錄),而且\(x^e\)的均值與\(x\)的均值也不一樣。爲此,可通過對\(x^e\)加上\(\mathcal{U}(d)\)得到平滑版本\(s\)

    公式3保留了儘可能多的輸入信息,功能等價於對\(x\)進行低通濾波,因此可將低通過濾後的\(s\)作爲原信號的近似。

 實際上,經典的提升方案就是由低通濾波和高通濾波來完成的,通過預設的濾波器將圖片分解成四個次頻帶。但一般來說,以預設濾波器的形式定義\(\mathcal{P}(\cdot)\)\(\mathcal{U}(\cdot)\)是很難的。爲此,Zheng等人提出通過網絡的反向傳播來學習濾波器。借用此思路,論文通過1D卷積+非線性激活來實現LiftDownPool中的\(\mathcal{P}(\cdot)\)\(\mathcal{U}(\cdot)\)功能:

 爲了能夠更好地進行端到端地訓練,需要對最終的損失函數添加兩個約束。首先,\(s\)是從\(x^e\)變化得到的,基本上要跟\(x^e\)相似,添加正則項\(c_u\)最小化\(s\)\(x^o\)的L2-norm距離:

 另外,\(\mathcal{P}(\cdot)\)的設想是將\(x^e\)轉換爲\(x^o\),所以添加正則項\(c_p\)最小化細節差異\(d\)

 完整的損失函數爲:

\(\mathcal{L}_{task}\)爲特定任務的損失函數,如分類或語義分割損失。設置\(\lambda_u=0.01\)\(\lambda_p=0.1\),能夠給模型帶來不錯的正則化效果。

  • LiftDownPool-2D

 LiftDownPool-2D可分解成幾個LiftDownPool-1D操作。根據標準提升方案,先在水平方向執行LiftDownPool-1D獲得\(s\)(水平方向的低頻)以及\(d\)(水平方向的高頻)。隨後對這兩部分分別執行垂直方向的LiftDownPool-1D,\(s\)被進一步分解成LL(垂直和水平方向的低頻)和LH(垂直方向的低頻和水平方向的高頻),而\(d\)則被進一步分解成HL(垂直方向的高頻和水平方向的低頻)和HH(垂直和水平方向的高頻)。
 用戶可靈活選擇其中一個或多個次頻帶作爲結果,保留其它次頻帶用於恢復。一般來說,LiftDownPool-1D可以進一步泛化到n維信號。

 圖3爲VGG13的首個LiftDownPool層的幾個特徵輸出,LL特徵更平滑,細節較少,LH、HL和HH則分別捕捉了水平方向、垂直方向和對角方向的細節。

LiftUpPool

 LiftUpPool繼承了提升方案的可逆性。繼續以1D信號爲例,LiftUpPool可從\(s,d\)中恢復上採樣信號\(x\)

\(\mathcal{G}(\cdot)=f_{merge}\circ f_{predict}\circ f_{update}(\cdot)\)包含update、predict、merge函數,即\(s,d\to x^e,d\to x^e,x^o\to x\)

 通過上述公式獲得\(x^e\)\(x^o\),進而合成\(x\),得到包含豐富信息的上採樣特徵圖。
 上採樣在image-to-image轉換中經常使用,比如語義分割,超分辨率和圖片上色等任務。但目前大多數池化操作是不可逆的,比如MaxPool上採樣的輸出較爲稀疏且損失大部分的結構信息。而LiftUpPool能對LiftDownPool的輸出進行逆轉換,藉助次頻帶產出更好的輸出。

Compare with MaxPool

 以kernel size=2、stride=2的池化爲例,LiftPool和MaxPool的邏輯如圖6所示。

  • LiftDownPool vs. MaxPool

 Maxpool選擇局部最大值作爲輸出,會丟失75%的信息,這其中很可能包含了跟圖像識別相關的重要信息。
 LiftDownPool將特徵圖分解成次頻帶LL、LH、HL和HH,其中LL爲輸入的近似,其它爲不同方向的細節信息。LiftDownPool將所有次頻帶相加作爲輸出,包含了近似信息和細節信息,能夠更高效地用於圖像分類。

  • LiftUpPool vs. MaxUpPool

 MaxPool是不可逆的,通過記錄的的最大值下標進行MaxUpPool。MaxUpPool將輸出的特徵圖的特徵值對應回下標位置,其餘均爲零,所以恢復的特徵圖十分稀疏。
 LiftDownPool是可逆的,根據提升方案的屬性對LiftDownPool進行反向恢復,而且LiftUpPool能生成包含記錄的細節的高質量結果。

Experiment


 在CIFAR-100上對比次頻帶和正則項效果。

 在ImageNet上,搭配不同主幹網絡上進行對比。

 進行抗干擾數據集測試對比。

 不同數據集上的語義分割性能對比。

 語義分割上採樣結果對比。

Conclusion


 論文參考信號處理中提升方案提出雙向池化操作LiftPool,不僅下采樣時能保留儘可能多的細節,上採樣時也能恢復更多的細節。從實驗結果來看,LiftPool對圖像分類能的準確率和魯棒性都有不錯的提升,而對語義分割的準確性更能有可觀的提升。不過目前論文還在準備開源階段,期待開源後的復現,特別是在速度和顯存方面結果。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章