• 正文
    • 標(biāo)準(zhǔn)卷積
    • 分組卷積(Group Conv)
    • 深度可分離卷積(Depthwise Separable Conv)
    • 轉(zhuǎn)置卷積(Transposed Conv)
    • 空洞卷積(Dilated Conv)
    • 可變形卷積(Deformable Conv)
    • 特征重標(biāo)定技術(shù)(Squeeze-and-Excitation)
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

一文總結(jié)CNN中【各類卷積】操作

2024/05/06
4339
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文詳細(xì)總結(jié)CNN中各類卷積,旨在指導(dǎo) domain-specific 更好的模型設(shè)計(jì),包括標(biāo)準(zhǔn)卷積,分組卷積(Group Conv),深度可分離卷積(Depthwise Separable Conv),轉(zhuǎn)置卷積(Transposed Conv),空洞卷積(Dilated Conv),可變形卷積(Deformable Conv),和 特征重標(biāo)定技術(shù)(Squeeze-and-Excitation)。

關(guān)于CNN網(wǎng)絡(luò)的總結(jié)可以去康康這篇良心博客哦:《一文總結(jié)經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)CNN模型》

標(biāo)準(zhǔn)卷積

這沒什么好說的,回顧一下卷積的基本概念:

  • Kernel Size: 內(nèi)核大小定義了卷積的 視域 。2D的常見選擇是3,即3x3像素。
  • Stride: 定義了內(nèi)核在遍歷圖像時(shí)的 步長 。雖然它的默認(rèn)值通常是1,但我們可以使用2的步長來對圖像進(jìn)行采樣,類似于MaxPooling。
  • Padding: 填充 定義了如何處理樣本的邊界。(padding=1,kernel size=3)的卷積將保持空間輸出維度等于輸入維度。
  • Input & Output Channels: 輸入通道(I),輸出通道(O,就是該層有多少個(gè)卷積核,決定著下一層的輸入通道),該層所需的參數(shù)可以用IOK來計(jì)算,其中K等于單個(gè)內(nèi)核中單個(gè)通道的參數(shù)個(gè)數(shù)。

記住下面這個(gè)公式就行,單個(gè)維度(例如寬度或高度):

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

分組卷積(Group Conv)

它將輸入特征圖(input feature map)分成多個(gè)組,然后在每個(gè)組內(nèi)獨(dú)立進(jìn)行卷積操作。這種方法最初是在AlexNet中提出的,以解決當(dāng)時(shí)的GPU內(nèi)存限制問題,后來被發(fā)現(xiàn)可以增加網(wǎng)絡(luò)的表示能力并減少計(jì)算量。

在標(biāo)準(zhǔn)卷積中,卷積核會(huì)跨越所有輸入通道(input channels)進(jìn)行卷積。而在分組卷積中,假設(shè)有 G 個(gè)組,則輸入特征圖和卷積核都會(huì)被分成 G 個(gè)組。每組卷積核只在對應(yīng)的輸入特征圖組內(nèi)進(jìn)行卷積操作,因此,每個(gè)卷積核不再跨越所有輸入通道,而只跨越部分通道,理論上計(jì)算量減少 G 倍。

在這里插入圖片描述

不過,分組卷積也有一個(gè)潛在的問題:

雖然在理論上它可以顯著降低一計(jì)算量,但是對內(nèi)存的訪問頻繁程度并未降低,且現(xiàn)有的GPU加速庫(如cuDNN)對其優(yōu)化的程度有限,因此它在效率上的提升并不如理論上顯著。

深度可分離卷積(Depthwise Separable Conv)

分組卷積的一種特例,其中每個(gè)輸入通道分配給一個(gè)組(就是 G=C,每個(gè)通道單獨(dú)一個(gè)組)。深度可分離卷積首先使用逐通道深度卷積(depthwise)提取空間特征,然后使用 1×1 逐點(diǎn)卷積(pointwise)合并這些特征。這種方法首次被廣泛認(rèn)知是通過MobileNet架構(gòu)和Xception架構(gòu),以顯著減少計(jì)算量和模型大小。

在這里插入圖片描述

計(jì)算量分析

在這里插入圖片描述

所以:

標(biāo)準(zhǔn)卷積的計(jì)算量(即乘法操作的數(shù)量)大約為:
在這里插入圖片描述

深度可分離卷積的總計(jì)算量為 深度卷積 和 逐點(diǎn)卷積 之和:

在這里插入圖片描述

深度可分離卷積的計(jì)算效率提升可以用如下的比例表示:

在這里插入圖片描述

簡化后得到:
在這里插入圖片描述

Cout一般很大,可以忽略,而Dk一般是3,所以一般至少能 節(jié)省9倍 計(jì)算量。

在MobileNet V2中,網(wǎng)絡(luò)做了一點(diǎn)改進(jìn):

先點(diǎn)卷積擴(kuò)大通道數(shù),以提取更多的特征,再應(yīng)用深度可分離卷積;還有加了殘差結(jié)構(gòu)(圖中沒有展示)。

在這里插入圖片描述

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

轉(zhuǎn)置卷積可以理解為 反卷積,可以視為標(biāo)準(zhǔn)卷積的逆過程,在 圖像生成(如生成對抗網(wǎng)絡(luò)GANs和變分自編碼器VAEs)、圖像分割 等領(lǐng)域中非常有用,因?yàn)檫@些應(yīng)用通常需要從一個(gè)較小的特征表示恢復(fù)到較大的圖像尺寸。

標(biāo)準(zhǔn)卷積中,卷積核在輸入特征圖上滑動(dòng),對局部區(qū)域進(jìn)行加權(quán)求和,從而產(chǎn)生更小的輸出特征圖(除非特別采用零填充等手段)。

相反,轉(zhuǎn)置卷積通過給定的步長在輸入特征圖中插入零,然后應(yīng)用一個(gè)卷積核,其效果是 “擴(kuò)展” 了輸入特征圖。
具體地,它首先將輸入特征圖中的每個(gè)元素視為小的特征圖,并在這些特征圖之間插入由步長確定的零填充,然后對這個(gè)新的、被擴(kuò)展的特征圖應(yīng)用標(biāo)準(zhǔn)卷積。這樣,轉(zhuǎn)置卷積實(shí)際上是通過在原始輸入元素之間插入空白(通常是零)來“逆轉(zhuǎn)”標(biāo)準(zhǔn)卷積的壓縮效果。

在這里插入圖片描述
在這里插入圖片描述

普通卷積和轉(zhuǎn)置卷積所處理的基本任務(wù)是不同的:

  • 前者主要用來做特征提取,傾向于壓縮特征圖尺寸
  • 后者主要用于對特征圖進(jìn)行擴(kuò)張或上采樣。

盡管轉(zhuǎn)置卷積是上采樣的有效手段,但它可能引入特定的偽影,如棋盤狀偽影(checkerboard artifacts)。

這是由于步長和卷積核大小不匹配時(shí)輸出特征圖中值的不均勻分布導(dǎo)致的。即當(dāng)內(nèi)核大小(輸出窗口大?。┎荒鼙徊椒敳奎c(diǎn)之間的間距)整除時(shí),反卷積具有不均勻的重疊。

為了緩解這一問題,設(shè)計(jì)轉(zhuǎn)置卷積層時(shí)需要仔細(xì)選擇卷積核大小和步長,或考慮使用其他上采樣技術(shù)(如雙線性上采樣后跟一個(gè) 1×1 卷積)作為替代。

在這里插入圖片描述

在這里插入圖片描述

空洞卷積(Dilated Conv)

也稱為擴(kuò)張卷積,旨在增加卷積層的感受野(即卷積操作覆蓋的輸入?yún)^(qū)域大小)而不增加額外的參數(shù)或計(jì)算量。這種方法通過在卷積核的元素之間插入空洞(即零填充),實(shí)現(xiàn)了在不丟失分辨率的情況下捕獲更廣泛的上下文信息,也用于做像素級(jí)的預(yù)測,解決pixel-wise輸出模型。

在標(biāo)準(zhǔn)卷積中,卷積核的元素是緊密排列的。而在空洞卷積中,卷積核被“擴(kuò)張”了,卷積核中的元素之間插入了指定數(shù)量的空間(零填充),這個(gè)數(shù)量由一個(gè)參數(shù)——空洞率(dilation rate)決定。空洞率為1表示標(biāo)準(zhǔn)卷積(沒有空洞),空洞率大于1表示在卷積核元素之間插入的空洞數(shù)量。

工作原理:

假設(shè)空洞率為 d,則在卷積核的每個(gè)元素之間將插入 d?1 個(gè)零。這意味著,對于一個(gè) 3×3 的卷積核,當(dāng)空洞率為2時(shí),實(shí)際上卷積操作會(huì)在一個(gè) 5×5 的區(qū)域上進(jìn)行,但只有原 3×3 卷積核對應(yīng)的位置參與計(jì)算,其他位置被認(rèn)為是零。這樣,卷積核覆蓋的實(shí)際區(qū)域更大,從而增大了感受野,而不需要增加更多的參數(shù)或計(jì)算成本。

在這里插入圖片描述
在這里插入圖片描述

應(yīng)用:

  • 語義分割:FCN等網(wǎng)絡(luò)就是利用空洞卷積來增加感受野,以提高分割的精確度。
  • 音頻處理:在音頻生成和語音識(shí)別中,如Wavenet,空洞卷積可以幫助模型捕捉到更長的序列依賴。

雖然空洞卷積有其優(yōu)勢,但在使用時(shí)也需要注意一些問題,如:

  • 感受野爆炸:隨著空洞率的增加,感受野可能迅速擴(kuò)大,可能導(dǎo)致模型覆蓋過多的輸入?yún)^(qū)域,從而捕獲到過多的無關(guān)信息或噪聲。
  • 棋盤效應(yīng)(Gridding Effect):當(dāng)連續(xù)使用高空洞率的卷積層時(shí),可能會(huì)出現(xiàn)棋盤效應(yīng),即模型只能看到輸入數(shù)據(jù)的一部分,導(dǎo)致性能下降。為避免這一點(diǎn),設(shè)計(jì)網(wǎng)絡(luò)時(shí)應(yīng)仔細(xì)考慮空洞率的選擇和層次結(jié)構(gòu)的安排。

可變形卷積(Deformable Conv)

傳統(tǒng)的卷積操作在進(jìn)行特征提取時(shí)使用固定形狀的卷積核,這可能限制了模型處理圖像中的幾何變換(如物體的形狀變化、尺度變化和旋轉(zhuǎn))的能力??勺冃尉矸e通過引入了可學(xué)習(xí)的偏移量,使得卷積核的形狀和位置可以動(dòng)態(tài)地調(diào)整以適應(yīng)輸入圖像的幾何變化。這種方法最初是在《Deformable Convolutional Networks》一文中提出的,目的是增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)對于尺度、旋轉(zhuǎn)和形狀變化的適應(yīng)能力。

這使得卷積核能夠自適應(yīng)地調(diào)整其形狀來更好地?cái)M合圖像的局部特征。

正常卷積規(guī)律的采樣 9 個(gè)點(diǎn)(綠點(diǎn)),在正常的采樣坐標(biāo)上加上一個(gè)位移量(藍(lán)色箭頭),可變形卷積可以進(jìn)行尺度變換,比例變換和旋轉(zhuǎn)變換,即上面介紹的空洞卷積是它的一個(gè)特例。

在這里插入圖片描述

具體地:

  • 可變形卷積層通過額外的卷積層來預(yù)測每個(gè)采樣點(diǎn)的偏移量,這些偏移量是相對于卷積核中每個(gè)位置的標(biāo)準(zhǔn)固定網(wǎng)格位置的。偏移量是可以通過反向傳播算法學(xué)習(xí)和優(yōu)化的,使得網(wǎng)絡(luò)能夠在訓(xùn)練過程中自動(dòng)學(xué)習(xí)到如何變形卷積核以適應(yīng)具體任務(wù)的需求。
  • 由于偏移后的位置通常不會(huì)正好落在輸入特征圖的像素上,可變形卷積使用雙線性插值來計(jì)算偏移位置處的輸入值,確保操作的可微性,允許梯度的正常反向傳播。

簡單來說:首先通過一個(gè)小卷積層(綠色)的輸出得到可變形卷積所需要的位移量,然后將其作用在卷積核(藍(lán)色)上,達(dá)到可變形卷積的效果。

在這里插入圖片描述

優(yōu)勢:

  • 幾何變換適應(yīng)性:可變形卷積能夠使卷積核適應(yīng)輸入特征圖中的局部幾何變換,提高了模型處理圖像形變的能力。
  • 增強(qiáng)的特征提?。和ㄟ^動(dòng)態(tài)調(diào)整卷積核,模型能夠捕捉到更加豐富和精細(xì)的特征,有助于提升諸如目標(biāo)檢測、語義分割等視覺任務(wù)的性能。

同樣思路也能用在池化上,搞成可變形池化:

通過標(biāo)準(zhǔn)的興趣區(qū)域池化(綠色)獲得興趣區(qū)域?qū)?yīng)的特征,該特征通過一個(gè)全連接層得到興趣區(qū)域每個(gè)部位的位移量。用該位移作用在可變形興趣區(qū)域池化(藍(lán)色)上,以獲得不局限于興趣區(qū)域固定網(wǎng)格的特征。

在這里插入圖片描述

雖然可變形卷積提供了強(qiáng)大的幾何變換適應(yīng)能力,但它也引入了額外的計(jì)算和參數(shù),這可能會(huì)增加模型的訓(xùn)練難度和計(jì)算成本。因此,在實(shí)際應(yīng)用中需要根據(jù)任務(wù)的具體需求和資源限制權(quán)衡其使用。

特征重標(biāo)定技術(shù)(Squeeze-and-Excitation)

ImageNet 2017 競賽 Image Classification 任務(wù)的冠軍模型SENet(Squeeze-and-Excitation Networks)中的特征重標(biāo)定策略,通過引入一個(gè)稱為“Squeeze-and-Excitation”(SE)模塊的結(jié)構(gòu),對卷積神經(jīng)網(wǎng)絡(luò)中的特征通道進(jìn)行動(dòng)態(tài)重標(biāo)定。這種機(jī)制能夠顯著提高網(wǎng)絡(luò)對特征重要性的適應(yīng)能力,增強(qiáng)了模型的學(xué)習(xí)和表達(dá)能力,進(jìn)而提高網(wǎng)絡(luò)的性能。

這種卷積方法創(chuàng)新地對特征維度進(jìn)行改進(jìn),通過自動(dòng)學(xué)習(xí)評(píng)估每個(gè)特征通道的重要性,從而在千余個(gè)卷積核中區(qū)分并強(qiáng)化對當(dāng)前任務(wù)有利的特征,同時(shí)抑制不太相關(guān)的信息。

在這里插入圖片描述

Squeeze階段:

SE模塊首先通過全局平均池化(Global Average Pooling)對每個(gè)特征通道進(jìn)行“壓縮”,將每個(gè)通道的空間維度(即寬度和高度)壓縮為一個(gè)單一的數(shù)值,生成一個(gè)長度為C的向量,這個(gè)向量中的每個(gè)值反映了相應(yīng)特征在全局上的平均激活程度,這一步驟有助于模塊捕捉到通道級(jí)的全局信息。

Excitation階段:

緊接著,通過一個(gè)全連接層、ReLU激活、另一個(gè)全連接層和sigmoid激活來進(jìn)行“激勵(lì)”操作,這兩層作為網(wǎng)絡(luò)的一部分需要額外學(xué)習(xí)其參數(shù),這個(gè)過程生成每個(gè)通道的權(quán)重系數(shù)。這些權(quán)重系數(shù)用于動(dòng)態(tài)地調(diào)整每個(gè)通道的重要性,使網(wǎng)絡(luò)能夠?qū)W⒂诟杏玫奶卣鳌?/p>

重標(biāo)定:

最后,原始特征圖通過與這些學(xué)習(xí)到的通道權(quán)重相乘,進(jìn)行重標(biāo)定,即按通道進(jìn)行加權(quán),從而增強(qiáng)有用的特征并抑制不重要的特征。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
NC7WZ14P6X 1 Fairchild Semiconductor Corporation Inverter, LVC/LCX/Z Series, 2-Func, 1-Input, CMOS, PDSO6, 1.25 MM, ROHS COMPLIANT, EIAJ, SC-88A, SC-70, 6 PIN
$0.34 查看
ECS-250-18-23A-EN-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 25MHz Nom, ROHS COMPLIANT, MINIATURE, SMD, 2 PIN
$0.89 查看
S25FL512SAGMFIR10 1 Spansion Flash, 512MX1, PDSO16, 0.300 INCH, LEAD FREE, PLASTIC, MO-013EAA, SOIC-16
$11.03 查看

相關(guān)推薦