【轉(zhuǎn)載】分組卷積(Group convolution)

https://blog.csdn.net/u012426298/article/details/80853553


Group convolution 分組卷積,最早在AlexNet中出現(xiàn),由于當(dāng)時(shí)的硬件資源有限,訓(xùn)練AlexNet時(shí)卷積操作不能全部放在同一個(gè)GPU處理,因此作者把feature maps分給多個(gè)GPU分別進(jìn)行處理,最后把多個(gè)GPU的結(jié)果進(jìn)行融合。

2.1 什么是分組卷積

在說明分組卷積之前我們用一張圖來體會(huì)一下一般的卷積操作。?

從上圖可以看出,一般的卷積會(huì)對(duì)輸入數(shù)據(jù)的整體一起做卷積操作,即輸入數(shù)據(jù):H1×W1×C1;而卷積核大小為h1×w1,一共有C2個(gè),然后卷積得到的輸出數(shù)據(jù)就是H2×W2×C2。這里我們假設(shè)輸出和輸出的分辨率是不變的。主要看這個(gè)過程是一氣呵成的,這對(duì)于存儲(chǔ)器的容量提出了更高的要求。?

但是分組卷積明顯就沒有那么多的參數(shù)。先用圖片直觀地感受一下分組卷積的過程。對(duì)于上面所說的同樣的一個(gè)問題,分組卷積就如下圖所示。?

可以看到,圖中將輸入數(shù)據(jù)分成了2組(組數(shù)為g),需要注意的是,這種分組只是在深度上進(jìn)行劃分,即某幾個(gè)通道編為一組,這個(gè)具體的數(shù)量由(C1/g)決定。因?yàn)檩敵鰯?shù)據(jù)的改變,相應(yīng)的,卷積核也需要做出同樣的改變。即每組中卷積核的深度也就變成了(C1/g),而卷積核的大小是不需要改變的,此時(shí)每組的卷積核的個(gè)數(shù)就變成了(C2/g)個(gè),而不是原來的C2了。然后用每組的卷積核同它們對(duì)應(yīng)組內(nèi)的輸入數(shù)據(jù)卷積,得到了輸出數(shù)據(jù)以后,再用concatenate的方式組合起來,最終的輸出數(shù)據(jù)的通道仍舊是C2。也就是說,分組數(shù)g決定以后,那么我們將并行的運(yùn)算g個(gè)相同的卷積過程,每個(gè)過程里(每組),輸入數(shù)據(jù)為H1×W1×C1/g,卷積核大小為h1×w1×C1/g,一共有C2/g個(gè),輸出數(shù)據(jù)為H2×W2×C2/g。

2.2 分組卷積具體的例子

從一個(gè)具體的例子來看,Group conv本身就極大地減少了參數(shù)。比如當(dāng)輸入通道為256,輸出通道也為256,kernel size為3×3,不做Group conv參數(shù)為256×3×3×256。實(shí)施分組卷積時(shí),若group為8,每個(gè)group的input channel和output channel均為32,參數(shù)為8×32×3×3×32,是原來的八分之一。而Group conv最后每一組輸出的feature maps應(yīng)該是以concatenate的方式組合。?

Alex認(rèn)為group conv的方式能夠增加 filter之間的對(duì)角相關(guān)性,而且能夠減少訓(xùn)練參數(shù),不容易過擬合,這類似于正則的效果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容