為 AI 從業者/研究生/研究員專門定制的全網唯一高端 AI 訓練營
1239
2022-05-29
來源 | 知乎
https://zhuanlan.zhihu.com/p/28749411
CNN從2012年的AlexNet發展至今,科學家們發明出各種各樣的CNN模型,一個比一個深,一個比一個準確,一個比一個輕量。下面會對近幾年一些具有變革性的工作進行簡單盤點,從這些充滿革新性的工作中探討日后的CNN變革方向。
一、卷積只能在同一組進行嗎?-- Group convolution
Alexnet
分組卷積的思想影響比較深遠,當前一些輕量級的SOTA(State Of The Art)網絡,都用到了分組卷積的操作,以節省計算量。但題主有個疑問是,如果分組卷積是分在不同GPU上的話,每個GPU的計算量就降低到 1/groups,但如果依然在同一個GPU上計算,最終整體的計算量是否不變?找了pytorch上有關組卷積操作的介紹,望讀者解答我的疑問。
關于這個問題,知乎用戶朋友 @蔡冠羽?提出了他的見解:
https://www.zhihu.com/people/cai-guan-yu-62/activities
我感覺group conv本身應該就大大減少了參數,比如當input channel為256,output channel也為256,kernel size為3*3,不做group conv參數為256*3*3*256,若group為8,每個group的input channel和output channel均為32,參數為8*32*3*3*32,是原來的八分之一。這是我的理解。
我的理解是分組卷積最后每一組輸出的feature maps應該是以concatenate的方式組合,而不是element-wise add,所以每組輸出的channel是 input channels / #groups,這樣參數量就大大減少了。
二、卷積核一定越大越好?-- 3×3卷積核
AlexNet中用到了一些非常大的卷積核,比如11×11、5×5卷積核,之前人們的觀念是,卷積核越大,receptive field(感受野)越大,看到的圖片信息越多,因此獲得的特征越好。雖說如此,但是大的卷積核會導致計算量的暴增,不利于模型深度的增加,計算性能也會降低。于是在VGG(最早使用)、Inception網絡中,利用2個3×3卷積核的組合比1個5×5卷積核的效果更佳,同時參數量(3×3×2+1 VS 5×5×1+1)被降低,因此后來3×3卷積核被廣泛應用在各種模型中。
三、每層卷積只能用一種尺寸的卷積核?-- Inception結構
傳統的層疊式網絡,基本上都是一個個卷積層的堆疊,每層只用一個尺寸的卷積核,例如VGG結構中使用了大量的3×3卷積層。事實上,同一層feature map可以分別使用多個不同尺寸的卷積核,以獲得不同尺度的特征,再把這些特征結合起來,得到的特征往往比使用單一卷積核的要好,谷歌的GoogleNet,或者說Inception系列的網絡,就使用了多個卷積核的結構:
最初版本的Inception結構
如上圖所示,一個輸入的feature map分別同時經過1×1、3×3、5×5的卷積核的處理,得出的特征再組合起來,獲得更佳的特征。但這個結構會存在一個嚴重的問題:參數量比單個卷積核要多很多,如此龐大的計算量會使得模型效率低下。這就引出了一個新的結構。
四、怎樣才能減少卷積層參數量?-- Bottleneck
發明GoogleNet的團隊發現,如果僅僅引入多個尺寸的卷積核,會帶來大量的額外的參數,受到Network In Network中1×1卷積核的啟發,為了解決這個問題,他們往Inception結構中加入了一些1×1的卷積核,如圖所示:
加入1×1卷積核的Inception結構
根據上圖,我們來做個對比計算,假設輸入feature map的維度為256維,要求輸出維度也是256維。有以下兩種操作:
五、越深的網絡就越難訓練嗎?-- Resnet殘差網絡
ResNet skip connection
六、卷積操作時必須同時考慮通道和區域嗎?-- DepthWise操作
七、分組卷積能否對通道進行隨機分組?-- ShuffleNet
八、通道間的特征都是平等的嗎?-- SEnet
九、能否讓固定大小的卷積核看到更大范圍的區域?-- Dilated convolution
十、卷積核形狀一定是矩形嗎?-- Deformable convolution 可變形卷積核
啟發與思考
卷積核方面:
大卷積核用多個小卷積核代替;
單一尺寸卷積核用多尺寸卷積核代替;
固定形狀卷積核趨于使用可變形卷積核;
使用1×1卷積核(bottleneck結構)。
卷積層通道方面:
標準卷積用depthwise卷積代替;
使用分組卷積;
分組卷積前使用channel shuffle;
通道加權計算。
使用skip connection,讓模型更深;
densely connection,使每一層都融合上其它層的特征輸出(DenseNet)
人工智能
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。