CNN中常用的四種卷積詳解

歡迎關(guān)注微信公眾號“智能算法”泼疑。
卷積現(xiàn)在可能是深度學(xué)習(xí)中最重要的概念德绿。正是靠著卷積和卷積神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)才超越了幾乎其他所有的機(jī)器學(xué)習(xí)手段退渗。這期我們一起學(xué)習(xí)下深度學(xué)習(xí)中常見的卷積有哪些移稳?

1. 一般卷積

卷積在數(shù)學(xué)上用通俗的話來說就是輸入矩陣與卷積核(卷積核也是矩陣)進(jìn)行對應(yīng)元素相乘并求和,所以一次卷積的結(jié)果的輸出是一個(gè)數(shù)会油,最后對整個(gè)輸入輸入矩陣進(jìn)行遍歷个粱,最終得到一個(gè)結(jié)果矩陣,說白了就是一個(gè)卷積核在圖像上滑動(dòng)翻翩,并求取對應(yīng)元素相乘求和的過程都许,如下圖:


卷積核為3*3,步長為2和填充的2D卷積

首先嫂冻,一般情況下卷積層的作用都是用來自動(dòng)提取圖像的一些視覺特征胶征,代替?zhèn)鹘y(tǒng)的手動(dòng)方法提取特征不精確,不全面等缺點(diǎn)桨仿。常見的一般卷積操作都包括以下四個(gè)參數(shù):

  • 卷積核大小(Kernel Size):卷積核定義了卷積的大小范圍睛低,在網(wǎng)絡(luò)中代表感受野的大小,二維卷積核最常見的就是 3*3 的卷積核服傍,也可以根據(jù)網(wǎng)絡(luò)設(shè)計(jì)5*5或者7*7暇昂,甚至1*1等不同size的卷積核,來提取不同尺度的特征伴嗡。
    在卷積神經(jīng)網(wǎng)絡(luò)中急波,一般情況下,卷積核越大瘪校,感受野(receptive field)越大澄暮,看到的圖片信息越多名段,所獲得的全局特征越好。雖說如此泣懊,但是大的卷積核會(huì)導(dǎo)致計(jì)算量的暴增伸辟,不利于模型深度的增加,計(jì)算性能也會(huì)降低馍刮。如上圖中卷積核的size為3*3.

  • 步長(Stride):卷積核的步長度代表提取的精度, 步長定義了當(dāng)卷積核在圖像上面進(jìn)行卷積操作的時(shí)候信夫,每次卷積跨越的長度。在默認(rèn)情況下卡啰,步長通常為 1静稻,但我們也可以采用步長是 2 的下采樣過程,類似于 MaxPooling 操作匈辱。
    對于size為3的卷積核振湾,如果step為1,那么相鄰步感受野之間就會(huì)有重復(fù)區(qū)域亡脸;如果step為2押搪,那么相鄰感受野不會(huì)重復(fù),也不會(huì)有覆蓋不到的地方浅碾;如果step為3大州,那么相鄰步感受野之間會(huì)有一道大小為1顆像素的縫隙,從某種程度來說垂谢,這樣就遺漏了原圖的信息厦画。

  • 填充(Padding):卷積核與圖像尺寸不匹配,往往填充圖像缺失區(qū)域埂陆,如上圖苛白,原始圖片尺寸為5*5娃豹,卷積核的大小為3*3焚虱,如果不進(jìn)行填充,步長為1的話懂版,當(dāng)卷積核沿著圖片滑動(dòng)后只能滑動(dòng)出一個(gè)3*3的圖片出來鹃栽,這就造成了卷積后的圖片和卷積前的圖片尺寸不一致,這顯然不是我們想要的結(jié)果躯畴,所以為了避免這種情況民鼓,需要先對原始圖片做邊界填充處理。

  • 輸入和輸出通道數(shù)(Input & Output Channels):卷積核的輸入通道數(shù)(in depth)由輸入矩陣的通道數(shù)所決定蓬抄;輸出矩陣的通道數(shù)(out depth)由卷積核的輸出通道數(shù)所決定丰嘉。每一層卷積有多少channel數(shù),以及一共有多少層卷積嚷缭,這些暫時(shí)沒有理論支撐,一般都是靠感覺去設(shè)置幾組候選值毅桃,然后通過實(shí)驗(yàn)挑選出其中的最佳值掉冶。這也是現(xiàn)在深度卷積神經(jīng)網(wǎng)絡(luò)雖然效果拔群,但是一直為人詬病的原因之一荐开。

2. 擴(kuò)張卷積

使用3內(nèi)核進(jìn)行2D卷積,擴(kuò)展率為2且無填充

擴(kuò)張卷積(Dilated Convolution)也被稱為空洞卷積或者膨脹卷積简肴,是在標(biāo)準(zhǔn)的卷積核中注入空洞晃听,以此來增加模型的感受野(reception field)。相比原來的正常卷積操作砰识,除了卷積核大小能扒,步長和填充外,擴(kuò)張卷積多了一個(gè)參數(shù): dilation rate仍翰,指的是卷積核的點(diǎn)的間隔數(shù)量赫粥,比如常規(guī)的卷積操作dilatation rate為1。擴(kuò)張的卷積為卷積層引入另一個(gè)參數(shù)予借,稱為擴(kuò)張率越平。這定義了卷積核中值之間的間距。擴(kuò)張率為2的3x3內(nèi)核與5x5內(nèi)核具有相同的視野灵迫,而僅使用9個(gè)參數(shù)秦叛。想象一下,獲取一個(gè)5x5內(nèi)核并刪除每一個(gè)第二列和第二行(間隔刪除)瀑粥。如之前的一篇文章:
為什么要用空洞卷積挣跋?

如下圖,正常卷積核空洞卷積對比:


image

上圖左側(cè)為對0-9共10顆像素的正常3x3卷積,padding為same狞换,stride=1的情況下避咆,我們知道其卷積后共得到10個(gè)特征,每個(gè)特征的感受野均為3x3修噪,如左側(cè)紅色的那個(gè)特征覆蓋3,4,5三顆像素(想象二維情況下應(yīng)該是3x3)查库。
上圖右側(cè)為對0-9共10顆像素的空洞3x3卷積,這里的3x3是指有效區(qū)域黄琼,在padding為same樊销,stride=1的情況下,也得到了10個(gè)特征脏款,但是每個(gè)特征的感受野為5x5围苫,如右側(cè)藍(lán)色的那個(gè)特征覆蓋2,3,4,5,6五顆像素(想象二維情況下應(yīng)該是5x5)。

這就在不丟失特征分辨率的情況下擴(kuò)大了感受野撤师,進(jìn)而對檢測大物體有比較好的效果剂府。所以總的來說,空洞卷積主要作用:不丟失分辨率的情況下擴(kuò)大感受野剃盾;調(diào)整擴(kuò)張率獲得多尺度信息腺占。但是對于一些很小的物體强法,本身就不要那么大的感受野來說,這就不那么友好了湾笛。

3. 轉(zhuǎn)置卷積

轉(zhuǎn)置卷積又叫反卷積饮怯、逆卷積。不過轉(zhuǎn)置卷積是目前最為正規(guī)和主流的名稱嚎研,因?yàn)檫@個(gè)名稱更加貼切的描述了卷積的計(jì)算過程蓖墅,而其他的名字容易造成誤導(dǎo)。在主流的深度學(xué)習(xí)框架中临扮,如TensorFlow论矾,Pytorch,Keras中的函數(shù)名都是conv_transpose杆勇。所以學(xué)習(xí)轉(zhuǎn)置卷積之前贪壳,我們一定要弄清楚標(biāo)準(zhǔn)名稱,遇到他人說反卷積蚜退、逆卷積也要幫其糾正闰靴,讓不正確的命名盡早的淹沒在歷史的長河中。
有大佬一句話總結(jié):轉(zhuǎn)置卷積相對于卷積在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的正向和反向傳播中做相反的運(yùn)算钻注。其實(shí)還是不是很理解蚂且。我們先從轉(zhuǎn)置卷積的用途來理解下,轉(zhuǎn)置卷積通常用于幾個(gè)方面:

  1. CNN可視化幅恋,通過反卷積將卷積得到的feature map還原到像素空間杏死,來觀察feature map對哪些pattern相應(yīng)最大,即可視化哪些特征是卷積操作提取出來的捆交;

  2. FCN全卷積網(wǎng)絡(luò)中淑翼,由于要對圖像進(jìn)行像素級的分割,需要將圖像尺寸還原到原來的大小品追,類似upsampling的操作玄括,所以需要采用反卷積;

  3. GAN對抗式生成網(wǎng)絡(luò)中诵盼,由于需要從輸入圖像到生成圖像惠豺,自然需要將提取的特征圖還原到和原圖同樣尺寸的大小银还,即也需要反卷積操作风宁。

我們先來看看卷積和反卷積的圖,簡直不要太形象蛹疯。
如下圖正常卷積(convolution):
卷積核為 3x3戒财;no padding , strides=1


正常卷積

轉(zhuǎn)置卷積可以理解為upsample conv.如下圖:
卷積核為:3x3; no padding , strides=1


轉(zhuǎn)置卷積

從上面兩個(gè)圖可以看到,轉(zhuǎn)置卷積和卷積有點(diǎn)類似捺弦,因?yàn)樗a(chǎn)生與假設(shè)的反卷積層相同的空間分辨率饮寞。但是孝扛,對值執(zhí)行的實(shí)際數(shù)學(xué)運(yùn)算是不同的。轉(zhuǎn)置卷積層執(zhí)行常規(guī)卷積幽崩,但恢復(fù)其空間變換苦始。 需要注意的是:反卷積只能恢復(fù)尺寸,不能恢復(fù)數(shù)值慌申。

4. 可分離卷積

任何看過MobileNet架構(gòu)的人都會(huì)遇到可分離卷積(separable convolutions)這個(gè)概念陌选。但什么是“可分離卷積”,它與標(biāo)準(zhǔn)的卷積又有什么區(qū)別蹄溉?可分離卷積主要有兩種類型:空間可分離卷積和深度可分離卷積咨油。

空間可分離卷積

在可分離的卷積中,我們可以將內(nèi)核操作分成多個(gè)步驟柒爵。讓我們將卷積表示為y = conv(x役电,k),其中y是輸出圖像棉胀,x是輸入圖像法瑟,k是核。簡單唁奢。接下來瓢谢,假設(shè)k可以通過以下公式計(jì)算:k = k1.dot(k2)。這將使它成為可分離的卷積驮瞧,因?yàn)槲覀兛梢酝ㄟ^用k1和k2進(jìn)行2個(gè)1D卷積來得到相同的結(jié)果氓扛,而不是用k進(jìn)行2D卷積。


Sobel X和Y濾鏡

以Sobel內(nèi)核為例论笔,它通常用于圖像處理采郎。你可以通過乘以向量[1,0,-1]和[1,2,1] .T得到相同的內(nèi)核狂魔。在執(zhí)行相同操作時(shí)蒜埋,這將需要6個(gè)而不是9個(gè)參數(shù)。上面的例子顯示了所謂的空間可分卷積最楷。
空間可分卷積的主要問題是并非所有卷積核都可以“分離”成兩個(gè)較小的卷積核整份。 這在訓(xùn)練期間變得特別麻煩,因?yàn)榫W(wǎng)絡(luò)可能采用所有可能的卷積核籽孙,它最終只能使用可以分成兩個(gè)較小卷積核的一小部分烈评。

實(shí)際上,通過堆疊1xN和Nx1內(nèi)核層犯建,可以創(chuàng)建與空間可分離卷積非常相似的東西讲冠。這最近在一個(gè)名為EffNet的架構(gòu)中使用,顯示了有希望的結(jié)果适瓦。

深度可分離卷積

在神經(jīng)網(wǎng)絡(luò)中竿开,我們通常使用稱為深度可分離卷積的東西谱仪。這將執(zhí)行空間卷積,同時(shí)保持通道分離否彩,然后進(jìn)行深度卷積疯攒。這里,通過一個(gè)例子可以最好地理解它(以下參考文獻(xiàn)2):
以輸入圖像為12x12x3的RGB圖像為例列荔,正常卷積是卷積核對3個(gè)通道同時(shí)做卷積卸例。也就是說,3個(gè)通道肌毅,在一次卷積后筷转,輸出一個(gè)數(shù)。而深度可分離卷積分為兩步:

  • 第一步用三個(gè)卷積對三個(gè)通道分別做卷積悬而,這樣在一次卷積后呜舒,輸出3個(gè)數(shù)。
  • 這輸出的三個(gè)數(shù)笨奠,再通過一個(gè)1x1x3的卷積核(pointwise核)袭蝗,得到一個(gè)數(shù)。

所以深度可分離卷積其實(shí)是通過兩次卷積實(shí)現(xiàn)的般婆。

第一步到腥,對三個(gè)通道分別做卷積,輸出三個(gè)通道的屬性蔚袍,如下圖:


image

第二步乡范,用卷積核1x1x3對三個(gè)通道再次做卷積,這個(gè)時(shí)候的輸出就和正常卷積一樣啤咽,是8x8x1:


image

如果要提取更多的屬性晋辆,則需要設(shè)計(jì)更多的1x1x3卷積核心就可以(圖片引用自原網(wǎng)站。感覺應(yīng)該將8x8x256那個(gè)立方體繪制成256個(gè)8x8x1宇整,因?yàn)樗麄儾皇且惑w的瓶佳,代表了256個(gè)屬性):
image

可以看到,如果僅僅是提取一個(gè)屬性鳞青,深度可分離卷積的方法霸饲,不如正常卷積。隨著要提取的屬性越來越多臂拓,深度可分離卷積就能夠節(jié)省更多的參數(shù)厚脉。

文獻(xiàn)1:
https://zhuanlan.zhihu.com/p/28186857

文獻(xiàn)2:
https://blog.csdn.net/makefish/article/details/88716534

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市埃儿,隨后出現(xiàn)的幾起案子器仗,更是在濱河造成了極大的恐慌融涣,老刑警劉巖童番,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件精钮,死亡現(xiàn)場離奇詭異,居然都是意外死亡剃斧,警方通過查閱死者的電腦和手機(jī)轨香,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幼东,“玉大人臂容,你說我怎么就攤上這事「罚” “怎么了脓杉?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長简逮。 經(jīng)常有香客問我球散,道長,這世上最難降的妖魔是什么散庶? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任蕉堰,我火速辦了婚禮,結(jié)果婚禮上悲龟,老公的妹妹穿的比我還像新娘屋讶。我一直安慰自己,他們只是感情好须教,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布皿渗。 她就那樣靜靜地躺著,像睡著了一般轻腺。 火紅的嫁衣襯著肌膚如雪羹奉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天约计,我揣著相機(jī)與錄音诀拭,去河邊找鬼。 笑死煤蚌,一個(gè)胖子當(dāng)著我的面吹牛耕挨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尉桩,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼筒占,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜘犁?” 一聲冷哼從身側(cè)響起翰苫,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后奏窑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體导披,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年埃唯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撩匕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡墨叛,死狀恐怖止毕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漠趁,我是刑警寧澤扁凛,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站闯传,受9級特大地震影響令漂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丸边,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一叠必、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧妹窖,春花似錦纬朝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜓萄,卻和暖如春隅茎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嫉沽。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工辟犀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绸硕。 一個(gè)月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓堂竟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親玻佩。 傳聞我的和親對象是個(gè)殘疾皇子出嘹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容