news 2026/5/26 6:03:52

10.3 反向传播算法:计算图、链式法则与自动微分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10.3 反向传播算法:计算图、链式法则与自动微分

10.3 反向传播算法:计算图、链式法则与自动微分

反向传播算法是训练多层神经网络的核心,它通过高效地计算损失函数相对于网络所有参数的梯度,为基于梯度的优化方法提供了可能。反向传播并非一种新的学习算法,而是梯度计算在神经网络特定结构下的高效实现方案。其核心思想源于微积分中的链式法则,并通过计算图这一抽象得到直观的表示和系统化的实现。本节将详细阐述反向传播的原理,从计算图表示、链式法则的递归应用,到其与现代自动微分技术的紧密联系。

10.3.1 计算图:结构与抽象

计算图是一种用于描述数学运算的有向无环图。在深度学习的语境下,它将复杂的神经网络前向传播过程分解为一系列基本的原子操作(如加法、乘法、指数运算、矩阵乘、激活函数等),从而清晰地揭示出变量之间的依赖关系。

10.3.1.1 图的构成

一个计算图GGG包含两种类型的节点:

  • 变量节点:表示计算过程中的数据,包括输入数据、模型参数(权重、偏置)以及计算得到的中间变量。
  • 运算符节点:表示施加在变量上的基本运算。每个运算符节点接收一个或多个输入变量,并产生一个输出变量。

图中的边表示数据的流向,从输入指向运算符,再从运算符指向其输出的变量。例如,一个简单的线性层运算z=wTx+bz = \mathbf{w}^T \mathbf{x} + bz=wTx+b可以分解为向量内积和标量加法两个运算符节点。

10.3.1.2 前向传播与反向传播的图视角

神经网络的前向传播过程,对应于从输入节点开始,按照图的拓扑顺序,依次计算每个运算符节点的输出,直至得到最终的输出(如预测值)和损失值LLL。这完成了计算图的“向前”遍历。

反向传播的目标是计算损失LLL对图中所有参数节点(如w\mathbf{w}w,bbb)的梯度∂L∂w,∂L∂b\frac{\partial L}{\partial \mathbf{w}}, \frac{\partial L}{\partial b}wL,bL。从计算图的角度看,这等价于从损失节点LLL开始,按照与边相反的方向(即逆向拓扑顺序),依次计算LLL对图中每个节点的梯度。计算图的结构化表示使得梯度计算可以分解为一系列局部梯度传播的步骤。

10.3.2 链式法则与反向传播的递归计算

反向传播算法的数学本质是多变量微积分的链式法则。对于一个由多个函数嵌套组成的复合函数,链式法则说明了如何计算其导数。在计算图中,每个运算符节点代表一个局部函数。

10.3.2.1 链式法则的形式化

设最终损失LLL是变量yyy的函数,而yyy又是变量xxx的函数:y=f(x)y = f(x)y=f(x),L=g(y)L = g(y)L=g(y)。根据链式法则,LLLxxx的导数为:
∂L∂x=∂L∂y⋅∂y∂x \frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial x}xL=yLxy

在计算图中,节点yyyxxx的后继。当我们进行反向传播时,假设已经计算得到了损失LLLyyy的梯度∂L∂y\frac{\partial L}{\partial y}yL(称为yyy的“上游梯度”),那么要计算LLLxxx的梯度,只需将上游梯度乘以yyy关于

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 4:25:56

【Open-AutoGLM协同进化】:端侧大模型性能跃迁的5大核心技术突破

第一章:Open-AutoGLM与端侧大模型协同进化的战略意义随着边缘计算能力的持续增强,大模型从云端向终端设备迁移已成为AI架构演进的重要趋势。Open-AutoGLM作为开源自动化生成语言模型框架,其与端侧大模型的协同进化不仅推动了智能终端的自主决…

作者头像 李华
网站建设 2026/5/26 4:41:31

企业级知识库搭建:Docusaurus实战案例解析

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业内部分享平台,基于Docusaurus框架,要求:1) 实现多团队内容隔离,不同部门有独立文档空间;2) 集成Git版本控制…

作者头像 李华
网站建设 2026/5/26 0:04:19

error code is-in-bv05

error code is-in-bv05 解决方法: 在Epic Games启动器的安装向导中,找到并取消勾选“引擎源代码”选项,然后重试安装。这是社区验证有效的首要方法-1。 官方建议: Click Install on the desired Engine version.On the Choose …

作者头像 李华
网站建设 2026/5/26 4:39:19

AI助力嵌入式开发:用快马平台自动生成Keil项目代码

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个基于STM32F103C8T6的Keil uVision5项目框架,包含以下功能:1. GPIO初始化配置 2. 系统时钟设置 3. 基本延时函数 4. LED闪烁示例代码 5. 串口通信…

作者头像 李华
网站建设 2026/5/26 4:40:02

如何用AI诊断和修复Clock Watchdog Timeout蓝屏错误

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个AI辅助诊断工具,能够自动分析Windows系统日志,识别Clock Watchdog Timeout错误的原因。工具应包含以下功能:1. 自动扫描系统日志和dump…

作者头像 李华
网站建设 2026/5/25 13:50:43

APT攻击入门指南:小白也能看懂的高级威胁解析

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式APT学习平台,包含:1. APT基础知识图文讲解 2. 简化版攻击过程动画演示 3. 互动式实验环境(如简单的钓鱼邮件识别)4. …

作者头像 李华