1*1卷積淺析


1*1shape的卷積在很多神經網絡中都有應用(如Google InceptionNet,Resnet等),比起我們常見的2*2,3*3,5*5的卷積,這樣的卷積核有什么作用呢?

首先,1*1的卷積可以增加網絡層的非線性,它的卷積過程其實相當於全連接層的計算過程,並且還加入了非線性的激活函數(relu等),從而使網絡結構變得更加的復雜。

其次,1*1的卷積加入可以通過控制卷積核的數量達到放縮通道數大小的目的,從而實現特征降維,以實現參數和計算量的減少。

下面舉一個引入1*1和不引入1*1卷積的例子:

1.不引入1*1卷積:

  input(28*28*192)→(conv(5*5*32,same))→output(28*28*32)

  計算參數量:(28*28*32)*(5*5*192)≈120M

2.引入1*1卷積:

  input(28*28*192)→(conv*(1*1*16))→hidden(28*28*16)→(conv(5*5*32,same))→output(28*28*32)

  計算參數量:(28*28*16)*192+(28*28*32)*(5*5*6)≈12.4M

  約減少了十倍計算量

又如Google InceptionNet:

最初始版本的inceptionNet結構如下:

 

 改進后的結構如下:

 

假設previous layer層的大小為28*28*192,非1*1卷積層核數按順序分別為(64,128,32),黃色1*1卷積層核數分別為(96,16,32)則有:

圖一:weight:1*1*192*64+3*3*192*128+5*5*192*32=387072

   featuremap:28*28*64+28*28*128+28*28*32+28*28*192=28*28*416

圖二:weight:1*1*192*64+(1*1*192*96+3*3*96*128)+(1*1*192*16+5*5*16*32)+1*1*192*32=163328

   featuremap:28*28*64+28*28*128+28*28*32+28*28*32=28*28*256

由此可證明,1*1的卷積核可以在增加網絡結構復雜性的同時實現特征降維。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM