日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

卷积神经网络中不同类型的卷积方式介绍

發(fā)布時(shí)間:2025/3/15 卷积神经网络 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卷积神经网络中不同类型的卷积方式介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之前在文章《<模型匯總_1>牛逼的深度卷積神經(jīng)網(wǎng)絡(luò)CNN》詳細(xì)介紹了卷積神經(jīng)網(wǎng)絡(luò)的基本原理,以及常見(jiàn)的基本模型,如LeNet,VGGNet,AlexNet,ReseNet,Inception Net的基本結(jié)構(gòu)和原理。今天主要總結(jié)一下,卷積神經(jīng)網(wǎng)絡(luò)家族中,不同類(lèi)型的卷積方式以及它們各自的優(yōu)點(diǎn)。為了簡(jiǎn)單起見(jiàn),我們僅從2維的角度介紹。

文末提供相關(guān)資料下載地址

卷積基本概念

首先,我們首先回顧一下卷積相關(guān)的基本概念,定義一個(gè)卷積層需要的幾個(gè)參數(shù)。



2維卷積使用卷積核大小為3,步長(zhǎng)為1和Padding

卷積核大小(Kernel Size):卷積核大小定義了卷積的視野。2維中的常見(jiàn)選擇是3 - 即3x3像素矩陣。

步長(zhǎng)(Stride):步長(zhǎng)定義遍歷圖像時(shí)卷積核的移動(dòng)的步長(zhǎng)。雖然它的默認(rèn)值通常為1,但我們可以使用值為2的步長(zhǎng)來(lái)對(duì)類(lèi)似于MaxPooling的圖像進(jìn)行下采樣。

填充(Padding):填充定義如何處理樣本的邊界。Padding的目的是保持卷積操作的輸出尺寸等于輸入尺寸,因?yàn)槿绻矸e核大于1,則不加Padding會(huì)導(dǎo)致卷積操作的輸出尺寸小于輸入尺寸。

輸入和輸出通道(Channels):卷積層通常需要一定數(shù)量的輸入通道(I),并計(jì)算一定數(shù)量的輸出通道(O)。可以通過(guò)I * O * K來(lái)計(jì)算所需的參數(shù),其中K等于卷積核中參數(shù)的數(shù)量,即卷積核大小。

下面介紹幾種常見(jiàn)的卷積方式。

擴(kuò)張卷積(Dilated Convolution)

(又稱(chēng)Atrous Convolution)



2維卷積,卷積核大小為3,擴(kuò)張率(dilation rate)為2,無(wú)Padding

擴(kuò)張卷積在進(jìn)行卷積操作時(shí)引入了另一個(gè)參數(shù),即擴(kuò)張率,用以捕捉像素之間的long dependency。擴(kuò)張率定義了卷積核中的值與值之間的間隔。擴(kuò)張率為2的3x3卷積核將具有與與5x5卷積核相同的視野,而只使用9個(gè)參數(shù)。想象一下,使用一個(gè)5x5卷積核并刪除第二行和列。

這樣操作,使得在相同的計(jì)算成本下,卷積計(jì)算具有更寬的視野,可以捕捉更長(zhǎng)的依賴關(guān)系。擴(kuò)張卷積在實(shí)時(shí)圖像分割領(lǐng)域特別受歡迎。適用于需要更加寬泛的視野并且不用多個(gè)卷積或更大的卷積核情況。

典型的網(wǎng)絡(luò)如WaveNet,論文下載地址:https://arxiv.org/abs/1609.03499

Fully Convoluted Network,論文下載地址https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf

可變形(Deformable)卷積

我們常見(jiàn)的卷積核(filter)一般都是呈長(zhǎng)方形或正方形的,規(guī)則的卷積核往往會(huì)限制特征抽取的有效性,更為有效的做法是讓卷積和具有任意的形狀,那么卷積核是否可以呈圓形或者隨意的形狀呢?答案是可行的,如下圖所示,典型的代表就是Deformable Convolution Network。


對(duì)比上圖所示的a、b兩圖可以發(fā)現(xiàn),任意形狀的的卷積核使得網(wǎng)絡(luò)可以重點(diǎn)關(guān)注一些重要的區(qū)域,更能有效且準(zhǔn)確的抽取輸入圖像的特征。

怎么樣來(lái)實(shí)現(xiàn)呢?


如上圖所示,網(wǎng)絡(luò)會(huì)根據(jù)原始的卷積,如圖a所示,學(xué)習(xí)一個(gè)offset偏量,通過(guò)一些列的旋轉(zhuǎn)、尺度變換、縮放等Transform變換,改變成成任意形狀的卷積核,如b、c、d圖所示。

Offet代表的Transform怎么實(shí)現(xiàn)呢?


在deformable convolution中,會(huì)進(jìn)行兩次卷積,第一次卷積計(jì)算得到offset的卷積核,第二次是利用第一步得到的offset卷積核進(jìn)行常規(guī)的卷積得到最終輸出。重點(diǎn)是第一步中獲得offset卷積核。先從input feature map中通過(guò)卷積(conv)計(jì)算得到offset field,在基于offset field得到最終的offset。注意,offset得到的輸出通道數(shù)是input feature map的兩倍,因?yàn)閛ffset包含了在x和y兩個(gè)方向上的偏置項(xiàng)。

具體細(xì)節(jié)可以看考Deformable convolution Network的論文:https://arxiv.org/abs/1703.06211

深度可分離(Depth Separable)卷積

在可分離的卷積中,我們可以將卷積核操作拆分成多個(gè)步驟。我們用y = conv(x,k)表示卷積,其中y是輸出圖像,x是輸入圖像,k是卷積核。接下來(lái),假設(shè)k由公式:k = k1.dot(k2)計(jì)算。這就是一個(gè)可分離的卷積,因?yàn)槲覀兛梢允褂么笮》謩e為k1和k2兩個(gè)卷積核進(jìn)行2個(gè)1D卷積來(lái)取得相同的結(jié)果,而不是用一個(gè)大小k進(jìn)行二維卷積。


Sobel X和Y卷積核

以Sobel卷積核為例,通常用于圖像處理。我們可以通過(guò)向量[1,0,-1]乘以向量[1,2,1] 來(lái)獲得相同的卷積核。執(zhí)行相同的操作,只需要6而不是9個(gè)參數(shù)。

上面的例子就是所謂的空間可分離卷積,但在深度學(xué)習(xí)中并不是這樣做的。這樣介紹主要是舉個(gè)例子,不至于使人迷惑。在神經(jīng)網(wǎng)絡(luò)中,通常使用稱(chēng)為深度可分離卷積的網(wǎng)絡(luò),典型的網(wǎng)絡(luò)Xception Net,示意圖如下圖所示。


深度可分離卷積在執(zhí)行空間卷積的同時(shí),保持通道(Channels)之間分離,然后按照深度方向(depth)進(jìn)行卷積。用一個(gè)例子來(lái)說(shuō)明。

假設(shè)在16個(gè)輸入通道和32個(gè)輸出通道上,采用3x3卷積核進(jìn)行卷積計(jì)算,16個(gè)通道上采用3x3卷積核,進(jìn)行32次重復(fù)操作,產(chǎn)生512(16x32)個(gè)特征圖(feature map)。然后,把這些特征圖合并得到一個(gè)輸出通道。重復(fù)執(zhí)行32次,最終得到了32個(gè)輸出通道。

對(duì)于同一個(gè)例子,采用深度可分離方式進(jìn)行卷積,采用3x3卷積核分別遍歷16個(gè)通道,最終得到16個(gè)特征圖。現(xiàn)在,在進(jìn)行合并操作之前,先采用32個(gè)1x1卷積個(gè)來(lái)遍歷這16個(gè)特征圖,然后再把它們合并到一起。采用可分離卷積,有656(16x3x3 + 16x32x1x1)參數(shù),相反,傳統(tǒng)卷積操作有4608(16x32x3x3)參數(shù),大大減少了參數(shù)的數(shù)目。

該例子是一個(gè)典型的深度可分離卷積的例子,其中采用的深度乘數(shù)(Depth ?Multiplier)為1,也是一種最常見(jiàn)的設(shè)置。

這樣做是基于一個(gè)假設(shè),即平面和深度方向信息可以解耦。Xception網(wǎng)絡(luò)證明了這個(gè)假設(shè)是有效的。因?yàn)榭梢杂行У厥褂媚P偷膮?shù),所以深度可分離的卷積可以用于可移動(dòng)設(shè)備上。

典型的模型如Xception Net,細(xì)節(jié)可閱讀論文:https://arxiv.org/abs/1610.02357

Squeeze-and-Excitation Convolution

Squeeze-and-Excitation 來(lái)源于ImageNet2017年的冠軍網(wǎng)絡(luò)SEnet。在傳統(tǒng)的LeNet、Inception、ReseNet、DenseNet中,我們認(rèn)為所有的特征通道(Channel)都是同等重要的,那是否可以給每個(gè)通道賦予一個(gè)權(quán)重呢?SEnet就通過(guò)Squeeze-and-Excitation block來(lái)實(shí)現(xiàn)了這一想法,當(dāng)然CNN的網(wǎng)絡(luò)結(jié)構(gòu)十分靈活,還有很多其他簡(jiǎn)單的實(shí)現(xiàn)方式,這里就不一一列舉。Squeeze-and-Excitation block(簡(jiǎn)稱(chēng)SES 模塊)如下圖所示。


以圖中為例,輸入X具有C1數(shù)目的通道,經(jīng)過(guò)一系列變換得到通道數(shù)為C2的SES模塊的輸入。數(shù)據(jù)進(jìn)入SES模塊分成兩路,如圖中,上面一路進(jìn)行squeeze-excitation,Scale操作,下面一路進(jìn)行傳統(tǒng)的卷積操作。在上面一路中,首先是Squeeze操作,沿著通道C2方向,采用Global Average pooling操作,把尺寸c2 X h X W的輸入pooling成一個(gè)c2 X 1 X 1的輸出,即把每一個(gè)二維的特征圖轉(zhuǎn)換成一維的實(shí)數(shù)。Global Average pooling相當(dāng)于一個(gè)全局的感受野,可以獲取h X W整張圖片信息,對(duì)應(yīng)的標(biāo)量輸出可以代表整張圖全局分布。然后進(jìn)行Excitation操作,借鑒RNN中的Gate機(jī)制,為每一個(gè)通道賦予一個(gè)可訓(xùn)練的權(quán)重W,通過(guò)W的學(xué)習(xí),來(lái)建模通道間的重要性。最后是一個(gè)Sacle操作,通過(guò)Reweight操作把學(xué)習(xí)的到權(quán)重得到傳統(tǒng)的卷積得到的通道輸出上,得到通道的輸出特征的重標(biāo)定操作。

這里只是對(duì)SES原理簡(jiǎn)單介紹,深入了解可以參考SEnet的論文:https://arxiv.org/abs/1709.01507

轉(zhuǎn)置(Transposed)卷積

(也稱(chēng)為deconvolutions 或 fractionally stride卷積)

有些場(chǎng)景下使用deconvolution,這中說(shuō)法其實(shí)不太合適,因?yàn)樗皇且粋€(gè)deconvolution,真正的deconvolution應(yīng)該是卷積操作的逆過(guò)程。雖然deconvolution確實(shí)存在,但它們?cè)谏疃葘W(xué)習(xí)領(lǐng)域并不常見(jiàn)。想象一下,將圖像輸入到單個(gè)卷積層。現(xiàn)在獲得輸出,把輸出扔到一個(gè)黑盒子里,再恢復(fù)成的原始輸入圖像。這個(gè)黑盒子才叫做deconvolution。Deconvolution是卷積計(jì)算過(guò)程的逆計(jì)算過(guò)程。

轉(zhuǎn)置卷積則比較貼切,因?yàn)檗D(zhuǎn)置會(huì)產(chǎn)生相同的空間分辨率。然而,真實(shí)執(zhí)行的數(shù)學(xué)運(yùn)算則稍有不同的。轉(zhuǎn)置卷積層一方面會(huì)執(zhí)行常規(guī)卷積,同時(shí)也會(huì)恢復(fù)其空間變換。



2維卷積無(wú)填充,步長(zhǎng)為2和卷積核為3

這一點(diǎn)可能會(huì)讓人覺(jué)得有點(diǎn)難以理解,所以我們來(lái)看一個(gè)具體的例子,如上圖。5x5的圖像被送入一個(gè)卷積層進(jìn)行卷及計(jì)算。步長(zhǎng)設(shè)置為2,沒(méi)有填充,卷積核為3x3。輸出為一個(gè)2x2圖像。

如果我們想反轉(zhuǎn)這個(gè)過(guò)程,我們需要進(jìn)行數(shù)學(xué)逆運(yùn)算,這樣每一個(gè)輸入的像素會(huì)產(chǎn)生9個(gè)輸出值。之后,我們以步長(zhǎng)為2的速度遍歷輸出圖像。這將是一個(gè)deconvolution操作,如下圖所示。



沒(méi)有填充的2維卷積,步長(zhǎng)為2和卷積核為3

轉(zhuǎn)置卷積并不是這樣做的。與上述操作相比,唯一的共同之處在于,它保證輸出也將是5x5圖像,同時(shí)仍然執(zhí)行正常的卷積運(yùn)算。為了實(shí)現(xiàn)這一點(diǎn),我們需要在輸入圖像上進(jìn)行一些漂亮的填充。

你可以想象,這一步不會(huì)重復(fù)上面的過(guò)程。至少,數(shù)值上不會(huì)。它只是通過(guò)一個(gè)卷積操作來(lái)重構(gòu)卷積操作的輸入。這并不是數(shù)學(xué)上的逆操作,只是一種Encoder-Decoder架構(gòu),但仍然非常有用。通過(guò)這種方式,我們可以通過(guò)一個(gè)卷積來(lái)放大一張圖片,而不需要進(jìn)行兩個(gè)單獨(dú)的操作。



作者:Arthurcsh
鏈接:http://www.jianshu.com/p/77302843e1e6
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。 與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的卷积神经网络中不同类型的卷积方式介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。