深度學習--ResNet殘差神經網絡解析

文章目錄

  • 前言
  • 一、什么是ResNet網絡
  • 二、傳統卷積神經網絡存在的問題
    • 1、梯度消失和梯度爆炸
    • 2、退化問題
  • 三、如何解決問題
  • 四、殘差結構
  • 五、18層殘差網絡
    • 1、解釋
    • 2、隔層相加優點
    • 3、隔層相加數值增大問題
  • 六、18層殘差網絡以外的表格示例
  • 七、BN層(Batch Normalization)
    • 1、定義以及操作原理:
    • 2、主要作用
  • 總結


前言

在ResNet之前,VGG、AlexNet等模型通過增加網絡深度提升性能,但人們發現:當網絡層數超過20層后,模型的訓練誤差和測試誤差反而會不降反升。這一現象被稱為“網絡退化”(Degradation),并非由過擬合導致,而是因為深層網絡難以優化。


一、什么是ResNet網絡

  • 2015年,微軟研究院的何愷明團隊提出了ResNet(Residual NeuralNetwork),這一模型以3.57%的Top-5錯誤率首次在ImageNet圖像識別競賽中超越人類水平,并成為深度學習歷史上的里程碑。ResNet的核心創新在于殘差學習(Residual Learning),通過引入“跳級連接”(Shortcut Connection)解決了深度網絡訓練中的梯度消失和網絡退化問題。
  • ResNet網絡與傳統的神經網絡的區別在于其獨特的殘差結構和批次歸一化處理,而這也是其最大的兩個特點。

二、傳統卷積神經網絡存在的問題

  • 卷積神經網絡都是通過卷積層和池化層的疊加組成的。
  • 在實際的試驗中發現,隨著卷積層和池化層的疊加,學習效果不會逐漸變好,反而出現2個問題:

1、梯度消失和梯度爆炸

  • 梯度消失:若每一層的誤差梯度小于1,反向傳播時,網絡越深,梯度越趨近于0
  • 梯度爆炸:若每一層的誤差梯度大于1,反向傳播時,網絡越深,梯度越來越大

2、退化問題

在這里插入圖片描述

  • 上圖表示即為當網路是20層和56層時的錯誤率,可以發現層數越多反而錯誤率更高

三、如何解決問題

  • 為了解決梯度消失或梯度爆炸問題,通過數據的預處理以及在網絡中使用 BN(Batch Normalization)層來解決。
  • 為了解決深層網絡中的退化問題,可以人為地讓神經網絡某些層跳過下一層神經元的連接,隔層相連,弱化每層之間的強聯系。這種神經網絡被稱為 殘差網絡 (ResNets)。
  • 在這里插入圖片描述

四、殘差結構

在這里插入圖片描述

  • 殘差結構(Residual Block)是ResNet(殘差網絡)的核心組成部分,解決深層神經網絡訓練中的退化問題。

  • 其主要特點是通過引入跳躍連接(SkipConnection)來實現殘差學習,允許網絡學習輸入和輸出之間的殘差(即差異),而不是直接學習從輸入到輸出的映射。

  • 讓特征矩陣隔層相加,注意F(X)和X形狀要相同,

  • F(X)是經過兩次卷積層得到的結果,X是原始特征矩陣

  • 所謂相加是特征矩陣相同位置上的數字進行相加。

  • 相加之后的矩陣作為輸入,可以有效解決深層網絡退化問題,提高網絡的深度

五、18層殘差網絡

在這里插入圖片描述

1、解釋

上圖為18層的卷積神經網絡,現傳入圖片,圖片格式為3 * 244 * 244,首先傳入到第一層卷積核,卷積核的大小為7 * 7,一共有64個小卷積核,移動步長為2,將圖片四周填充3層0值,將其處理完使圖片大小變為112 * 112,一共有64張,然后將這么多的特征圖進行最大池化,池化層大小為3 * 3,移動步長為2,填充1層,然后得到新的圖片格式為64 * 56 * 56,將這些特征圖再次傳入卷積神經網絡,不改變其大小,但是此時發生了改變,這64張大小為56*56的特征圖不僅傳入下列卷積層,同時又復制一份一樣的跳過下面的卷積層,然后再將經過兩層卷積層處理過的特征圖與沒有處理的特征圖相加得到新的特征圖,此時相加的為特征圖中每個像素點對應的數值,然后再一次進行剩余同樣的操作…最終對特征圖進行全局平均池化,即將每一張圖求一個平均值并輸出單個值,將這個值當做特征圖再次進行全連接,這個全連接有1000個神經元,即輸出1000個預測結果。

2、隔層相加優點

  • 通過將特征圖的數值隔層相加,可以讓信息從一層直接傳遞到另一層,而不受梯度消失的影響。這樣可以使得網絡更容易進行優化和訓練,減少了優化問題的復雜性。同時,殘差結構還能夠有效地學習到殘差的信息,即網絡輸出與輸入之間的差異,從而更好地捕捉到數據中的細微變化和特征。

  • 通過隔層相加的方式,殘差結構實現了"跳躍連接",使得信息可以直接從較淺的層次直達較深的層次,消除了信息的丟失和模糊化。這樣可以提高網絡的表達能力,更好地捕捉到輸入數據的變化特征,提高了網絡的性能和準確率。

3、隔層相加數值增大問題

  • 在殘差結構中,特征圖的數值隔層相加是在兩個或多個層的特征圖上進行的。這些特征圖經過卷積、激活函數等操作后,通常會引入縮放因子(scale factor)或者使用卷積核尺寸為1的卷積層進行調整,以確保兩個特征圖的通道數相同。

  • 此外,殘差結構中也會使用批歸一化(Batch Normalization, BN)層來進一步調整和穩定特征圖的數值。BN層通過對每個特征圖的通道進行歸一化,將其數值范圍限制在較小的范圍內,有助于避免數值的過大或過小。BN層還引入了可學習的參數,可以根據數據的分布調整特征圖的均值和方差,從而進一步提升網絡的性能和收斂速度。

六、18層殘差網絡以外的表格示例

  • 18層,34層,50層,101層,152層,及其結構
  • 每種結構及其對應的權重參數個數也在上圖表示為FLOPs
    在這里插入圖片描述

七、BN層(Batch Normalization)

1、定義以及操作原理:

  • BN(BatchNormalization)層在深度學習中被廣泛應用,其主要作用是對神經網絡的輸入進行歸一化,以加速網絡的訓練并提高模型的魯棒性和泛化能力。

在這里插入圖片描述

  • 如上圖所示,對每個傳入的圖片進行歸一化后,將其傳入卷積神經層進行處理后得到特征圖,然后再對這個特征圖進行歸一化處理,處理完再次進入卷積層處理,輸出的特征圖再次進行歸一化。

2、主要作用

  • 減輕內部協變量偏移:通過標準化每一層的輸入,使得其均值接近0,方差接近1,從而減少了層間輸入的變化,幫助模型更快地收斂。
  • 提高訓練速度:批次歸一化能夠使得更大的學習率得以使用,從而加速訓練。
  • 緩解梯度消失:通過規范化輸入,有助于保持激活值的穩定性,從而在一定程度上減輕了梯度消失現象。
  • 具有正則化效果:批次歸一化可以在某種程度上減少對其他正則化技術(如Dropout)的依賴,因為它引入了一定的噪聲。
  • 提高模型泛化能力:通過使訓練過程更加穩定,批次歸一化有助于提高模型在未見數據上的表現。

總結

ResNet通過殘差學習重新定義了深度神經網絡的訓練方式,解決了深度神經網絡的訓練難題,成為現代深度學習模型的基石。其設計哲學“讓網絡學習變化量而非絕對值”不僅提升了模型性能,更啟發了后續諸多架構創新,是深度學習發展史上的里程碑。

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

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

相關文章

【go】go run-gcflags常用參數歸納,go逃逸分析執行語句,go返回局部變量指針是安全的

go官方參考文檔&#xff1a; https://pkg.go.dev/cmd/compile 基本語法 go run 命令用來編譯并運行Go程序&#xff0c;-gcflags 后面可以跟一系列的編譯選項&#xff0c;多個選項之間用空格分隔。基本語法如下&#xff1a; go run -gcflags "<flags>" main.…

K8S探針的應用

目錄&#xff1a; 1、探針的簡介2、啟用探針2.1、啟用就緒探針2.2、啟用存活探針2.3、啟用啟動探針&#xff08;可選&#xff09; 1、探針的簡介 在Kubernetes中&#xff0c;探針&#xff08;Probes&#xff09;是用來檢查容器健康狀況的工具&#xff0c;它們幫助Kubernetes了…

體積小巧的 Word 轉 PDF 批量工具

軟件介紹 今天給大家介紹一款能批量把 Word 文檔轉換成 PDF 的實用小工具。 軟件特點 這款 Word 批量轉 PDF 軟件&#xff0c;身材小巧&#xff0c;體積不到 1M&#xff0c;還沒界面呢&#xff01;使用時&#xff0c;只要把軟件和要轉換的 Word 文檔放在一個文件夾&#xff…

JMeter介紹

文章目錄 1. JMeter簡介2. JMeter 下載3. JMeter修改編碼集4. 啟動并運行JMeter 1. JMeter簡介 JMeter 是 Apache 組織使用 Java 開發的一款測試工具&#xff1a; 1、可以用于對服務器、網絡或對象模擬巨大的負載 2、通過創建帶有斷言的腳本來驗證程序是否能返回期望的結果 優…

URP-UGUI相關知識

一、UGUI的基本組成部分 Canvas &#xff08;畫布&#xff09;所有UI都需要放在Canvas畫布下面&#xff0c;不然無法顯示EventSystem 所有的事件響應系統都需要依賴于EventSystem,若刪除該組件&#xff0c;交互效果就 不會顯示 1.Canvas(畫…

ShenNiusModularity項目源碼學習(20:ShenNius.Admin.Mvc項目分析-5)

ShenNiusModularity項目的系統管理模塊主要用于配置系統的用戶、角色、權限、基礎數據等信息&#xff0c;上篇文章中學習的日志列表頁面相對獨立&#xff0c;而后面幾個頁面之間存在依賴關系&#xff0c;如角色頁面依賴菜單頁面定義菜單列表以便配置角色的權限&#xff0c;用戶…

JavaFX 實戰:從零打造一個功能豐富的英文“劊子手”(Hangman)游戲

大家好&#xff01;今天我們要挑戰一個經典的單詞猜謎游戲——“劊子手”&#xff08;Hangman&#xff09;&#xff0c;并使用 JavaFX 這個強大的 GUI 工具包來賦予它現代化的交互體驗。這個項目不僅有趣&#xff0c;而且是學習和實踐 JavaFX 核心概念的絕佳途徑&#xff0c;涵…

【自我介紹前端界面分享】附源碼

我用夸克網盤分享了「800套HTML模板」&#xff0c;鏈接&#xff1a;https://pan.quark.cn/s/a205a794552c <!DOCTYPE HTML> <html> <head> <title>Miniport</title> <meta http-equiv"content-type" content&q…

安寶特分享|AR智能裝備賦能企業效率躍升

AR裝備開啟智能培訓新時代 在智能制造與數字化轉型浪潮下&#xff0c;傳統培訓體系正面臨深度重構。安寶特基于工業級AR智能終端打造的培訓系統&#xff0c;可助力企業構建智慧培訓新生態。 AR技術在不同領域的助力 01遠程指導方面 相較于傳統視頻教學的單向輸出模式&#x…

今日html筆記

原手寫筆記 ------------------------------------------------------------------------------------------------------- 關于超鏈接的使用 <a href"https://www.luogu.com.cn/" target"_blank">//href屬性指定了超鏈接的目標地址,即當用戶點擊超…

【人工智能】Ollama 負載均衡革命:多用戶大模型服務的高效調度與優化

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 在 多用戶大模型推理 場景下,負載均衡 是確保高并發、低延遲的關鍵挑戰。本文以 Ollama(一個流行的本地大模型運行框架)為例,深入探討 …

線上救急-AWS限頻

線上救急-AWS限頻 問題 在一個天氣炎熱的下午&#xff0c;我正喝著可口可樂&#xff0c;悠閑地看著Cursor生成代碼&#xff0c;忽然各大群聊中出現了加急?全體的消息&#xff0c;當時就心里一咯噔&#xff0c;點開一看&#xff0c;果然&#xff0c;線上服務出問題&#xff0…

Maven 項目中引入本地 JAR 包

在日常開發過程中&#xff0c;我們有時會遇到一些未上傳到 Maven 中央倉庫或公司私有倉庫的 JAR 包&#xff0c;比如第三方提供的 SDK 或自己編譯的庫。這時候&#xff0c;我們就需要將這些 JAR 包手動引入到 Maven 項目中。本文將介紹兩種常見方式&#xff1a;將 JAR 安裝到本…

解鎖webpack:對html、css、js及圖片資源的抽離打包處理

面試被問到webpack&#xff0c;可別只知道說 HtmlWebpackPlugin 了哇。 前期準備 安裝依賴 npm init -y npm install webpack webpack-cli --save-dev配置打包命令 // package.json {"scripts": {// ... 其他配置信息"build": "webpack --mode pr…

SpringBoot整合SSE,基于okhttp

一、引入依賴 <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version> </dependency> <dependency><groupId>com.squareup.okhttp3</groupId><…

【哈希表】1399. 統計最大組的數目

1399. 統計最大組的數目 - 力扣&#xff08;LeetCode&#xff09; 給你一個整數 n 。請你先求出從 1 到 n 的每個整數 10 進制表示下的數位和&#xff08;每一位上的數字相加&#xff09;&#xff0c;然后把數位和相等的數字放到同一個組中。 請你統計每個組中的數字數目&…

手動實現LinkedList

前言 大家好&#xff0c;我是Maybe。最近在學習數據結構中的鏈表&#xff0c;自己手動實現了一個LinkedList。我想與大家分享一下。 思維導圖 代碼部分 package Constant;public class constant {public static final String INDEX_IS_WRONG"輸入的下標不合法"; }p…

如何檢查瀏覽器是否啟用了WebGL2.0硬件加速

一:WebGL Inspector使用 打開 Chrome 或 Edge(推薦使用 Chromium 內核瀏覽器)。 安裝插件: ?? Spector.js on Chrome Web Store 安裝完成后,在瀏覽器工具欄看到綠色的 S 圖標 二:捕獲 WebGL 渲染幀 打開你要分析的 Web3D 網站(比如 https://3dviewer.net)。 點擊瀏…

“時間”,在數據處理中的真身——弼馬溫一般『無所不能』(DeepSeek)

電子表格時間處理真理&#xff1a;數值存儲最瘦身&#xff0c;真身闖關通四海。 筆記模板由python腳本于2025-04-23 22:25:59創建&#xff0c;本篇筆記適合喜歡在電子表格中探求時間格式的coder翻閱。 【學習的細節是歡悅的歷程】 博客的核心價值&#xff1a;在于輸出思考與經驗…

AXOP39062: 25MHz軌到軌輸入輸出雙通道運算放大器

AXOP39062是用于低壓應用(1.5V~5.5V)的雙通道運算放大器&#xff0c;具有軌到軌的輸入輸出工作范圍&#xff0c;非常適合需要小尺寸、大容性負載驅動能力的低壓應用。產品具有25MHz的增益帶寬&#xff0c;具有優異的噪聲性能和極低的失真度。 主要特性 軌到軌的輸入輸出范圍低…