• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于改進深度殘差網(wǎng)絡的圖像分類算法

      2021-04-09 03:10:26儲岳中汪佳慶張學鋒
      電子科技大學學報 2021年2期
      關鍵詞:升維瓶頸殘差

      儲岳中,汪佳慶,張學鋒,劉 恒

      (1. 安徽工業(yè)大學計算機科學與技術學院 安徽 馬鞍山 243032;2. 安徽省工業(yè)互聯(lián)網(wǎng)智能應用與安全工程實驗室 安徽 馬鞍山 243023)

      自從深度殘差網(wǎng)絡ResNet 被提出來并在ILSVRC2015 比賽中取得冠軍后,許多研究者把目光放在了ResNet 的改進工作上,由此出現(xiàn)了一大批優(yōu)秀的基于殘差結構的卷積神經(jīng)網(wǎng)絡。目前為止改進大體上可分為4 類:1)是對輸入模塊的數(shù)據(jù)進行split-transform-merge 操作,例如使用分組卷積的ResNext[1]和使用層級殘差結構的Res2Net[2],它們能在降低消耗的同時增加網(wǎng)絡的精度。2)在殘差結構里引入注意力機制,例如加入通道自注意力機制的SENet[3]、加入多尺度自適應調節(jié)感受的SKnet[4]、使用分組注意力機制的ResNeSt[5]。注意力機制的使用可以讓網(wǎng)絡有偏向地選擇重要的特征圖進行特征提取,從而提高精度。3)優(yōu)化模塊拓撲結構,例如使用預先激活方式的ResNetV2[6],使網(wǎng)絡易于優(yōu)化并提高模型的正則化,以及每個stage 采用不同模塊來優(yōu)化拓撲結構的IResNet[7],加強了信息在網(wǎng)絡間的傳播,減少了信息損失。4)對殘差網(wǎng)絡整體進行優(yōu)化,例如提出讓網(wǎng)絡變得更寬的WRN[8]和建立密集連接從而緩解梯度消失、加強特征傳播的DenseNet[9]。

      上述網(wǎng)絡大部分都是在ResNet 的瓶頸結構基礎上進行改進的。瓶頸結構由一條主干和一條殘差支路組成,主干上數(shù)據(jù)先由1×1 點卷積進行降維,再經(jīng)過3×3 卷積塊進行特征提取,最后由1×1 點卷積升維,卷積過程中還使用BN 操作進行歸一化以及Relu 函數(shù)增加非線性。先降維最后升維的操作大大降低了3×3 卷積所需的計算量。傳統(tǒng)的觀點認為影響準確率的主要是3×3 卷積核,所以多數(shù)工作都是對其進行改進,而選擇保留降維升維的1×1卷積核。瓶頸結構比較簡單,但網(wǎng)絡結構上也存在冗余,因此后面出現(xiàn)的殘差網(wǎng)絡如ResNext 才能在不過多增加計算量的前提下提高準確率。冗余的產(chǎn)生主要來自升維操作時生成的過多的類似特征圖[10]。傳統(tǒng)的改進方法偏向于增加升維時輸入數(shù)據(jù)的特征圖數(shù)量[8]以及復雜性[1-2,4]。這兩種操作都能有效減少瓶頸結構輸出信息的冗余。但考慮到冗余性還和分類任務的類別數(shù)有關,類別數(shù)越大,需要的有效特征圖數(shù)量也就越多。在面對如10 分類這樣的分類任務時,傳統(tǒng)的瓶頸結構及其改進還是不可避免地產(chǎn)生過多的冗余特征圖。這些冗余雖然保證了網(wǎng)絡對輸入信息的充分理解,但過多的冗余信息會導致計算資源的浪費。

      針對這個問題,本文對瓶頸結構里的升維操作進行了改進。利用殘差結構建立了升維操作輸入和輸出之間的通路,并使用連接操作代替殘差結構中的加法。由于用到了殘差結構和連接操作,把這個結構命名為RC。RC 結構不僅減少了升維操作的計算量和參數(shù)量,而且提高了反向傳播時的梯度傳遞,在面對分類數(shù)較少的任務時能夠有效提升網(wǎng)絡精度。由于RC 結構能和很多殘差網(wǎng)絡相結合,在多個數(shù)據(jù)集上進行了多組對比實驗,結果顯示基于RC 的瓶頸結構在面對分類數(shù)較少的任務時,效率和精度都有所提升。

      1 研究方法

      1.1 冗余性分析

      圖1a 為ResNet 原文[11]中提出的一個瓶頸結構案例。輸入數(shù)據(jù)的特征圖通道數(shù)為256,經(jīng)過降維、特征提取后,升維復原成256 個通道,并與支路傳來的數(shù)據(jù)相加作為輸出。比起直接使用一個3×3 卷積核進行特征提取,這樣做無疑大大降低了運算量,但精度也會受到影響。圖1b 為保證輸入輸出特征通道數(shù)不變的情況下,只使用一個3×3 卷積核進行特征提取的情況。在cifar10 上做了個簡單的對比實驗,相關配置和實驗部分一致,實驗結果如表1 所示。ResNet#為將ResNet29 中的瓶頸結構替換為圖1b 時的情況,結果顯示使用瓶頸結構后計算量和參數(shù)量大大減少了(表格里M 為million,B為billion),但在SGD 和Adam 這兩種優(yōu)化器下,準確率都減少了2%~3%。

      圖1 瓶頸結構案例和未使用瓶頸結構案例

      表1 ResNet29 和ResNet#實驗對比

      在圖1 中,兩種模塊的輸出都是256 個通道,但實驗結果表明,圖1b 結構有著更好的特征表達能力,其輸出的特征圖所含信息更有效。圖1a 輸出的特征圖雖然也是256 個通道,但相較圖1b 的輸出特征圖存在一些冗余信息。設瓶頸結構中3×3卷積核輸出通道數(shù)為n,1×1 卷積核升維所產(chǎn)生的通道數(shù)為m,則存在一個比例s=m/n,s 越大代表特征圖通道數(shù)上升比例越大。文獻[7]設計了更寬的ResNet,即m 不變的情況下n 更大的ResNet網(wǎng)絡,實驗表明增加n 能有效增加ResNet 模塊的特征表達能力。反過來也能得到:ResNet 瓶頸結構中,m 不變的情況下,n 越小,s 越大,模塊的特征表達能力越弱,冗余性越高。因此與s=4 的ResNet 網(wǎng)絡不同,后面新出現(xiàn)的殘差網(wǎng)絡都選擇了較小的s 值。

      瓶頸結構的冗余性除了和s 值有關外,還和任務的類別數(shù)有關,以cifar10 和cifar100 為例,進行了3 組對比實驗,如表2 所示。k 為n 不變的情況下s 縮放的倍率,k 越小,瓶頸結構輸出的特征圖通道數(shù)m 就越少。從表中可以看出ResNet29(k=1)在cifar10 和cifar100 上準確率相差很大。100 分類相較10 分類,對網(wǎng)絡的精確度要求更高,本文認為,在其他條件不變的情況下,分類任務的類別數(shù)越大,維持精度所需的輸出特征圖就越多。而ResNet29 的網(wǎng)絡結構每層輸出的特征圖是固定的,所以它在10 分類問題上存在的冗余特征圖可能非常多。為了驗證這個猜想,對k={3/4, 1/2}的情況進行了測試。表2 顯示,在cifar10 上,k=1 和k=3/4 的結果十分相似,但k=3/4 時,瓶頸結構輸出特征圖的數(shù)量相較k=1 減少了25%,由此可見ResNet29 在cifar10 上存在相當多的冗余,而在cifar100 里k<1 時準確率明顯下降,這說明在處理分類數(shù)較多的任務時,特征圖的冗余性會有所降低,削減輸出特征圖的通道數(shù)會使得圖像特征表達不充分,從而影響最終的準確率。

      表2 不同 k 值的ResNet29 的對比實驗

      1.2 RC 結構

      上節(jié)分析了瓶頸結構冗余性產(chǎn)生的原因,消耗資源生成冗余的特征圖明顯是不合適的,為了盡量減少這種額外的消耗,設計了新的升維操作,即RC 結構。RC 結構如圖2 所示,把輸出 Y分為y和y′兩部分, y直接由x得到, y′由x經(jīng)過1×1 點卷積生成,最后把兩者連接起來作為輸出。

      圖2 基于RC 的瓶頸結構

      RC 降低了計算量和參數(shù),假設點卷積的輸入特征圖的大小為n×w×h,n 為通道數(shù),輸出特征圖的通道數(shù)為m。單樣本情況下傳統(tǒng)的升維操作運算量為:

      參數(shù)量為:

      RC 結構下的運算量為:

      參數(shù)量為:

      p′=n×(m-n)

      很明顯l >l′、p >p′,升維操作的消耗大大減少。

      RC 結構將x 直接與輸出連接起來,反向傳播時加強了這部分的梯度傳遞,這使得RC 結構在降低了消耗的同時還能增加網(wǎng)絡精度。

      1.3 RC 結構適用性分析

      雖然RC 模型輸出的通道沒有改變,但經(jīng)過1×1 點卷積生成的特征圖減少了,這有可能導致升維時輸入的信息沒有被完全表達。根據(jù)1.2 節(jié)的假設,傳統(tǒng)瓶頸結構的升維操作里,點卷積是權重形狀為[m,n,1,1]的張量,設其權重W=[w1,w2,···,wm],其中 wi是[n,1,1]的張量,則升維操作的運算可以簡略為:

      式中, W和 W′是隨著反向傳播而不斷變化的張量;W′′則是固定的,且(W′⊕W′′)與 W的形狀都是[m,n,1,1],因此(W′⊕W′′)是 W的一種部分權重固定不變的特殊情況。當瓶頸結構存在大量冗余時,通過W′輸出的較少數(shù)量的特征圖能夠充分表達輸入數(shù)據(jù)的特征,引入RC 結構后的瓶頸結構的特征表達能力就不會受到影響,但當瓶頸結構的冗余性較低時, W 比RC 結構里的W′⊕W′′有更多可以訓練的權重,具有更好的特征表達能力,于是就可能出現(xiàn)引入RC 結構后瓶頸結構的特征表達能力不如原來的情況。因此RC 結構更適合存在較多冗余信息的網(wǎng)絡,例如處理分類數(shù)較少的分類任務時。

      2 實驗與分析

      實驗部分首先進行了RC 結構關于反向傳播的測試,以驗證1.2 節(jié)的結論。而后分別在cifar10、cifar100 和TinyImageNet 這3 個數(shù)據(jù)集上進行了RC結構的功能性驗證,實驗選用的網(wǎng)絡為ResNet、WRN、ResNetV2、ResNext、SENet、Res2Net 和SKNet,最后將前面表現(xiàn)得優(yōu)秀的網(wǎng)絡在遙感影像數(shù)據(jù)集上進行測試以驗證其遷移性。

      2.1 RC 反向傳播測試

      為了驗證RC 結構對反向傳播的影響,在圖2的結構上做了些修改,如圖3 所示, x與一個單位陣E 相乘從而得到y(tǒng),由于y=x×E=x,所以圖3結構下的y與圖2 結構下的是一致的,但在訓練過程中利用代碼中斷y=x×E這一過程里的梯度傳遞,這種結構記為RC_S。

      圖3 中斷反向傳播的RC

      如表3 所示,由于ResNet 在10 分類問題上存在大量冗余,所以中斷了y 到x 梯度傳播的ResNet 29_RC_S 與ResNet29 訓練結果相似,但引入了梯度傳播后,ResNet29_RC 的準確率比改進前提高了1.28%。由此可見,直接將x 作為部分輸出能帶來精度提升,這也是后面實驗里引入RC 結構的殘差網(wǎng)絡能比原版表現(xiàn)更優(yōu)秀的原因。

      表3 RC 的反向傳播測試

      2.2 cifar 數(shù)據(jù)集實驗

      cifar 數(shù)據(jù)集包括cifar10 和cifar100,分別對應10 分類和100 分類任務。由于cifar 的圖片大小為32×32,所以本文選用ResNext29_32×4d 作為基礎框架,并在其基礎上搭建了需要測試的網(wǎng)絡。訓練批次為120,優(yōu)化器選取的是SGD,初始學習率為0.1,并且采用每隔30 輪學習率除以10 的調整策略,對于數(shù)據(jù)預處理,采用的是隨機裁剪、隨機反轉和標準化。對實驗結果采用的是去掉極小值后取平均值的統(tǒng)計方法,每個數(shù)據(jù)都是3 組及以上樣本的平均值。

      首先對 ResNet、 WRN、 ResNetV2(PreAct-ResNet)、ResNext、Res2Net、SKNet 和引入SE 結構的ResNet 進行測試,實驗結果如表4 所示。除了SKNet 外,其余殘差網(wǎng)絡引入RC 后的準確率在cifar10 上都有所增長。而在cifar100 上,Res2Net準確率降低了,一方面RC 結構在處理分類數(shù)較多的問題時會出現(xiàn)特征表達不完全的情況,另一方面Res2Net 引入的多尺度信息可能會和RC 結構產(chǎn)生一定沖突,如果這種沖突直接作用在Linear 層,會對分類產(chǎn)生較大影響。于是將Res2Net29_RC 的最后一個瓶頸結構替換為原來的結構,為了方便描述,這種針對Res2Net 的改進記為RC_res2。結果顯示,Res2Net_RC_res2 在cifar10 的準確率有了進一步提升,而且在cifar100 上也超過了原版。

      表4 cifar 數(shù)據(jù)集的實驗

      除了Res2Net 外,也對SEResNet 做出了特殊改進,如圖4 所示。RC 結構之所以能提高準確率,是因為將輸入升維操作的數(shù)據(jù)直接作為輸出的一部分,從而加強了這部分的梯度傳遞。而在與SELayer 結合的時候, y參與了自注意力機制的情況下可能會影響到其梯度傳遞,所以設計了圖4b的結構。為方便區(qū)分,這種結構記為RC_se。表4 顯示,在cifar 數(shù)據(jù)集上,SEResNet29_RC_se 的準確率和效率比SEResNet29_RC 與SEResNet29 更加出色。

      圖4 針對SEResNet 做出的特殊改進

      此外,對于SKNet 與RC 結合的失敗,本文也做出了各種改進,但準確率都達不到原版的效果,引入RC 結構后,SKNet 的特征表達能力受到很大的負面影響。SKNet 較小的s 值(SKNet 瓶頸結構的s=2)是影響因素之一,根據(jù)1.1 節(jié)的分析,越大的s 值代表網(wǎng)絡的冗余性越多,與RC 結構的結合效果就越好。本文嘗試增大SKNet 的s 值,發(fā)現(xiàn)s 值增大時,RC 結構起到了提高準確率的作用,這說明SKNet 也是遵行“冗余性越高,與RC 結構結合效果越好”這一結論。因此SKNet 與RC 結構結合失敗的原因目前只能歸結為:SKNet 瓶頸結構的輸出特征圖冗余性較低,加入RC 結構后會影響其特征表達能力。

      2.3 TinyImageNet 實驗

      TinyImageNet 是200 類的ImageNet 子集,圖片大小為64×64,本文以ResNet50 作為基礎,搭建需要測試的網(wǎng)絡,訓練相關設置和cifar 保持一致。訓練結果如表5 所示。正如1.3 節(jié)分析的,RC結構不適合分類數(shù)較大的任務,在2.2 節(jié)cifar100的實驗里也出現(xiàn)Res2Net-RC 的準確率有所下降的情況,而在200 類的TinyImageNet 里,這一特性更加明顯,除了SEResNet50 外,其余網(wǎng)絡的準確率都出現(xiàn)了小幅下降。所以RC 結構并不適合處理分類數(shù)較多的任務,且不同殘差網(wǎng)絡對應的分類數(shù)臨界值也會有所不同,需要根據(jù)具體情況判斷是否使用RC 結構。

      2.4 更多的數(shù)據(jù)集

      為了驗證RC 結構的有效性,針對遙感影像數(shù)據(jù)做了額外的實驗,數(shù)據(jù)集選用了12 分類的SIRIWHU Dataset[12]與21 分類的UC Merced Land-Use DataSet[13],采用4∶1 的比例劃分為訓練集和測試集。與前面實驗不同的是,采用Adam 作為訓練優(yōu)化器,學習率初始值為0.001,每隔30 個批次除以2,訓練120 個批次,選用ResNet50 為基礎網(wǎng)絡,實驗結果如表6 所示。SIRI-WHU Dataset的圖片大小為224×224,UC Merced Land-Use DataSet的圖片大小為256×256,面對圖片大小在200 以上的數(shù)據(jù)集時,RC 在ResNetV2(PreActResNet)上表現(xiàn)得并不理想,但在其他網(wǎng)絡上都有一定的提升。

      表5 TinyImageNet 的實驗

      表6 遙感影像數(shù)據(jù)集的實驗

      3 結 束 語

      本文分析了殘差網(wǎng)絡的冗余性,針對瓶頸結構進行了改進,使用RC 代替原來的升維操作。RC使用殘差結構和連接操作,降低了升維操作的計算量和參數(shù)量,并增強了梯度傳播。利用cifar 數(shù)據(jù)集和tinyImagenet 數(shù)據(jù)集在多種殘差網(wǎng)絡上進行了測試,驗證了RC 在較少類別分類任務上的有效性。最后還在遙感影像識別領域做了額外的實驗。本文的實驗部分也存在一些問題沒有得到解答,例如在SKNet 上直接套用RC 結構并沒有發(fā)揮出理想的效果,根本原因是什么?能不能做出有效改進?兩個瓶頸結構之間的升維降維操作是否存在冗余計算,可否進一步降低計算量等。RC 結構還有值得挖掘的地方,期待未來的研究能完善它。

      猜你喜歡
      升維瓶頸殘差
      專家談:講好中國品牌故事 推動品牌價值升維
      中國石化(2022年5期)2022-06-10 06:38:54
      基于雙向GRU與殘差擬合的車輛跟馳建模
      讓美好生活更美好,保利發(fā)展的信心、堅守與升維
      基于殘差學習的自適應無人機目標跟蹤算法
      主動安全“升維”,護航數(shù)字經(jīng)濟
      基于遞歸殘差網(wǎng)絡的圖像超分辨率重建
      自動化學報(2019年6期)2019-07-23 01:18:32
      大江要津的“升維”圖譜
      當代黨員(2017年18期)2017-09-30 09:24:28
      突破霧霾治理的瓶頸
      突破瓶頸 實現(xiàn)多贏
      平穩(wěn)自相關過程的殘差累積和控制圖
      河南科技(2015年8期)2015-03-11 16:23:52
      澎湖县| 洪雅县| 延边| 崇礼县| 辽中县| 濮阳县| 镇平县| 措勤县| 塘沽区| 嵊州市| 泌阳县| 阿坝县| 贵港市| 时尚| 滦平县| 工布江达县| 利津县| 宁阳县| 东阿县| 霍山县| 永安市| 如东县| 通河县| 重庆市| 青冈县| 宁明县| 漳平市| 山东省| 江北区| 南和县| 崇信县| 佳木斯市| 怀宁县| 南丰县| 广东省| 稷山县| 衡南县| 准格尔旗| 金昌市| 仁寿县| 泾阳县|