深度學習之卷積神經網絡 ResNet

論文 Identity Mappings in Deep Residual Networks

2015年,ResNet(Residual Neural Network)由微軟研究院的Kaiming He等四名華人提出,并在ILSVRC2015比賽中取得冠軍,在top5上的錯誤率為3.57%,同時參數量比VGGNet低,效果非常突出。目前常用的有Res18、Res50、Res101。

VGG網絡試著探尋了一下深度學習網絡的深度究竟可以深到什么程度還能持續地提高分類準確率。我們的一般印象當中,深度學習愈是深(復雜,參數多)愈是有著更強的表達能力。憑著這一基本準則CNN分類網絡自Alexnet的7層發展到了VGG的16乃至19層,后來更有了Googlenet的22層。可后來發現深度CNN網絡達到一定深度后再一味地增加層數并不能帶來進一步地分類性能提高,反而會招致網絡收斂變得更慢,test dataset的分類準確率也變得更差。排除數據集過小帶來的模型過擬合等問題后,我們發現過深的網絡仍然還會使分類準確度下降(相對于較淺些的網絡而言)。也就是說網絡出現了退化。
在這里插入圖片描述
ResNets要解決的是深度神經網絡的“退化”問題。什么是“退化”?

我們知道,對淺層網絡逐漸疊加layers,模型在訓練集和測試集上的性能會變好,因為模型復雜度更高了,表達能力更強了,可以對潛在的映射關系擬合得更好。而“退化”指的是,給網絡疊加更多的層后,性能卻快速下降的情況。

訓練集上的性能下降,可以排除過擬合,BN層的引入也基本解決了plain net的梯度消失和梯度爆炸問題。如果不是過擬合以及梯度消失導致的,那原因是什么?

按道理,給網絡疊加更多層,淺層網絡的解空間是包含在深層網絡的解空間中的,深層網絡的解空間至少存在不差于淺層網絡的解,因為只需將增加的層變成恒等映射,其他層的權重原封不動copy淺層網絡,就可以獲得與淺層網絡同樣的性能。更好的解明明存在,為什么找不到?找到的反而是更差的解?

顯然,這是個優化問題,反映出結構相似的模型,其優化難度是不一樣的,且難度的增長并不是線性的,越深的模型越難以優化。

有兩種解決思路,一種是調整求解方法,比如更好的初始化、更好的梯度下降算法等;另一種是調整模型結構,讓模型更易于優化——改變模型結構實際上是改變了error surface的形態。

ResNet的作者從后者入手,探求更好的模型結構。將堆疊的幾層layer稱之為一個block,對于某個block,其可以擬合的函數為 F(x)F(x)F(x),如果期望的潛在映射為H(x)H(x)H(x),與其讓F(x)F(x)F(x) 直接學習潛在的映射,不如去學習殘差H(x)?xH(x)?xH(x)?x,即F(x):=H(x)?xF(x):=H(x)?xF(x):=H(x)?x,這樣原本的前向路徑上就變成了F(x)+xF(x)+xF(x)+x,用F(x)+xF(x)+xF(x)+x來擬合H(x)H(x)H(x)。作者認為這樣可能更易于優化,因為相比于讓F(x)F(x)F(x)學習成恒等映射,讓F(x)F(x)F(x)學習成0要更加容易——后者通過L2正則就可以輕松實現。這樣,對于冗余的block,只需F(x)→0F(x)→0F(x)0就可以得到恒等映射,性能不減。

下面的問題就變成了 F(x)+xF(x)+xF(x)+x 該怎么設計了。

Residual Block的設計

F(x)+xF(x)+xF(x)+x 構成的block稱之為Residual Block,即殘差塊,如下圖所示,多個相似的Residual Block串聯構成ResNet。

一個殘差塊有2條路徑 F(x)F(x)F(x)xxxF(x)F(x)F(x) 路徑擬合殘差,不妨稱之為殘差路徑,x路徑為 identity mapping 恒等映射,稱之為 ”shortcut” 。圖中的 ⊕ 為 element-wise addition,要求參與運算的F(x)F(x)F(x)xxx的尺寸要相同。所以,隨之而來的問題是,

  • 殘差路徑如何設計?
  • shortcut路徑如何設計?
  • Residual Block之間怎么連接?

在原論文中,殘差路徑可以大致分成2種,一種有 bottleneck 結構,即下圖右中的1×1 卷積層,用于先降維再升維,主要出于降低計算復雜度的現實考慮,稱之為“bottleneck block”,另一種沒有bottleneck結構,如下圖左所示,稱之為“basic block”。basic block由2個3×3卷積層構成,bottleneck block由1×1

在這里插入圖片描述
shortcut 路徑大致也可以分成2種,取決于殘差路徑是否改變了feature map數量和尺寸,一種是將輸入x原封不動地輸出,另一種則需要經過1×1卷積來升維 or/and 降采樣,主要作用是將輸出與F(x)路徑的輸出保持shape一致,對網絡性能的提升并不明顯,兩種結構如下圖所示,
在這里插入圖片描述
至于Residual Block之間的銜接,在原論文中,F(x)+xF(x)+xF(x)+x 經過ReLU后直接作為下一個block的輸入x。對于F(x)路徑、shortcut路徑以及block之間的銜接,在文中有更進一步的研究。

下圖中實線的Connection部分(“第一個粉色矩形和第三個粉色矩形”)都是3?3?643*3*643?3?64 的特征圖,他們的channel個數一致,所以采用計算方式:

y=F(x)+xy=F(x)+xy=F(x)+x

虛線的的Connection部分(”第一個綠色矩形和第三個綠色矩形“)分別是3?3?643*3*643?3?643?3?1283*3*1283?3?128的特征圖,他們的channel個數不同(64和128),所以采用計算方式:

y=F(x)+Wxy=F(x)+Wxy=F(x)+Wx

其中W是卷積操作,用來調整xxx的channel維度的
在這里插入圖片描述
在實際的實驗過程中,作者實驗了很多中不同的結構,如下圖所示,最后發現第一種是最好的。
在這里插入圖片描述
簡單理解一下,下圖中的左圖展開之后就是右圖,可以看出,殘差網絡的結果包含了網絡中各個節點*w。
在這里插入圖片描述

ResNet 網絡結構

ResNet 網絡參考了 VGG19 網絡,在其基礎上進行了修改,并通過短路機制加入了殘差單元,如下圖所示。ResNet 的一個重要設計原則是:當 feature map 大小降低一半時,feature map 的數量增加一倍,這保持了網絡層的復雜度。從下圖中可以看到,ResNet相比普通網絡每兩層間增加了短路機制,這就形成了殘差學習,其中虛線表示feature map數量發生了改變。下圖展示的34-layer的ResNet,還可以構建更深的網絡如表1所示。從表中可以看到,對于18-layer和34-layer的ResNet,其進行的兩層間的殘差學習,當網絡更深時,其進行的是三層間的殘差學習,三層卷積核分別是1x1,3x3和1x1,一個值得注意的是隱含層的 feature map 數量是比較小的,并且是輸出 feature map 數量的1/4。下面直觀看一下ResNet-34與34-layer plain net和VGG的對比,以及堆疊不同數量Residual Block得到的不同ResNet。
在這里插入圖片描述

在這里插入圖片描述
ResNet的設計有如下特點:

  • 與plain net相比,ResNet多了很多“旁路”,即shortcut路徑,其首尾圈出的layers構成一個Residual Block;
  • ResNet中,所有的Residual Block都沒有pooling層,降采樣是通過conv的stride實現的;分別在conv3_1、conv4_1和conv5_1 Residual Block,降采樣1倍,同時feature map數量增加1倍,如圖中虛線劃定的block;
  • 通過Average Pooling得到最終的特征,而不是通過全連接層;
  • 每個卷積層之后都緊接著BatchNorm layer,為了簡化,圖中并沒有標出;

ResNet結構非常容易修改和擴展,通過調整block內的channel數量以及堆疊的block數量,就可以很容易地調整網絡的寬度和深度,來得到不同表達能力的網絡,而不用過多地擔心網絡的“退化”問題,只要訓練數據足夠,逐步加深網絡,就可以獲得更好的性能表現。下面為網絡的性能對比
在這里插入圖片描述

作者對比18-layer和34-layer的網絡效果,如下圖所示。可以看到普通的網絡出現退化現象,但是ResNet很好的解決了退化問題。
在這里插入圖片描述
最后展示一下ResNet網絡與其他網絡在ImageNet上的對比結果,如下表所示。可以看到ResNet-152其誤差降到了4.49%,當采用集成模型后,誤差可以降到3.57%。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453776.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

按照RFC3984協議實現H264視頻流媒體 RTSP H264

轉自:http://topic.csdn.net/u/20100104/16/0fd992e8-b0a6-4c2b-85a4-d9513d3b1491.html 相信有不少人和我一樣,希望實現H264格式視頻的流媒體播放。但是對于一個新手來說,往往不知道從何入手。利用百度,GOOGLE等搜索資料真是沙里…

搭建SSM框架之Spring

作為一枚大四準備畢業的學生,最重要的事便是畢業設計,前些日子剛剛拿到畢設題目:“3D網絡圖:面向網絡結構數據的可視化軟件設計”,(⊙o⊙)…,怎么說哪,看到題目就是一頭霧水(前幾屆不…

audio unity 加速_淺談Unity中Android、iOS音頻延遲

在Unity上面做音游,當在移動端實機運行起來,會發現,音頻的發出會有一定的延遲,無論是長音效還是短音效,Unity內置的Audio內部使用的是FMOD,有以下手段改善通過設置稍微改善其延遲的問題Edit → Project Set…

深度學習之 hard negative mining (難例挖掘)

Hard Negative Mining Method 思想 hard是困難樣本,negative是負樣本,hard negative就是說在對負樣本分類時候,loss比較大(label與prediction相差較大)的那些樣本,也可以說是容易將負樣本看成正樣本的那些…

單列表_使用Excel中的quot;記錄單quot;功能快速錄入數據

在Excel中進行數據錄入的時候,平常都是一行一行地錄入數據,但是有時候在單元格之間,行與行,列與列之間頻繁地切換去錄入數據,費事費力還容易出錯。今天給你推薦一個既好用又有效率的Excel中的隱藏功能——“記錄單”。…

CentOS 6.9下的Setup工具(用于管理服務/防火墻/網絡配置/驗證服務)

說明:Setup工具套件好像是CentOS下特有的用于管理服務/防火墻/網絡配置等,其實就是基于命令行模式界面的GUI工具。唯一特點就是方便。 安裝: #安裝Setup命令工具 yum -y install setuptool #安裝Setup工具配套的系統服務組件 yum -y insta…

wireshark解析rtp協議,流媒體中的AMR/H263/H264包的方法

原文教程:http://hi.baidu.com/zjxiaoyu3/blog/item/22f9f18f32b45de5f11f3670.html 抓到完整的流媒體包之后,用wireshark打開,其中的包可能不會自動映射成RTP+AMR/H263/H264的包,做如下修改操作…

深度學習之非極大值抑制(Non-maximum suppression,NMS)

非極大值抑制(Non-maximum suppression,NMS)是一種去除非極大值的算法,常用于計算機視覺中的邊緣檢測、物體識別等。 算法流程 給出一張圖片和上面許多物體檢測的候選框(即每個框可能都代表某種物體)&…

148. 顏色分類

給定一個包含紅,白,藍且長度為 n 的數組,將數組元素進行分類使相同顏色的元素相鄰,并按照紅、白、藍的順序進行排序。 我們可以使用整數 0,1 和 2 分別代表紅,白,藍。 注意事項 不能使用代碼庫中…

vue項目token放在哪里_關于vue動態菜單的那點事

vue-element-admin4.0國內節點訪問地址:https://panjiachen.gitee.io/vue-element-admin-site/zh/本此使用的是https://github.com/PanJiaChen/vue-element-admin/tree/i18n 國際化分支的版本。說是除了國際化其他都一樣。本文主要介紹前臺動態的使用資源權限。后臺…

H264學習方法歷程資料

我的H.264學習歷程 半年前,我知道了H.264這個名詞。那個時候決定學習H.264,可是我連資料都不知道如何收集。而且整個學校就只有我一個人在學習H.264, 找不到人交流,所以那個時候學得真的是舉步維艱,很痛苦&#xff0c…

深度學習之 ROI Pooling

什么是ROI? ROI是 Region of interest 的簡寫,指的是 Faster R-CNN 結構中,經過 RPN 層后,產生的 proposal 對應的 box 框。 ROI Pooling 顧名思義,是 pooling 層的一種,而且是針對 ROIs 的 pooling。整個…

KD樹小結

很久之前我就想過怎么快速在二維平面上查找一個區域的信息,思考許久無果,只能想到幾種優秀一點的暴力。 KD樹就是干上面那件事的。 別的不多說,趕緊把自己的理解寫下來,免得涼了。 KD樹的組成 以維護k維空間(x,y,……)內的KD樹為例…

多元函數求極值中的a_多元函數的條件極值和拉格朗日乘數法

、條件極值、拉格朗日乘數法1. 轉化為無條件極值在討論多元函數極值問題時,如果遇到除了在定義域中尋求駐點(可能的極值點)外,對自變量再無別的限制條件,我們稱這類問題為函數的無條件極值。如求的極值,就是無條件極值問題。然而在…

深度學習之 RPN(RegionProposal Network)- 區域候選網絡

anchor boxes基本概念與作用: feature map 上的一個點可以映射回輸入圖片上的一個點,以特征圖上這個點為中心,預先人為設定 k 個 boxes,這些 boxes 就稱為在這個點上生成的 k 個 anchor boxes(所有anchor boxes的中心點坐標是一樣…

h264的碼率控制 JVT-G012

開始看h264的碼率控制,很多地方都提到 G012,拿來做為參考比較,看來很有必要研究清楚。 偶這人,E文文檔不翻譯的話,看過就忘了,于是草草翻譯了下,因為不打算做B幀,也不準備在同一幀中…

Android RecyclerView嵌套EditView實時更新Item數據

一、場景(例如:購物車) 1、當我們需要以列表樣式管理某些數據時,可能需要列表項的某個字段可編輯 2、編輯Item上的某個字段后可能還要更新相關字段的值 二、可能遇到的問題 1、列表滑動導致輸入框中的數據錯位(或者焦點…

workbench拓撲優化教程_優化技術在水泵水力設計的應用(上篇)

文章來源:安世亞太官方訂閱號(搜索:Peraglobal)CFD技術在泵的內流數值模擬、研究泵內部流動規律和結構方面已廣泛應用,取得了很多成果。但是初步設計的產品如果通過CFD仿真得到的性能曲線不能滿足使用要求,…

深度學習之 TensorRT

1 簡介 TensorRT是一個高性能的深度學習推理(Inference)優化器,可以為深度學習應用提供低延遲、高吞吐率的部署推理。TensorRT可用于對超大規模數據中心、嵌入式平臺或自動駕駛平臺進行推理加速。TensorRT現已能支持TensorFlow、Caffe、Mxne…

H.264筆記

H.264標準寫得比較繁復,所以考慮在瀏覽完Whitepaper之后就開始研讀X264代碼。X264代碼風格還是比較清晰簡潔的。根據對標準得理解,Picture Order Count在Slice解碼的一開始就被提及:I0 B1 B2 P3 B4 B5 P6I0 P3 B1 B2 P6 B4 B5于是I0的POC是0&…