反向傳播算法——矩陣形式遞推公式——ReLU傳遞函數

總結反向傳播算法。

來源于https://udlbook.github.io/udlbook/,我不明白初始不從 x 0 \boldsymbol{x}_0 x0?開始,而是從 z 0 \boldsymbol{z}_0 z0?開始,不知道怎么想的。


考慮一個深度神經網絡 g [ x i , ? ] g[\boldsymbol{x}_i, \boldsymbol{\phi}] g[xi?,?],它接受輸入 x i \boldsymbol{x}_i xi?,具有 N N N個隱藏層和 ReLU 激活函數,并且有單獨的損失項 L i = l o s s [ g [ x i , ? ] , y i ] L_i = {\rm loss}[g[\boldsymbol{x}_i, \boldsymbol{\phi}], \boldsymbol{y}_i] Li?=loss[g[xi?,?],yi?]。反向傳播的目標是計算關于偏差 b ι \boldsymbol{b}_\iota bι?和權重 W ι \boldsymbol{W}_\iota Wι?的導數 ? L i ? b ι \frac{\partial L_i}{\partial \boldsymbol{b}_\iota} ?bι??Li?? ? L i ? W ι \frac{\partial L_i}{\partial \boldsymbol{W}_\iota} ?Wι??Li??

前向傳遞: 計算并存儲以下量:

z 0 = b 0 + W 0 x i x ι = f [ z ι ? 1 ] ι ∈ { 1 , 2 , … , M } z ι = b ι + W ι x ι . ι ∈ { 1 , 2 , … , M } \begin{aligned} \boldsymbol{z}_0 &= \boldsymbol{b}_0 + \boldsymbol{W}_0 \boldsymbol{x}_i \\ \boldsymbol{x}_\iota &=f[\boldsymbol{z}_{\iota-1}] & \iota \in \{1, 2, \ldots, M\} \\ \boldsymbol{z}_\iota &= \boldsymbol{b}_\iota + \boldsymbol{W}_\iota \boldsymbol{x}_\iota. & \iota \in \{1, 2, \ldots, M\} \end{aligned} z0?xι?zι??=b0?+W0?xi?=f[zι?1?]=bι?+Wι?xι?.?ι{1,2,,M}ι{1,2,,M}?

反向傳遞: 從損失函數 L i L_i Li?關于網絡輸出 z M \boldsymbol{z}_M zM?的導數 ? L i ? z M \frac{\partial L_i}{\partial \boldsymbol{z}_M} ?zM??Li??開始,并在網絡中反向工作:

? L i ? b ι = ? L i ? z ι ι ∈ { M , M ? 1 , … , 1 } ? L i ? W ι = ? L i ? z ι x ι T ι ∈ { M , M ? 1 , … , 1 } ? L i ? z ι ? 1 = I [ z ι ? 1 > 0 ] ⊙ ( W ι T ? L i ? z ι ) , ι ∈ { M , M ? 1 , … , 1 } \begin{aligned} \frac{\partial L_i}{\partial \boldsymbol{b}_\iota} &= \frac{\partial L_i}{\partial \boldsymbol{z}_\iota} & \iota \in \{M, M-1, \ldots, 1\} \\ \frac{\partial L_i}{\partial \boldsymbol{W}_\iota} &= \frac{\partial L_i}{\partial \boldsymbol{z}_\iota} \boldsymbol{x}_\iota^{\mathsf T} & \iota \in \{M, M-1, \ldots, 1\} \\ \frac{\partial L_i}{\partial \boldsymbol{z}_{\iota-1}} &= \mathbb{I}[\boldsymbol{z}_{\iota-1} > 0] \odot \left( \boldsymbol{W}_\iota^{\mathsf T} \frac{\partial L_i}{\partial \boldsymbol{z}_\iota} \right), & \iota \in \{M, M-1, \ldots, 1\} \end{aligned} ?bι??Li???Wι??Li???zι?1??Li???=?zι??Li??=?zι??Li??xιT?=I[zι?1?>0](WιT??zι??Li??),?ι{M,M?1,,1}ι{M,M?1,,1}ι{M,M?1,,1}?

其中 ⊙ \odot 表示逐點乘法,而 I [ z ι ? 1 > 0 ] \mathbb{I}[\boldsymbol{z}_{\iota-1} > 0] I[zι?1?>0]是一個向量,其中在 z ι ? 1 \boldsymbol{z}_{\iota-1} zι?1?大于零的位置包含一,在其他位置包含零。

最后,計算關于第一組偏差和權重的導數:

? L i ? b 0 = ? L i ? z 0 ? L i ? W 0 = ? L i ? z 0 x i T . \begin{aligned} \frac{\partial L_i}{\partial \boldsymbol{b}_0} &= \frac{\partial L_i}{\partial \boldsymbol{z}_0} \\ \frac{\partial L_i}{\partial \boldsymbol{W}_0} &= \frac{\partial L_i}{\partial \boldsymbol{z}_0} \boldsymbol{x}_i^{\mathsf T}. \end{aligned} ?b0??Li???W0??Li???=?z0??Li??=?z0??Li??xiT?.?

為批次中的每個訓練樣本計算這些導數,并將它們相加以獲取用于 SGD 更新的梯度。

請注意,反向傳播算法非常高效;前向和反向傳遞中最耗計算的步驟是矩陣乘法(分別由 W \boldsymbol{W} W W T \boldsymbol{W}^{\mathsf T} WT進行),這只需要加法和乘法。然而,它不是內存高效的;前向傳遞中的中間值必須全部存儲,這可能會限制可以訓練的模型的大小。

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

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

相關文章

2025年PMP 學習二十三 16章 高級項目管理

2025年PMP 學習二十三 16章 高級項目管理 文章目錄 2025年PMP 學習二十三 16章 高級項目管理高級項目管理戰略管理戰略管理的組成要素:企業戰略轉化為戰略行動的階段: 組織戰略類型戰略組織類型組織級項目管理OPM(公司項目管理) 組…

Journal of Real-Time Image Processing 投稿過程

投稿要求雙欄12頁以內(包括參考文獻),這個排版要求感覺不是很嚴格,我當時就是用普通的雙欄的格式去拍的版,然后就提交了,也沒單獨去下載模版。 投稿過程 12.12 Submission received 12.12 Submission is under technical check 1…

t檢驗詳解:原理、類型與應用指南

t檢驗詳解:原理、類型與應用指南 t檢驗(t-test)是一種用于比較兩組數據均值是否存在顯著差異的統計方法,適用于數據近似正態分布且滿足方差齊性的場景。以下從核心原理、檢驗類型、實施步驟到實際應用進行系統解析。 一、t檢驗的…

Web4X·AI實業未來家庭普及產品矩陣

Web4XAI實業未來家庭普及產品矩陣 > 打造一個“AI能干活、人更自由”的超級生活系統(web4-web4.0) 一、AI生活服務類 1、代表產品: ? AI語音助手(對話、提醒、天氣、家庭調度) ? AI陪護機器人(老…

Centos上搭建 OpenResty

一、OpenResty簡介 OpenResty 是基于 Nginx 的擴展平臺,完全兼容 Nginx 的核心功能(如 HTTP 服務和反向代理),同時通過內嵌 LuaJIT 支持,允許開發者用 Lua 腳本靈活擴展業務邏輯。它簡化了動態邏輯的實現。 二、安裝…

項目管理進階:基于IPD流程的項目管理部分問題及建議書【附全文閱讀】

該文檔主要探討了研發項目管理中存在的問題及改進建議。指出項目組織、項目計劃、項目監控等方面存在的問題,并給出了相應的設計要點。建議建立跨部門、全流程的項目計劃體系,加強風險管理,引入科學的估計方法,建立項目歷史數據積…

JVM之GC常見的垃圾回收器

收集器適用區域特點適用場景Serial新生代單線程,STW(Stop-The-World)客戶端小應用Parallel Scavenge新生代多線程,吞吐量優先后臺計算任務ParNew新生代Serial 的多線程版配合 CMS 使用CMS老年代并發標記,低延遲響應優先…

免費私有化部署! PawSQL社區版,超越EverSQL的企業級SQL優化工具面向個人開發者開放使用了

1. 概覽 1.1 快速了解 PawSQL PawSQL是專注于數據庫性能優化的企業級工具,解決方案覆蓋SQL開發、測試、運維的整個流程,提供智能SQL審核、查詢重寫優化及自動化巡檢功能,支持MySQL、PostgreSQL、Oracle、SQL Server等主流數據庫及達夢、金倉…

HTTP/HTTPS與SOCKS5協議在隧道代理中的兼容性設計解析

目錄 引言 一、協議特性深度對比 1.1 協議工作模型差異 1.2 隧道代理適配難點 二、兼容性架構設計 2.1 雙協議接入層設計 2.2 統一隧道內核 三、關鍵技術實現 3.1 協議轉換引擎 3.1.1 HTTP→SOCKS5轉換 3.1.2 SOCKS5→HTTP轉換 3.2 連接管理策略 3.2.1 智能連接池 …

3DGS——基礎知識學習筆記

1.什么是3D高斯潑濺(3D Gaussian Splatting)? 目標:從一組稀疏的3D點(比如通過相機或激光雷達采集的點云)重建出高質量的3D場景,并支持實時渲染。 核心思想:用許多“3D高斯分布”&…

【C++】不推薦使用的std::allocator<void>

文章目錄 不推薦使用的std::allocator<void>1. 核心區別2. 成員函數對比(1) allocate 和 deallocate(2) construct 和 destroy 3. 設計動機(1) std::allocator<T>(2) std::allocator<void> 4. 使用場景示例(1) std::allocator<int>(2) std::allocator&…

Go 語言云原生微服務全棧實戰:Docker 鏡像優化、K8s 編排與 Istio 流量治理

本系列文章將以 Go 語言為主導開發語言&#xff0c;系統性地講解如何從零構建一個基于微服務架構的應用系統&#xff0c;涵蓋以下核心模塊&#xff1a; 使用 Go 構建高性能微服務構建精簡且高效的 Docker 鏡像利用 Kubernetes 進行微服務編排與部署通過 Istio 實現微服務的流量…

windows下authas調試tomcat

一般情況下&#xff0c;我們只需要輸入以下代碼 java -jar authas.jar調試tomcat時需要加上進程號 java -jar authas.jar <PID> 此外&#xff0c;如果你使用的是 Java 11 或更高版本&#xff0c;你需要添加 --add-opens 參數&#xff0c;以便 Arthas 能夠訪問 JVM 的內…

01_springboot中bean的生命周期

文章目錄 bean的生命周期1. Bean定義階段2. Bean實例化階段3. 屬性賦值階段4. 初始化階段5. 使用階段6. 銷毀階段 bean的生命周期 在Spring Boot中&#xff0c;Bean的生命周期包括定義、實例化、屬性賦值、初始化、使用和銷毀等階段。下面我將詳細解釋這些階段&#xff0c;并提…

Oracle基礎知識

目錄 1.別名的使用 2.AND的優先級高于OR 3.where后面可以接別名&#xff0c;order by后面不可以 4.Oracle中SQL的執行順序(重點) 5.dual萬用表 6.是否區分大小寫 7.Oracle常用數據類型 8.Oracle常用函數 (1)length字符、lengthb字節和cast強制類型轉換 (2)數據類型轉…

React 播客專欄 Vol.13|樣式不難搞,Tailwind CSS 與 SVG 實戰入門

&#x1f44b; 歡迎回到《前端達人 React 播客書單》第 13 期&#xff08;正文內容為學習筆記摘要&#xff0c;音頻內容是詳細的解讀&#xff0c;方便你理解&#xff09;&#xff0c;請點擊下方收聽 視頻版&#xff1a; 文字版&#xff1a; 今天我們進入樣式化的實戰環節&…

matlab慕課學習3.5

于20250520 3.5 用while 語句實現循環結構 3.5.1while語句 多用于循環次數不確定的情況&#xff0c;循環次數確定的時候用for更為方便。 3.5.2break語句和continue語句 break用來跳出循環體&#xff0c;結束整個循環。 continue用來結束本次循環&#xff0c;接著執行下一次…

鴻蒙開發進階:深入解析ArkTS語言特性與開發范式

一、前言 在鴻蒙生態開發體系中&#xff0c;DevEco Studio作為核心開發工具為開發者提供了高效的集成環境。而在掌握工具使用之后&#xff0c;深入理解鴻蒙開發語言成為構建高質量應用的關鍵。本文將聚焦于鴻蒙系統的核心開發語言——ArkTS&#xff0c;全面解析其起源演進、聲…

P2P最佳網絡類型

跑P2P最佳的網絡類型是什么&#xff1f;全錐型NAT1網絡它屬于最寬松的網絡環境&#xff0c;IP和端口都沒有限制&#xff0c;穿透率在95%以上&#xff0c;P2P連接成功率極高。使用全錐型網絡的節點收益比其他受限網絡類型高出3倍左右&#xff0c;能顯著提升PCDN的跑量和收益。 其…

電子制造企業智能制造升級:MES系統應用深度解析

在全球電子信息產業深度變革的2025年&#xff0c;我國電子信息制造業正經歷著增長與轉型的雙重考驗。據權威數據顯示&#xff0c;2025年一季度行業增加值同比增長11.5%&#xff0c;但智能手機等消費電子產量同比下降1.1%&#xff0c;市場競爭白熱化趨勢顯著。疊加關稅政策調整、…