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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DO-Conv 涨点模块

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

文章目錄

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

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.動機

CNN應用于計算機視覺領域的很多任務中,增加CNN中線性層—非線性層的數(shù)量,能夠增加網絡的表達能力,從而提高網絡的性能。

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

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

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

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

1.1 傳統(tǒng)的卷積

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

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

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

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

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

1.2 Depthwise卷積

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

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

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

在上圖中,,,。

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

2.1 基本原理

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

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

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

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

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

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

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

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

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

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

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

2.2 DO-Conv的訓練與推理

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

在訓練包含DO-Conv的網絡時,兩種方法的前向計算的計算量如下圖所示,和分別表示feature map的高度和寬度。

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

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

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

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

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

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

3.DO-DConv和DO-GConv

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


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

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

4.1 DO-Conv的使用技巧

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

4.2 DO-Conv對計算機視覺任務的性能提升效果

  • 圖像分類

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

在ImageNet數(shù)據(jù)集上,測試Plane、ResNet-v1、ResNet-v1b和ResNet-v2這4個網絡以及使用DO-Conv替換其中傳統(tǒng)卷積的網絡,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和將整個網絡中的傳統(tǒng)卷積替換為DO-Conv這2種情況,測試結果如下圖所示:

  • 目標檢測

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

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

4.3 使用Depthwise over-parameterized卷積加速訓練過程

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

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

5.總結

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。