反向传播算法——矩阵形式递推公式——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} z0xιzι=b0+W0xi=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} zMLi开始,并在网络中反向工作:

∂ 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ιLiWιLizι1Li=zιLi=zιLixιT=I[zι1>0](WιTzιLi),ι{M,M1,,1}ι{M,M1,,1}ι{M,M1,,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} b0LiW0Li=z0Li=z0LixiT.

为批次中的每个训练样本计算这些导数,并将它们相加以获取用于 SGD 更新的梯度。

请注意,反向传播算法非常高效;前向和反向传递中最耗计算的步骤是矩阵乘法(分别由 W \boldsymbol{W} W W T \boldsymbol{W}^{\mathsf T} WT进行),这只需要加法和乘法。然而,它不是内存高效的;前向传递中的中间值必须全部存储,这可能会限制可以训练的模型的大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.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;市场竞争白热化趋势显著。叠加关税政策调整、…