1. 程式人生 > >群卷積(Group Convolution)

群卷積(Group Convolution)

最近有看到group convolution,故做個記錄。

group convolution 可稱為群卷積或者是分組卷積,最早是在AlexNet中出現的。當時由於硬體資源有限,訓練AlexNet時卷積操作不能全部放在同一個GPU中處理,因此作者把feature maps分給多個GPU分別進行處理,最後把多個GPU的結果進行融合。

變形卷積核、可分離卷積?卷積神經網路中十大拍案叫絕的操作。

我們假設上一層的feature map總共有N個,即通道數channel=N,也就是說上一層有N個卷積核。再假設群卷積的群數目M。那麼該群卷積層的操作就是,先將channel分成M份。每一個group對應N/M個channel,與之獨立連線。然後哥哥group卷積完成後將輸出疊在一起(concatenate),作為這一層的輸出channel。

下面是一個正常的、沒有分組的卷積層結構。下面用第三維的視角展示了CNN的結構,一個filter就對應一個channel。隨著網路層數的加深,通道數急劇增加,而空間維度隨之減少,因此卷積層的卷積核越來越多,但隨著卷積池化操作,特徵圖越來月小,所以在深層網路中,channel的重要性越來越大。

這裡寫圖片描述

下圖則是一個群卷積的CNN結構。filter被分成了兩個group。每一個group都有原來一半的feature map。

這裡寫圖片描述