CNN中神奇的1x1卷積
點(diǎn)擊上方“小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
我們知道在CNN網(wǎng)絡(luò)中,會(huì)有各種size的卷積層,比如常見(jiàn)的3x3,5x5等,卷積操作是卷積核在圖像上滑動(dòng)相乘求和的過(guò)程,起到對(duì)圖像進(jìn)行過(guò)濾特征提取的功能。但是我們也會(huì)遇見(jiàn)1x1的卷積層,比如在GoogleNet中的Inception模塊,如下圖:

我們看到上圖中有4個(gè)1x1的卷積,那么他們起著什么作用呢?為什么要這樣做呢?
設(shè)計(jì)思路:考慮到有些物體比較大,有些物體比較小,所以用不同size的卷積核進(jìn)行特征提取。其實(shí)最簡(jiǎn)單的可以看做是全連接,它的計(jì)算方式跟全連接是一樣的。
?
增加非線性
1x1的卷積核的卷積過(guò)程相當(dāng)于全鏈接層的計(jì)算過(guò)程,并且還加入了非線性激活函數(shù),從而可以增加網(wǎng)絡(luò)的非線性,使得網(wǎng)絡(luò)可以表達(dá)更加復(fù)雜的特征。
特征降維
?
增加非線性好理解,通過(guò)控制卷積核的數(shù)量來(lái)達(dá)到通道數(shù)的縮放也好理解,那么怎么減少計(jì)算量和減少參數(shù)呢?我們從一個(gè)實(shí)例來(lái)看:假如前一層輸入大小為28 x 28 x 192,輸出大小為28 x 28 x 32,如下:
減少計(jì)算量:
不引入1x1卷積的卷積操作如下:

上圖計(jì)算量為:
28 x 28 x 192 x 5 x 5 x 32 = 120,422,400次
引入1x1卷積的卷積操作:

引入1x1卷積后的計(jì)算量為:
28 x 28 x 192 x 1 x 1 x 16 + 28 x 28 x 16 x 5 x 5 x 32 = 12,443,648次
從上面計(jì)算可以看出,相同的輸入,相同的輸出,引入1x1卷積后的計(jì)算量大約
是不引入的1/10。
Inception的初始版本就是沒(méi)有加入1x1卷積的網(wǎng)絡(luò),如下圖:

假如previous layer的大小為28x28x192,那么上面網(wǎng)絡(luò)的權(quán)重個(gè)數(shù)為:
1 x 1 x 192 x 64 + 3 x 3 x 192 x 128 + 5 x 5 x 192 x 32 = 387072個(gè)
其輸出的特征圖大小為:
28 x 28 x 64 + 28 x 28 x 128 + 28 x 28 x 32 + 28 x 28 x 192 = 28 x 28 x 416
加入1x1卷積的Inception網(wǎng)絡(luò)如下圖,那么該網(wǎng)絡(luò)的權(quán)重參數(shù)是多少呢?

如果previous layer的大小為28x28x192,那么上面網(wǎng)絡(luò)的權(quán)重個(gè)數(shù)為:
1 x 1 x 192 x 64 + (1 x 1 x 192 x 96 + 3 x 3 x 96 x 128) + (1 x 1 x 192 x16 + 5 x 5 x 16 x 32) + 1 x 1 x 192 x 32 = 163328個(gè)
可見(jiàn)加上1x1卷積后,權(quán)重個(gè)數(shù)從38.7萬(wàn)個(gè)左右降到16.3萬(wàn)個(gè)左右,同時(shí)增加了網(wǎng)絡(luò)的非線性。
其輸出的特征圖大小為:
28 x 28 x 64 + 28 x 28 x 128 + 28 x 28 x 32 + 28 x 28 x 32 = 28 x 28 x 256
這樣,1x1卷積的增加在增加網(wǎng)絡(luò)非線性的同時(shí),減少了網(wǎng)絡(luò)的計(jì)算量和權(quán)重個(gè)數(shù)。你Get到了嗎?
小白團(tuán)隊(duì)出品:零基礎(chǔ)精通語(yǔ)義分割↓↓↓
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車(chē)道線檢測(cè)、車(chē)輛計(jì)數(shù)、添加眼線、車(chē)牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


