Xception網絡是由inception結構加上depthwise separable convlution,再加上殘差網絡結構改進而來/
常規卷積是直接通過一個卷積核把空間信息和通道信息直接提取出來,結合了spatial dimensions和channels dimensions;xception這種是分開做的。
它最初的想法是從Incetpion來的,總體思想是把corss-channel correlations和spatial correlations充分解耦合;
將Inception modul拆分成一系列操作,獨立處理spatial-correlations和cross-channel correlations,網絡處理起來更加簡單有效
步驟是:
- 首先通過‘1x1’卷積,處理跨通道相關性,拆分成3或者4組獨立的空間
- 然后,通過‘3x3’或者‘5x5’卷積核映射到更小的空間上去
inception結構到xception的演變:
從1到2是一個簡化過程,從2到3是把1*1的卷積核拼接起來,使得經過1*1的卷積之后可以將輸入數據的channel維度上進行拆解; 最后一種是極端情況,3x3卷積在1x1卷積后的每一個通道上運行。
這種思想與depthwise separable convolution基本一樣,只是再空間解耦合與通道解耦合的順序不同,論文作者談到這種模塊再整體網絡結構中都是相連的,順序並沒有太大影響。
Xception的網絡結構:
核心部分是下圖中的depthwise separable conv結構,很好的減少了參數量。右圖是標准卷積過程。
逐通道卷積depthwise conv,再通道融合卷積pointwise
通道之間相互獨立,故卷積核參數量為3*3*Ci (記憶技巧,輸出通道數即為卷積核個數,卷積核個數乘以每個卷積核的參數即總參數) , 遠少於標准卷積的 3*3*Ci*C0, 計算量為3*3*Ci*H*W。
逐通道卷積之后,再用1*1的卷積核進行通道間的特征融合
此時輸入的特征圖大小為H*W*Ci ,輸出為H*W*C0
故后半部分卷積核參數量為1*1*C0*Ci, 計算量為1*1*C0*H*W*Ci, 可以記作從左到右pipeline Ci*1*1*H*W*C0
故深度可分離卷積的計算量為:3*3*Ci*H*W + 1*1*C0*H*W*Ci
是標准卷積的1/9,計算量大大減小。