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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

图像分类:常用分类网络结构(附论文下载)

發布時間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像分类:常用分类网络结构(附论文下载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首發于極市平臺微信號:圖像分類:常用分類網絡結構(附論文下載)
作者:TeddyZhang
如有興趣可以**點擊加入極市CV專業微信群**,獲取更多高質量干貨

本文整理了一般常用的圖像特征提取網絡,下圖是筆者整理的近年來圖像分類網絡的論文以及所在期刊,在極市平臺公眾號(id:extrememart)后臺回復“圖像分類”即可獲取下載鏈接。


下面來介紹幾種常用于分類問題的DNN,以及各自的特點,提取特征的新思路!對于以后做研究或者分類任務有很大的用處!本文篇幅較長,建議收藏閱讀~


(一)VGG Net、ResNet、ResNeXt、DenseNET、SE-Net


VGG Net (ICLR2015)


在VGG Net中,作者探討了7x7的卷積核和3x3的卷積核的區別?那么我們使用3x3的卷積核,得到了什么呢?第一,利用三個非線性的激活層來代替一個,可以增加網絡的鑒別能力,第二,單個7x7卷積核的參數量為,而三個級聯的3x3卷積核參數量為, 參數量減少了大約81%。Model C中的1x1的卷積核也是一種增加非線性而不改變感受野的方法,額外增加非線性的方法就是激活函數,由于VGG有16層和19層,已經屬于深層神經網絡了,所以其參數量很大,130多兆了!


ResNet (CVPR2016)

ResNet由何凱明等人提出,為了去構建更加深的網絡而提出的。從歷屆ImageNet冠軍看出,神經網絡的層數是越來越多,那么更深的網絡其性能就更好么?實驗發現并不是這樣,當網絡層數過多后,會出現梯度消失的問題,從而網絡會飽和導致精度下降。

所以作者提出了一種跳過連接的方式來解決這個問題,也就是我們把輸入跨層連接到下一層,通過網絡的訓練讓其更加關注網絡之間的變化,即殘差。

對于輸入輸出維度一致的,我們可以直接使用H(x)=f(x)+x來進行連接,如果維度不一致,也就是進行降采樣的時候,會使用1x1的卷積核去調整維度以及feature map的大小!

最后的resnet的效果圖,非常的漂亮!


ResNeXt (CVPR2017)

之前的ResNet關注的更多的是網絡的深度,而同一時期的Inception系列關注更多的是網絡的寬度,所以ResNeXt也開始在網絡寬度上進行探索,并引入了一個cardinality的概念,主要利用的是分組卷積,什么是分組卷積呢?我們通過兩張圖片來感受一下:

我們可以明顯的看出,經過分組卷積后,參數量減少了,舉一個例子,假如一個卷積層輸入通道為256,輸出通道也為256,正常卷積的話,參數量為256x3x3x256。但是如果進行分組卷積且組數為8的話,那么每個組卷積的輸入和輸出通道均為32,共8組,那么參數量為8x32x3x3x32,參數量降低了8倍。然后將每個組的輸出進行concate,這樣可以增加卷積核之間的相關性,并防止過擬合。當然這個分組處理的方式還很多,不限于concate。

如上圖,最后一種為分組卷積的方式,前面兩種也是作者嘗試的兩種結構。一般我們設置cardinality C=32, d=4,那么參數量為:

大約70k FLOPs

我們經常見的ResNeXt-101(32x4d)就是深度為101的上面的網絡結構。


DenseNet(CVPR 2017)


本篇論文從圖中可以看出,是對ResNet進行了改進,作者總結了一下近幾年的文章,在提高網絡性能方面要么網絡越深,要么網絡越寬,但作者使用了一個更為激進的特征重用策略,把ResNet的單層特征重用擴展到多層,但參數量更少。相比于ResNet,其有很多優點,比如多層直接連接加強了特征的傳遞,減輕了梯度消失的現象,減少了參數量!正是因為參數量的減少,其具有一定的防止過擬合的能力!

在ResNet中,一層的輸出直接與其輸入相加:


而,在DenseNet中,用concat的方式來替代相加的方式:

作者認為直接相加的方式會阻礙信息在網絡的流動,所以很簡單的實現就是將所有的feature map直接拼接。但這種直接的拼接方式會使得最后得到的featuremap通道數急劇增加,因此作者并沒有將這種方式應用到整個網絡,而是設計成Dense Block,整個網絡方式如下圖:

第一個圖中的growth rate也就是k,是指每個函數產生k個featuremap, 所以第 L 層就會有個feature map,所以相比于其他網絡,DenseNet可以擁有很窄的層,也就是說k可以很小,如12或者32。雖然每個卷積層只產生k個feature map, 但是由于多支路的跳過連接,因此輸入還是很多通道,如何解決呢?


1. Bottleneck Layers, 把每個卷積層設計成效率更高的形式,也就是先使用1x1的卷積核進行降維到4k的feature map,然后再送進3x3的卷積中,即BN-ReLU-Conv1x1-BN-ReLU-Conv3x3的結構,注意這是在DenseBlock內進行參數縮減,稱為DenseNet-B
2. Compression,在每個DenseBlock相連接的地方,即transition layers,加入一個DenseBlock輸出m個feature map,那么我們使用transition中的1x1卷積使其輸出為, 論文中,稱為DenseNet-C
3. DenseNet-BC為兩者操作均有的DenseNet



SE-Net (CVPR2018)

SE的全稱為Sequeeze-and-Excitation,SE block并不是一個完整的網絡結構,而是一個子模塊,可以嵌入到其他的分類或者檢測模型,其思想核心是通過網絡根據loss函數去學習特征權重,使得有效的feature map權重大,而無效的小一些,從而使得模型精度更高。


那么SE block是怎么去衡量featuremap的權重呢?其主要包括Squeeze和Excitation兩個部分,下面是其結構圖:

  • 操作:這個在與其他網絡結合時就是一個標準卷積操作而已,公式定義如下, 其中X為原張量,U為后的輸出,表示第c個卷積核。這就是一個單純的卷積操作!

  • 操作:為了解決利用信道依賴性的問題,我們考慮輸出特征的每一個通道,每個通道都有各自的局部感受野,但這些信息的相關性并不能被利用,為了解決這個問題,作者使用了一個global average pooling來生成每個通道的統計信息,公式如下:
  • 經過這個操作后,一個的張量就變成了


  • 操作:為了更好的利用上面操作產生的全局信息,我們必須遵守兩個標準,第一,他必須靈活,即在通道之間增加非線性。第二,要保證通道間的互斥關系,卷積核不可以重復了,因此進行兩次激活函數。


  • 操作:經過上一個操作后張量尺度為1x1xC,但原圖的尺寸為HxWxC,所以我們需要一個變換尺度的操作,作者的操作也很簡單,如下:

  • 可以看到,SE block還是十分強力的,厲害~~

    下圖為SE-resnet的結構示意圖:





    (二)輕量級網絡


    MobileNet (2017)

    本篇文章是關于網絡加速的問題,如何在保持精度的同時,使網絡的速度大大提升,從而可以達到速度和精度的tradeoff,其論文主要提出了一個深度可分離卷積的方式(Depthwise Separable Convolutions),可以大大降低參數量!

    假設我們使用的卷積核,輸入為的圖片,且輸出為,那么對于傳統卷積來說,其參數量為

    而對于可分離卷積來說,首先進行一個depthwise conv(逐通道)的操作,即分別對輸入圖像的每一個通道進行卷積,每個卷積核的輸出也是單通道,所以需要 M個 的卷積核,接著使用一個pointwise conv(逐像素)的操作,進行M通道的特征融合,并將通道數從M變為N,這個過程就需要N個的卷積核,其參數量為

    這樣的話,其參數量由原來的相乘變為相加,即降低參數量百分比為

    depthwise操作其實質就是一種G=輸入通道數的特殊分組卷積!!!

    對比傳統卷積,其網絡結構的變化為:

    MobileNet的網絡框架為:



    MobileNet V2 (CVPR2018)

    通過上面的講解,我們都知道了使用深度可分離卷積可以使得參數量大大降低,加入Kernel的大小為3x3,那么相比傳統卷積可以降低8到9倍的參數量!

    但是MobileNetV1的結構設計過于簡單,后續的很多網絡證明了復用特征的有效性,如ResNet和DenseNet, 所以在網絡結構上面有很大的改進性!1. 因此作者重新設計了一個Inverted Residual block并加入了跳過連接的方式。2. 使用了Linear Bottlenecks,作者在實驗中發現非線性激活層在低維空間容易改變輸入的數據結構,但Depthwise的操作正是低維空間,所以要去掉最后的非線性激活層,并在Depthwise前加入一個線性結構,保持模型的表達能力。


    下圖為ReLU函數在不同維度下的輸入,可以看到dim=2或3時變形很厲害。


    總的來說:如果manifold of interest經過ReLU激活后仍然非零,那么這就相當于一個線性操作,ReLU也是有能力保留全部的輸入空間的信息,但僅僅是輸入空間的低維子空間。


    根據上面的原因,作者建議通過插入Linear Block到卷積層,從而保留非線性的同時避免丟失太多的信息。因此MobileNet V2中的Block在卷積層中加入了Linear Block,然后還有跳過連接的方式。接著作者又探討了上圖C和D兩種結構的優劣性,也就是Linear Block放在那里的問題!下圖為實驗結果:

    實驗證明,加入Linear Block的有效性,并且C圖的結構形式優于D圖的結構形式,即


    ShuffleNet (2017)

    在講解這篇文章之前,我們首先回顧一下group convolution,它最早由AlexNet提出,當時是由于計算能力不足,然后在ResNeXt中,作者也使用了分組卷積的方式來降低參數量,并增加網絡的寬度,效果也很不錯!接著我們在說下depthwise convolution, 其在MoblileNet中得到了使用,作者想講這兩種操作相結合,以達到更低參數量的同時精度也能保持的目的。


    作者分析了下ResNeXt網絡,發現其GP Conv只用在了3x3的layer中,這樣就導致了一個殘差模塊中93.4%的計算量都在pointwise convolution, 對于一個比較小的網絡,為了降低這種操作的運算量,只能減少通道數,但有可能會導致精度下降,因此,作者提出:


    把GP Conv也應用到pointwise convolution, 也就是分組后的卷積核為單通道的卷積核!


    但這是就會出現一個問題,就是通道之間**某個通道輸出僅從一小部分輸入通道中導出,我們都知道MobileNet中的Pointwise就是為了融合通道間的信息的,**如下圖所示,這樣的屬性降低了通道組之間的信息流通,降低了信息表示能力。所以作者又設計了一個channel shuffle的結構,用于交換通道組之間的信息!

    channel shuffle具體實現:假設有gxn個通道,首先將其reshape成(g, n),然后再轉置為(n, g), 進行flatten操作,再分為g組作為下一層的輸入!


    但是有個問題,就是GP Conv的pointwise的操作是無法改變通道數的,那shufflenet的通道數在不同的Stage是如何增加的呢? 很簡單,Concat~~

    我們可以看到,ShuffleNet在每個Block也都是用了LinearBlock,即最后的輸出沒有ReLU, 然后利用了分組卷積,在Stride=2時,使用Concat操作將通道數增加為原來的2倍!


    網絡結構:

    模型參數量和精度比較:


    ShuffleNet V2(2018)

    這篇論文十分的精彩,基本上沒有任何的理論推導和解釋,而是通過大量實驗進而總結得到的結論,都是立足于實際,用實驗結果來說話!


    最終得到了設計輕量化網絡結構的四個準則:


    G1 : 當輸入、輸出channels數目相同時,conv計算所需的MAC(memory access cost)最為節省

    下面公式為MAC和FLOPS,也就是B之間的公式關系,其中

    從而其聯系為



    G2 : 過多的分組卷積會增加MAC


    對于1x1的分組卷積,其MAC和FLOPS的關系為:


    G3 : 網絡結構整體的碎片化會減少其可并行計算時間,但在ARM中效果并沒有那么好


    可以看出碎片化對GPU下的提升還是較為明顯的,而CPU并沒有明顯的提升


    G4 : Element-wise操作會消耗較多的時間, 也就是逐元素操作


    從表中第一行數據看出,當移除了ReLU和short-cut,大約提升了20%的速度!



    我們來回顧下ShuffleNet V1:

    在第一版中,應用了兩種技術:pointwise group convolution和bottlenect-like,接著使用了一個channel shuffle的模塊用來增加通道之間的交流性同時提高精度。那么根據我們上面提出的四個CNN高效化設計的準則,第一版有什么不足呢?


    首先它使用了bottleneck 1x1 group conv與module最后的1x1 group conv pointwise模塊,使得input channels數目與output channels數目差別較大,違反了G1和G2。其次由于它整體網絡結構中過多的group conv操作的使用從而違反了G3。最后類似于Residual模塊中的大量Element-wise sum的使用則進而違反了G4。因此作者在ShuffleNet V2中避免了這種操作!

    上圖就是ShuffleNet V1和V2的比較,前面兩個為第一版的結構圖,可以看出,第二版為了效率舍棄了原來的pointwise的分組卷積形式,改成普通卷積。為了避免BasicBlock中最后element-wise sum的操作,引入了channel split首先將通道分成兩半,進入兩個支路,最后使用Concat操作來代替原來的sum操作,既保持了通道數量的不變性又避免了element-wise的操作!太厲害了!進行Concat操作后,接著跟著一個channel shuffle的模塊,用于通道間的信息交流!


    在這里面3x3 Depthwise操作相當于線性操作,沒有加ReLU,這不同于MobileNet V2,其是1x1的pointwise操作中沒有ReLU,充當線性層!


    網絡結構

    在大模型上面的對比:

    以上為筆者整理的常用分類網絡結構,也歡迎大家留言補充,一起學習交流~~

    總結

    以上是生活随笔為你收集整理的图像分类:常用分类网络结构(附论文下载)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 奇米第四色影视 | 欧美性一级 | www.av在线播放 | 亚洲无卡| 少妇人妻偷人精品无码视频新浪 | 久久香蕉网站 | 青春草网站| 色福利网 | 在线国产精品一区 | 操操操视频 | 日韩免费网 | 丁香花电影高清在线阅读免费 | 美女主播在线观看 | 中日韩精品一区二区三区 | 亚洲a人 | hitomi一区二区三区精品 | 成人黄色av | 亚洲黄色成人网 | 动漫女被黄漫免费视频 | 韩国av免费观看 | 日本黄色a视频 | 国产又白又嫩又爽又黄 | 野花视频在线观看免费 | 九一福利视频 | 亚洲欧美日韩系列 | 琪琪色在线观看 | 韩国成人在线视频 | 免费在线色视频 | 91干网 | 黄色一区二区三区 | 免费在线观看av | 911av| 国内精品人妻无码久久久影院蜜桃 | 夜夜爽天天爽 | 大地资源影视在线播放观看高清视频 | 国产亚洲AV无码成人网站在线 | 国产一区一区 | 手机看片久久 | 久久国产精品精品国产 | 我爱avav色aⅴ爱avav | 国产精品久久久影院 | 91在线观看 | 日本视频色 | 精品一区二区久久久 | 男人的天堂在线播放 | 成人高清视频在线观看 | 国模吧一区二区三区 | 激情五月婷婷丁香 | 国产精品丝袜黑色高跟鞋的设计特点 | 国产精品亚洲一区二区三区在线观看 | 高跟鞋和丝袜猛烈xxxxxx | 欧美成人午夜剧场 | xxx国产 | 欧美人体视频一区二区三区 | 日本三级免费 | 美女少妇毛片 | 亚洲色图偷拍 | 欧美一级黄 | 黄色污小说 | 国产欧美久久久精品免费 | 欧美性猛交xxxx免费看久久久 | 3d成人动漫在线观看 | 中文字幕23 | 丁香激情六月 | 不卡视频一区 | 毛片内射 | www.青青操 | 日韩欧美理论 | 色诱av| 日韩中文字幕在线不卡 | 亚洲高h| 日韩高清黄色 | 色屁屁影院www国产高清麻豆 | 搞黄网站在线观看 | 黄色成人免费观看 | 久久综合国产精品 | a级一级黄色片 | 大j8黑人w巨大888a片 | 亚洲经典一区二区三区 | 四虎免看黄 | 午夜影院入口 | 精品一区二区三区免费观看 | 国产乱子伦一区二区 | 337p粉嫩大胆噜噜噜亚瑟影院 | 久久sese| 青青久操 | 日韩精品一区二区三区丰满 | 免费成人av在线播放 | 国产精品一区二区三区在线免费观看 | 精品视频无码一区二区三区 | 亚洲福利社 | 香蕉视频啪啪 | 午夜av网 | 性欧美色图| 亚洲熟妇丰满大屁股熟妇 | 免费在线观看黄色片 | 狠狠鲁视频 | 色哟哟国产精品 | 一本色道久久综合无码人妻 |