机器学习与模式识别 第十四章 神经网络中的反向传播 考点压缩

第十四章:Backpropagation --- 知识点笔记

综合来源:Lecture 14 PDF(38页)、课堂笔记(CSDN)


占位图

14.1 梯度计算:三种方法对比 ⭐

(1) 数值微分(Numerical Differentiation)

∂E∂wi≈E(w+ϵIi)−E(w−ϵIi)2ϵ\frac{\partial E}{\partial w_i} \approx \frac{E(w + \epsilon I_i) - E(w - \epsilon I_i)}{2\epsilon}∂wi∂E≈2ϵE(w+ϵIi)−E(w−ϵIi)

优点 缺点
适用于任何函数 近似(非精确)
易于实现 极贵 :需2D2D2D次误差计算→O(ND2)\mathcal{O}(ND^2)O(ND2)总代价

(2) 符号微分(Symbolic Differentiation)

  • 用求导规则推导解析梯度表达式
  • 优点:精确 | 缺点:表达式膨胀(Expression Swell)→大量冗余重复子表达式

(3) 自动微分(Autodiff)⭐

特点 说明
自动 追踪前向计算图→自动生成导数程序
精确 机器精度(非近似)
高效 重用冗余计算

两种模式

模式 方向 适用
Forward Mode 输入→输出 f:R→RMf: \mathbb{R} \to \mathbb{R}^Mf:R→RM(少输入多输出)
Backward Mode 输出→输入 f:RD→Rf: \mathbb{R}^D \to \mathbb{R}f:RD→R(多输入少输出)→DL专用

14.2 前向追踪:计算图 ⭐

将计算分解为基本操作的序列:

复制代码
v1 = x1       v4 = exp(v3)
v2 = x2       v5 = sin(v2)
v3 = v1 * v2  v6 = v4 + v3
              v7 = v6 - v5  (= f)

每个变量viv_ivi是计算图的一个节点 ,操作是有向边。


14.3 反向传播:伴随变量 ⭐⭐⭐

核心递归公式

定义伴随变量(Adjoint):ai=∂f∂via_i = \frac{\partial f}{\partial v_i}ai=∂vi∂f

ai=∑j∈Chi∂vj∂vi⋅aja_i = \sum_{j \in \mathbf{Ch}i} \frac{\partial v_j}{\partial v_i} \cdot a_jai=j∈Chi∑∂vi∂vj⋅aj

  • Chi\mathbf{Ch}iChi:viv_ivi的子节点 集合(被viv_ivi影响的后继变量)
  • 从输出向输入递归!

算法步骤

  1. 前向 :计算所有viv_ivi的值并缓存
  2. 初始化 :afinal=1a_{final} = 1afinal=1(∂f∂f=1\frac{\partial f}{\partial f}=1∂f∂f=1)
  3. 反向遍历 :按拓扑逆序 计算每个aia_iai
  4. 梯度 :输入变量对应的aia_iai即所求梯度

关键观察

  • 单输出→只需维护一个伴随变量
  • 多路径→梯度累加(sum over children)
  • 需缓存/重算中间变量值

14.4 神经网络中的反向传播

单隐藏层网络梯度

y=σ(W(2)σ(W(1)x))y = \sigma(W^{(2)}\sigma(W^{(1)}x))y=σ(W(2)σ(W(1)x))

对W(1)W^{(1)}W(1)的偏导:

∂E∂Wij(1)=∂E∂y⋅∂y∂z⋅∂z∂Wij(1)\frac{\partial E}{\partial W^{(1)}{ij}} = \frac{\partial E}{\partial y} \cdot \frac{\partial y}{\partial z} \cdot \frac{\partial z}{\partial W^{(1)}{ij}}∂Wij(1)∂E=∂y∂E⋅∂z∂y⋅∂Wij(1)∂z

  • 外层导数→内层导数→链式法则嵌套
  • Autodiff自动处理所有嵌套

为什么反向模式高效

  • 深度网络:f:RD→Rf: \mathbb{R}^D \to \mathbb{R}f:RD→R(百万参数→单一损失)
  • 反向模式一次遍历→O(D)\mathcal{O}(D)O(D)计算所有梯度
  • 前向模式需O(D)\mathcal{O}(D)O(D)次遍历→不适合DL

14.5 PyTorch中的Autograd

python 复制代码
loss.backward()  # 自动反向传播→计算所有参数的.grad
  • 追踪requires_grad=True的tensor
  • 构建动态计算图
  • backward()触发反向遍历→填充.grad属性

笔记中的图片索引

序号 图片内容描述 来源位置
图1 三种微分方法对比 Lecture 14 第10-18页
图2 前向计算图追踪 Lecture 14 第20页
图3 反向伴随变量传播全过程 Lecture 14 第24-34页

笔记整理时间:2026年6月29日

相关推荐
Maiko Star11 分钟前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
鬓戈15 分钟前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
天远API16 分钟前
零信任架构实战:基于天远人企关联构建自动化图谱网关
网络·人工智能·架构·自动化
爱吃提升17 分钟前
文生视频模型发展趋势(2026)
人工智能·音视频
AIGS00133 分钟前
什么是本体语义平台?和知识图谱、传统数据中台的区别在哪
人工智能·知识图谱·数据中台·ai问数·本体语义平台·智能数据中台
YOLO数据集集合34 分钟前
烟叶病虫害检测数据集 | 烟叶病害 无人机航拍 智慧农业 病害检测 9125期
人工智能·目标检测·目标跟踪·无人机·烟草病虫·烟草虫害
Experience-摆渡42 分钟前
一个开源免费的本地AI抠图工具 unbagrnd:断网也能用的背景移除
人工智能·开源
只是甲43 分钟前
Text2SQL 系列博客 07:4 步选型法(上)- 场景与标准的定义
人工智能·text2sql·nl2sql·ai agent·智能问数
Csvn1 小时前
AI 应用日志别再 print 了:结构化日志 + request_id 贯穿(O01)
人工智能
空 白II1 小时前
9.26 大语言模型研究简报:把 Agent 开发做成“数据—训练—Harness”闭环
人工智能·语言模型·自然语言处理