1. 程式人生 > >輕量級深度學習網路(五):詳解輕量級網路Xception

輕量級深度學習網路(五):詳解輕量級網路Xception

 一、簡介

Xception並不是真正意義上的輕量化模型,只是其借鑑depth-wise convolution,而depth-wise convolution又是上述幾個輕量化模型的關鍵點,所以在此一併介紹,其思想非常值得借鑑。

Xception是Google提出的,arXiv 的V1 於2016年10月公開。論文標題:
《Xception: Deep Learning with Depthwise Separable Convolutions 》

命名
Xception是基於Inception-V3的,而X表示Extreme,為什麼是Extreme呢?因為Xception做了一個加強的假設,這個假設就是:
we make the following hypothesis: that the mapping of cross-channels correlations and spatial correlations in the feature maps of convolutional neural networks can be entirely decoupled

二、創新點

借鑑(非採用)depth-wise convolution 改進Inception V3

既然是改進了Inception v3,那就得提一提關於inception的一下假設(思想)了。
“the fundamental hypothesis behind Inception is that cross-channel correlations and spatial correlations are sufficiently decoupled that it is preferable not to map them jointly”
簡單理解就是說,卷積的時候要將通道的卷積與空間的卷積進行分離,這樣會比較好。(沒有理論證明,只有實驗證明,就當它是定理,接受就好了,現在大多數神經網路的論文都這樣。

既然是在Inception V3上進行改進的,那麼Xception是如何一步一步的從Inception V3演變而來。

下圖1 是Inception module,圖2是作者簡化了的 inception module(就是隻保留1*1的那條“路”,如果帶著avg pool,後面怎麼進一步假設嘛~~~)

這裡寫圖片描述

這裡寫圖片描述

假設出一個簡化版inception module之後,再進一步假設,把第一部分的3個1*1卷積核統一起來,變成一個1*1的,後面的3個3*3的分別“負責”一部分通道,如圖3所示; 最後提出“extreme” version of an Inception ,module Xception登場,, 先用1*1卷積核對各通道之間(cross-channel)進行卷積,如圖4所示,
 

這裡寫圖片描述

這裡寫圖片描述

作者說了,這種卷積方式和depth-wise convolution 幾乎一樣。Depth-wise convolution 較早用於網路設計是來自:Rigid-Motion Scatteringfor Image Classification,但是具體是哪一年提出,不得而知;至少2012年就有相關研究,再比如說AlexNet,由於記憶體原因,AlexNet分成兩組卷積 ;想深入瞭解Depth-wise convolution的可以查閱本論文2.Prior work,裡面有詳細介紹。

Xception是借鑑Rigid-Motion Scatteringfor Image Classification 的Depth-wise convolution,是因為Xception與原版的Depth-wise convolution有兩個不同之處

第一個:原版Depth-wise convolution,先逐通道卷積,再1*1卷積; 而Xception是反過來,先1*1卷積,再逐通道卷積;
第二個:原版Depth-wise convolution的兩個卷積之間是不帶啟用函式的,而Xception在經過1*1卷積之後會帶上一個Relu的非線性啟用函式;

這裡寫圖片描述

Xception 結構如上圖所示,共計36層分為Entry flow; Middle flow; Exit flow;
Entry flow 包含 8個conv;Middle flow 包含 3*8 =24個conv;Exit flow包含4個conv,所以Xception共計36層

文中Xception實驗部分是非常詳細的,實現細節可參見論文。

這裡寫圖片描述

三、Xception小結

Xception是基於Inception-V3,並結合了depth-wise convolution,這樣做的好處是提高網路效率,以及在同等引數量的情況下,在大規模資料集上,效果要優於Inception-V3。這也提供了另外一種“輕量化”的思路:在硬體資源給定的情況下,儘可能的增加網路效率和效能,也可以理解為充分利用硬體資源。