1
本文作者: 汪思穎 | 2017-08-15 15:22 | 專題:CVPR 2017 |
雷鋒網(wǎng) AI 科技評論按:雖然CVPR 2017已經(jīng)落下帷幕,但對精彩論文的解讀還在繼續(xù)。下文是Momenta高級研究員王晉瑋對此次大會收錄的 Xception:Deep Learning with Depthwise Separable Convolutions 一文進行的解讀。
Inception模塊是一大類在ImageNet上取得頂尖結(jié)果的模型的基本模塊,例如GoogLeNet、Inception V2/V3和Inception-ResNet。有別于VGG等傳統(tǒng)的網(wǎng)絡(luò)通過堆疊簡單的3*3卷積實現(xiàn)特征提取,Inception模塊通過組合1*1,3*3,5*5和pooling等結(jié)構(gòu),用更少的參數(shù)和更少的計算開銷可以學(xué)習(xí)到更豐富的特征表示。
通常,在一組特征圖上進行卷積需要三維的卷積核,也即卷積核需要同時學(xué)習(xí)空間上的相關(guān)性和通道間的相關(guān)性。將這兩種相關(guān)性顯式地分離開來,是Inception模塊的思想之一:Inception模塊首先使用1*1的卷積核將特征圖的各個通道映射到一個新的空間,在這一過程中學(xué)習(xí)通道間的相關(guān)性;再通過常規(guī)的3*3或5*5的卷積核進行卷積,以同時學(xué)習(xí)空間上的相關(guān)性和通道間的相關(guān)性。
但此時,通道間的相關(guān)性和空間相關(guān)性仍舊沒有完全分離,也即3*3或5*5的卷積核仍然是多通道輸入的,那么是否可以假設(shè)它們可以被完全分離?顯然,當(dāng)所有3*3或5*5的卷積都作用在只有一個通道的特征圖上時,通道間的相關(guān)性和空間上的相關(guān)性即達到了完全分離的效果。
若將Inception模塊簡化,僅保留包含3*3的卷積的分支:
再將所有1*1的卷積進行拼接:
進一步增多3*3的卷積的分支的數(shù)量,使它與1*1的卷積的輸出通道數(shù)相等:
此時每個3*3的卷積即作用于僅包含一個通道的特征圖上,作者稱之為“極致的Inception(Extream Inception)”模塊,這就是Xception的基本模塊。事實上,調(diào)節(jié)每個3*3的卷積作用的特征圖的通道數(shù),即調(diào)節(jié)3*3的卷積的分支的數(shù)量與1*1的卷積的輸出通道數(shù)的比例,可以實現(xiàn)一系列處于傳統(tǒng)Inception模塊和“極致的Inception”模塊之間的狀態(tài)。
運用“極致的Inception”模塊,作者搭建了Xception網(wǎng)絡(luò),它由一系列SeparableConv(即“極致的Inception”)、類似ResNet中的殘差連接形式和一些其他常規(guī)的操作組成:
作者通過TensorFlow實現(xiàn)了Xception,并使用60塊NVIDIA K80分別在ImageNet和JFT(Google內(nèi)部的圖像分類數(shù)據(jù)集,包含17000類共3.5億幅圖像)上進行訓(xùn)練,并分別在ImageNet和FastEval14k上進行測試。在ImageNet上,Xception的準(zhǔn)確率相比Inception V3有一定的提升,并比ResNet-152或VGG-16有較多提升(單個模型,單個crop):
在JFT/FastEval14k上,Xception取得了比ImageNet上相比于Inception V3更多的準(zhǔn)確率提升:
同時,和Inception V3相比,Xception的參數(shù)量有所下降,而訓(xùn)練時的迭代速度也沒有明顯變慢:
另外,在ImageNet和JFT上的訓(xùn)練過程都顯示,Xception在最終準(zhǔn)確率更高的同時,收斂過程也比Inception V3更快:
在Xception中加入的類似ResNet的殘差連接機制也顯著加快了Xception的收斂過程并獲得了顯著更高的準(zhǔn)確率:
值得注意的是,在“極致的Inception”模塊中,用于學(xué)習(xí)通道間相關(guān)性的1*1的卷積和用于學(xué)習(xí)空間相關(guān)性的3*3的卷積之間,不加入任何非線性單元相比于加入ReLU或ELU激活函數(shù)將會帶來更快的收斂過程和更高的準(zhǔn)確率:
這篇文章中提及的Depthwise Convolution操作,即group數(shù)、輸入通道數(shù)和輸出通道數(shù)相等的卷積層,在最近一年內(nèi)被多篇CNN模型結(jié)構(gòu)設(shè)計方面的工作所使用,包括Factorized Convolutional Neural Networks,Xception,MobileNet和ShuffleNet等,以及ResNeXt一文中使用的大量分group卷積操作也與之有相似之處。它們有的在ImageNet上取得了非常好的結(jié)果,有的大幅降低了模型的理論計算量但損失較少的準(zhǔn)確度。本文作者從空間相關(guān)性和通道間相關(guān)性的角度解釋Depthwise Convolution,認(rèn)為這是將學(xué)習(xí)空間相關(guān)性和學(xué)習(xí)通道間相關(guān)性的任務(wù)完全分離的實現(xiàn)方式。
事實上,這一操作也可以從低秩角度理解,即將每個輸入通道上可學(xué)習(xí)的卷積參數(shù)的秩限制為1。不過潛在的問題是,雖然Depthwise Convolution可以帶來準(zhǔn)確率的提升或是理論計算量的大幅下降,但由于其計算過程較為零散,現(xiàn)有的卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)中它的效率都不夠高,例如本文中Xception的理論計算量是遠(yuǎn)小于Inception V3的,但其訓(xùn)練時的迭代速度反而更慢一些。期待后續(xù)會出現(xiàn)更加高效的Depthwise Convolution實現(xiàn)。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章