Type: concept
Confidence: 0.90
Created: 2026-04-18
Updated: 2026-04-18
Tags: 机器学习深度学习计算技术

自动微分

概述 (50-200字符)

自动微分(AutoDiff)是反向传播算法的工程化实现,通过记录计算图并自动应用链式法则,无需手动推导即可精确计算任意函数的梯度。PyTorchTensorFlow 等深度学习框架的核心即此技术。

关键内容 (≥300字符, 用双链)

  1. 基本原理:自动微分将数值计算分解为基本操作(加、减、乘、除、指数等)的组合,构建计算图(computational graph)。前向传播时记录操作序列,反向传播时从输出到输入逐节点应用链式法则计算梯度。与符号微分不同,AutoDiff 产生的是数值梯度而非解析表达式。
  2. 反向传播的关系反向传播本质上是反向模式自动微分(reverse-mode autodiff)在神经网络中的特例。当输出是标量(如损失函数)而输入是高维向量(如百万级参数)时,反向模式只需一次前向+一次反向即可计算所有梯度,效率远超数值微分的 O(N) 次前向传播。
  3. 主流框架实现PyTorch 使用动态计算图(define-by-run),每次前向传播时即时构建计算图,灵活支持控制流(if/for);TensorFlow 早期使用静态计算图(define-then-run),先定义完整计算图再执行,便于优化但灵活性较差(Eager Execution 后改为动态模式)。两者底层都实现了反向传播的自动微分引擎。
  4. 数值微分对比:数值微分 ∂L/∂wⱼ ≈ [L(w+ε·eⱼ) - L(w)]/ε 对每个参数需做一次前向传播,百万参数需百万次前向——不可接受。自动微分只需一次前向+一次反向,计算量与两次前向传播相当,速度提升 N 倍(N 为参数量)。

来源

相关