歡迎光臨
每天分享高質量文章

關於「Xception」和「DeepLab V3+」的那些事

作者丨崔權

學校丨早稻田大學碩士生

研究方向丨深度學習,計算機視覺

知乎專欄丨サイ桑的煉丹爐

前言

最近讀了 Xception [1] 和 DeepLab V3+ [2] 的論文,覺得有必要總結一下這個網路裡用到的思想,學習的過程不能只是一個學習網路結構這麼簡單的過程,網路設計背後的思想其實是最重要的但是也是最容易被忽略的一點。

Xception (Extreme Inception) 


摺積層的學習方式


在一層摺積中我們嘗試訓練的是一個 3-D 的 kernel,kernel 有兩個 spatial dimension,H 和 W,一個 channel dimension,也就是 C。


這樣一來,一個 kernel 就需要同時學習 spatial correlations 和 cross-channel correlations,我把這裡理解為,spatial correlations 學習的是某個特徵在空間中的分佈,cross-channel correlations 學習的是這些不同特徵的組合方式。 


Inception的理念 


首先透過一系列的 1×1 摺積來學習 cross-channel correlations,同時將輸入的維度降下來;再透過常規的 3×3 和 5×5 摺積來學習 spatial correlations。這樣一來,兩個摺積模組分工明確。Inception V3 中的 module 如下圖。

Inception的假設


corss-channels correlations 和 spatial correlations 是分開學習的,而不是在某一個操作中共同學習的。 


Inception到Xception的轉變


首先考慮一個簡版的 Inception module,拿掉所有的 pooling,並且只用一層 3×3 的摺積來提取 spatial correlations,如 Figure2。

▲ 簡版Inception

可以將這些 1×1 的摺積用一個較大的 1×1 摺積來替代(也就是在 channel 上進行 triple),再在這個較大卷積產生的 feature map 上分出三個不重疊的部分,進行 separable convolution,如 Figure3。 


這樣一來就自然而然地引出:為什麼不是分出多個不重疊的部分,而是分出三個部分來進行 separable convolution 呢?如果加強一下 Inception 的假設,假設 cross-channel correlations 和 spatial correlations 是完全無關的呢? 


沿著上面的思路,一種極端的情況就是,在每個 channel 上進行 separable convolution,假設 1×1 摺積輸出的 feature map 的 channel 有 128 個,那麼極端版本的 Inception 就是在每個 channel 上進行 3×3 的摺積,而不是學習一個 3x3x128 的 kernel,取而代之的是學習 128 個 3×3 的kernel。


將 spatial correlations 的學習細化到每一個 channel,完全假設 spatial correlations 的學習與 cross-channel correlations 的學習無關,如 Figure4 所示。


Xception Architecture


一種 Xception module 的線性堆疊,並且使用了 residual connection,資料依次流過 Entry flow,Middle flow 和 Exit flow。


順便寫一點讀 Xception 時的小發現,Xception 的實驗有一部分是關於應不應該在 1×1 摺積後面只用啟用層的討論,實驗結果是:如果在 1×1 摺積後不加以啟用直接進行 depthwise separable convolution,無論是在收斂速度還是效果上都優於在 1×1 摺積後加以 ReLU 之類啟用函式的做法。


這可能是因為,在對很淺的 feature(比如這裡的 1-channel feature)進行啟用會導致一定的資訊損失,而對很深的 feature,比如 Inception module 提取出來的特徵,進行啟用是有益於特徵的學習的,個人理解是這一部分特徵中有大量冗餘資訊。

DeepLab V3+


論文裡,作者直言不諱該框架參考了 spatial pyramid pooling (SPP) module 和 encoder-decoder 兩種形式的分割框架。前一種就是 PSPNet 那一款,後一種更像是 SegNet 的做法。 


ASPP 方法的優點是該種結構可以提取比較 dense 的特徵,因為參考了不同尺度的 feature,並且 atrous convolution 的使用加強了提取 dense 特徵的能力。但是在該種方法中由於 pooling 和有 stride 的 conv 的存在,使得分割標的的邊界資訊丟失嚴重。 


Encoder-Decoder 方法的 decoder 中就可以起到修複尖銳物體邊界的作用。 


關於Encoder中摺積的改進


DeepLab V3+ 效仿了 Xception 中使用的 depthwise separable convolution,在 DeepLab V3 的結構中使用了 atrous depthwise separable convolution,降低了計算量的同時保持了相同(或更好)的效果。 


Decoder的設計


Encoder 提取出的特徵首先被 x4 上取樣,稱之為 F1;

Encoder 中提取出來的與 F1 同尺度的特徵 F2′ 先進行 1×1 摺積,降低通道數得到 F2,再進行 F1 和 F2 的 concatenation,得到 F3;

為什麼要進行通道降維?因為在 encoder 中這些尺度的特徵通常通道數有 256 或者 512 個,而 encoder 最後提取出來的特徵通道數沒有這麼多,如果不進行降維就進行 concate 的話,無形之中加大了 F2′ 的權重,加大了網路的訓練難度。

對 F3 進行常規的 3×3 convolution 微調特徵,最後直接 x4 upsample 得到分割結果。


還有值得關註的一點是,論文提出了 Xception 的改良版,可以用來做分割


與 Xception 不同的幾點是: 


  • 層數變深了

  • 所有的最大池化都被替換成了 3×3 with stride 2 的 separable convolution

  • 在每個 3×3 depthwise separable convolution 的後面加了 BN 和 ReLU


作者也把 Xception 當作了 Encoder,沒有使用 DeepLab V3 中的 multi-grid 方法,得到的效果是所有模型中最好的。 


在 PASCAL VOC 2012 驗證集上的表現:


在 PASCAL VOC 2012 測試集上的表現: 

一點總結


縱觀語意分割的模型發展,從最初的 Encoder-Decoder 框架,到後來的 DeepLab、PSPNet 框架,到去年的 RefineNet 框架,每個框架都有其獨到之處,但是 DeepLab V3+ 綜合了 DeepLab、PSPNet 和 Encoder-Decoder,得到的效果是最好的,是思想的集大成者,或許在 RefineNet 類的框架和其他的框架之間也有可以探尋的結構。

相關連結


[1] Xception: Deep Learning with Depthwise Separable Convolutions

https://www.paperweekly.site/papers/1460

https://github.com/kwotsin/TensorFlow-Xception

[2] Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

https://www.paperweekly.site/papers/1676

https://github.com/tensorflow/models/tree/master/research/deeplab

點選以下標題檢視相關內容: 

#榜 單 公 布 #


2017年度最值得讀的AI論文 | NLP篇 · 評選結果公佈

2017年度最值得讀的AI論文 | CV篇 · 評選結果公佈

          

 我是彩蛋

 解鎖新功能:熱門職位推薦!

PaperWeekly小程式升級啦

今日arXiv√猜你喜歡√熱門職位

找全職找實習都不是問題

 

 解鎖方式 

1. 識別下方二維碼開啟小程式

2. 用PaperWeekly社群賬號進行登陸

3. 登陸後即可解鎖所有功能

 職位釋出 

請新增小助手微信(pwbot02)進行諮詢

 

長按識別二維碼,使用小程式

賬號註冊paperweek.ly

關於PaperWeekly


PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。

▽ 點選 | 閱讀原文 | 訪問作者知乎專欄

贊(0)

分享創造快樂