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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DO-Conv 涨点模块

發(fā)布時間:2024/3/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DO-Conv 涨点模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

      • 0.動機(jī)
      • 1.傳統(tǒng)的卷積和Depthwise卷積
      • 2.Depthwise over-parameterized卷積(DO-Conv)
      • 3.DO-DConv和DO-GConv
      • 4.在視覺任務(wù)中使用Depthwise over-parameterized卷積
      • 5.總結(jié)

DO-Conv無痛漲點:使用over-parameterized卷積層提高CNN性能

DO-Conv: Depthwise Over-parameterized Convolutional Layer

論文: https://arxiv.org/pdf/2006.12030.pdf

代碼: https://github.com/yangyanli/DO-Conv

0.動機(jī)

CNN應(yīng)用于計算機(jī)視覺領(lǐng)域的很多任務(wù)中,增加CNN中線性層—非線性層的數(shù)量,能夠增加網(wǎng)絡(luò)的表達(dá)能力,從而提高網(wǎng)絡(luò)的性能。

然而,很少有人考慮只增加線性層,只增加線性層會造成過擬合現(xiàn)象,因為多個連續(xù)的線性層可以被一個線性層替代,而使用一個線性層參數(shù)更少。

在這篇文章中,作者通過在一個普通的卷積層中加入額外的depthwise卷積操作,構(gòu)成一個over-parameterized的卷積層,并將其命名為DO-Conv,通過實驗證明,使用DO-Conv不僅能夠加速網(wǎng)絡(luò)的訓(xùn)練過程,還能在多種計算機(jī)視覺任務(wù)中取得比使用傳統(tǒng)卷積層更好的結(jié)果。

在推理時,DO-Conv可以轉(zhuǎn)換為傳統(tǒng)的卷積操作,因此將一個網(wǎng)絡(luò)中的傳統(tǒng)卷積替換為DO-Conv并不會增加計算需求。

1.傳統(tǒng)的卷積和Depthwise卷積

1.1 傳統(tǒng)的卷積

給定輸入feature map,傳統(tǒng)的卷積操作使用滑動窗口的形式,將卷積核作用到feature map的窗口區(qū)域中。

假設(shè)feature map的通道數(shù)為,卷積核作用的窗口尺寸為,則卷積核作用的窗口可以表示為一個3維張量,記作,為便于后續(xù)說明,也可以將其表示為2維張量,即。

假設(shè)這個卷積層的輸出feature map通道數(shù)為,一般使用4維張量表示卷積核,但是也可以用3維張量表示卷積核,記作。使用表示卷積操作,則可以表示如下:

上式中只是表示了輸出feature map的1個通道的計算過程。上述表示以及計算過程如下圖所示:

在上圖中,,,。第一行的個元素與做點積運算,完成輸出feature map第一個通道的計算,即的第一行。

1.2 Depthwise卷積

與傳統(tǒng)卷積不同的是,在Depthwise卷積中,輸出特征某個通道只與輸入特征的某個通道和對應(yīng)權(quán)重有關(guān),與輸入特征的其他通道無關(guān)。

對于某個特定通道的輸入特征,個卷積核作用于窗口,輸出個特征,通常將稱作depth multiplier。若輸入特征通道為,則輸出特征通道數(shù)為。如下圖所示:

在上圖中,權(quán)重矩陣被描述成3維張量,即,令表示Depthwise卷積操作,則上圖可表示為,該式含義如下:

在上圖中,,,。

2.Depthwise over-parameterized卷積(DO-Conv)

2.1 基本原理

對于輸入特征,先使用權(quán)重進(jìn)行depthwise卷積,對輸出結(jié)果進(jìn)行權(quán)重為的傳統(tǒng)卷積,且。

使用表示DO-Conv操作,則上述運算可表示為。如下圖所示

上圖中圖(a)的計算過程可表示為,即:

  • 對輸入特征進(jìn)行depthwise卷積操作,即,得到中間變量;
  • 對中間變量進(jìn)行傳統(tǒng)卷積操作,即,得到最終結(jié)果。

圖(b)的計算過程可表示為,即:

  • 先計算2個權(quán)重的乘積,即,得到新的權(quán)重;
  • 再用權(quán)重對輸入特征做傳統(tǒng)的卷積操作,即,則到最終結(jié)果。

作者將圖(a)的計算方式稱作feature composition,將圖(b)的計算方式稱作kernel composition。

由于傳統(tǒng)的卷積和depthwise卷積都是線性操作,再根據(jù)圖(a)和圖(b)的表示,不難得出下面的公式:

需要注意的是,從圖(b)可以明顯看出,對輸入特征進(jìn)行DO-Conv操作的感受野仍然為。

同樣是作用于輸入特征中的區(qū)域,使用傳統(tǒng)卷積,卷積核的參數(shù)量為;在DO-Conv中,由于使用了2個權(quán)重:和,且,即使令,DO-Conv中權(quán)重的參數(shù)也比傳統(tǒng)卷積的參數(shù)多。

因此,相比于傳統(tǒng)的卷積,DO-Conv是一個over-parameterized操作。

2.2 DO-Conv的訓(xùn)練與推理

在訓(xùn)練時,DO-Conv中的參數(shù)和可以使用訓(xùn)練普通CNN的優(yōu)化方法訓(xùn)練,比如SGD。

在訓(xùn)練包含DO-Conv的網(wǎng)絡(luò)時,兩種方法的前向計算的計算量如下圖所示,和分別表示feature map的高度和寬度。

在DO-Conv中,要求,且一般而言,因此在訓(xùn)練時使用kernel composition方式計算DO-Conv,需要更少的操作,且存儲比存儲更節(jié)省內(nèi)存資源。

在推理時,先計算并存下來,然后做權(quán)重為的傳統(tǒng)卷積操作,顯然,在推理階段使用DO-Conv與使用相同設(shè)置的傳統(tǒng)卷積有相同的計算量。

2.3 DO-Conv與深度可分離卷積的區(qū)別

使用feature composition模式計算DO-Conv,計算方式很類似于深度可分離卷積(depthwise separable):對于通道數(shù)為的輸入特征,先進(jìn)行depthwise卷積運算,輸出通道數(shù)為的中間變量,然后再進(jìn)行卷積核尺寸為的傳統(tǒng)卷積運算。

但是DO-Conv和深度可分離卷積有一些區(qū)別:

  • 使用目的不同:DO-Conv的目的是用更多的參數(shù)加快訓(xùn)練,同時能達(dá)到更好的性能;深度可分離卷積用于替代傳統(tǒng)卷積以減少計算量,便于在終端部署。
  • 超參數(shù)不同:在DO-Conv中,以保證足夠的參數(shù)量;在深度可分離卷積中,以保證更快的運算速度。
  • 結(jié)構(gòu)不同:DO-Conv是兩個緊挨著的線性運算,在推理時2個運算可以組合成一個傳統(tǒng)卷積 ;深度可分離卷積的depthwise卷積和卷積之間一般有非線性激活函數(shù)。

3.DO-DConv和DO-GConv

不僅僅可以使用DO-Conv代替?zhèn)鹘y(tǒng)的卷積以加快收斂速度、提高網(wǎng)絡(luò)性能,也可以在depthwise卷積中使用同樣的操作,構(gòu)成DO-DConv,如下圖所示:


從上圖中可以看出,與DO-Conv類似,DO-DConv也可以通過兩種方式計算得到
同樣地,在訓(xùn)練階段得到權(quán)重和權(quán)重;在推理階段,將和合并為1個權(quán)重。
此外,可以使用同樣的策略,將group卷積替換為DO-GConv,此處不再贅述。

4.在視覺任務(wù)中使用Depthwise over-parameterized卷積

4.1 DO-Conv的使用技巧

  • 當(dāng)傳統(tǒng)卷積的卷積核尺寸為時,不要將其替換為DO-Conv;
  • 一般情況下可以令,此時DO-Conv中的權(quán)重與原來傳統(tǒng)卷積中的權(quán)重尺寸相同,權(quán)重是一個方陣;
  • 使用恒等矩陣初始化,此時,使得包含DO-Conv的網(wǎng)絡(luò)也能夠使用pretrained的權(quán)重;
  • 在實際使用時,通常優(yōu)化,且使用0矩陣初始化,以防止正則項對中對角線元素的過度壓制。

4.2 DO-Conv對計算機(jī)視覺任務(wù)的性能提升效果

  • 圖像分類

在CIFAR-10和CIFAR-100數(shù)據(jù)集上,測試ResNet-v1、ResNet-v2和Plain(將ResNet-v1中的短接去除)3個網(wǎng)絡(luò)以及使用DO-Conv替換其中傳統(tǒng)卷積的網(wǎng)絡(luò),不改變其他超參數(shù),Top1分類正確率如下圖所示:

在ImageNet數(shù)據(jù)集上,測試Plane、ResNet-v1、ResNet-v1b和ResNet-v2這4個網(wǎng)絡(luò)以及使用DO-Conv替換其中傳統(tǒng)卷積的網(wǎng)絡(luò),Top1分類正確率如下圖所示:

使用DO-DConv和DO-GConv分別替換MobileNet和ResNeXt中的深度分離卷積和group卷積,在ImageNet數(shù)據(jù)集上的Top1分類正確率如下圖所示:

  • 語義分割

使用ResNet-50和ResNet-100作為Deeplabv3的backbone,分別用于Cityscapes和PASCAL VOC這2個數(shù)據(jù)集,作者測試了只將Segmentation head的傳統(tǒng)卷積替換為DO-Conv和將整個網(wǎng)絡(luò)中的傳統(tǒng)卷積替換為DO-Conv這2種情況,測試結(jié)果如下圖所示:

  • 目標(biāo)檢測

在COCO數(shù)據(jù)集上使用backbone為ResNet-50的Faster R-CNN,作者測試了只將Detection head中的傳統(tǒng)卷積替換為DO-Conv和將整個網(wǎng)絡(luò)中的傳統(tǒng)卷積替換為DO-Conv這2種情況,測試結(jié)果如下圖所示:

從上面多個結(jié)果可看出,使用DO-Conv替代傳統(tǒng)卷積,能提升CNN在多種視覺任務(wù)中的性能。需要特別指出的是,上述實驗過程中并未針對DO-Conv改變超參數(shù)。

4.3 使用Depthwise over-parameterized卷積加速訓(xùn)練過程

為了對比使用DO-Conv與否對訓(xùn)練過程的影響,作者使用了不同深度的ResNet-v1b,在ImageNet數(shù)據(jù)集上訓(xùn)練,記錄下訓(xùn)練過程中網(wǎng)絡(luò)在訓(xùn)練集和驗證集下的Top1錯誤率,如下圖所示:

從圖中可以看出,使用DO-Conv代替?zhèn)鹘y(tǒng)卷積,不僅收斂更快,而且能收斂到更低的錯誤率。

5.總結(jié)

  • 在傳統(tǒng)卷積操作中增加額外的參數(shù)形成DO-Conv,使用DO-Conv代替?zhèn)鹘y(tǒng)卷積能夠加快收斂速度,在不增加網(wǎng)絡(luò)推理計算量的前提下提高網(wǎng)絡(luò)性能;
  • 將DO-Conv拓展到DO-DConv和DO-GConv,拓寬其應(yīng)用范圍;
  • 通過實驗證明了DO-Conv在多種視覺任務(wù)中的性能提升。

總結(jié)

以上是生活随笔為你收集整理的DO-Conv 涨点模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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