机器学习基础(五)从0理解反向传播:梯度到底是怎么来的?

在学习了损失函数和梯度下降之后,我产生了一个更本质的问题:
梯度,是从哪里来的?


一、引入

我们已经知道:

  • 损失函数(Loss)用于衡量预测误差
  • 梯度下降(Gradient Descent)用于不断优化参数

但这里有一个关键缺口:

梯度下降依赖“梯度”,那梯度是如何计算的?

这就是今天要解决的问题 —— 反向传播(Backpropagation)


二、从一个最简单的模型开始

先看一个极简模型:

\[y = w \cdot x \]

假设真实值为 \(y_{true}\),我们定义损失函数:

\[loss = (y - y_{true})^2 \]

现在问题来了:

我们如何计算:\(\frac{\partial loss}{\partial w}\)


三、链式法则:一切的核心

注意到:

\[loss \rightarrow y \rightarrow w \]

这是一个“嵌套关系”(复合函数)。

根据微积分中的链式法则

\[\frac{\partial loss}{\partial w} = \frac{\partial loss}{\partial y} \cdot \frac{\partial y}{\partial w} \]

我们拆开来看:

  • \(\frac{\partial loss}{\partial y} = 2(y - y_{true})\)
  • \(\frac{\partial y}{\partial w} = x\)

所以:

\[\frac{\partial loss}{\partial w} = 2(y - y_{true}) \cdot x \]

这一步,就是“梯度的来源”。

当我们把模型的层数增加时,同理,这时候每一层的梯度都与上一层直接相关,


四、什么是反向传播?

从 loss 开始,一步一步往回求导

这就是反向传播的本质:


前向传播(Forward Pass)

输入 x → 计算 y → 得到 loss


反向传播(Backward Pass)

从 loss 出发 → 逐层求导 → 得到梯度


可以总结为一句话:

前向传播算结果,反向传播算梯度


五、为什么叫“反向”?

因为计算顺序是反的:

  • 正向:输入 → 输出
  • 反向:输出 → 输入

也就是说:

我们是从最终的误差(loss),一步一步“倒推”每个参数对结果的影响


六、反向传播 + 梯度下降 = 完整优化过程

现在我们把整个流程串起来:

1️、前向传播

\[y = w \cdot x \]

2️、计算损失

\[loss = (y - y_{true})^2 \]

3️、反向传播

计算梯度:

\[\frac{\partial loss}{\partial w} \]

4️、梯度下降更新参数

\[w = w - \alpha \cdot \frac{\partial loss}{\partial w} \]


完整闭环:

前向传播 → 损失函数 → 反向传播 → 梯度 → 参数更新


七、更深一层理解

很多人把反向传播理解为“一个算法”,但其实:

它本质上只是 链式法则的工程化应用

在神经网络中:

  • 每一层都是一个函数
  • 整个网络是“函数的嵌套”

所以:

反向传播 = 在复杂函数中高效地应用链式法则


八、总结

这一篇我们解决了一个核心问题:

梯度不是凭空来的,而是通过反向传播计算出来的

可以用一句话总结:

损失函数定义目标,反向传播提供梯度,梯度下降完成优化。


如果说梯度下降回答的是“怎么优化”,
那反向传播回答的是“优化的信息从哪里来”。

posted @ 2026-03-28 23:21  YZG5N  阅读(84)  评论(0)    收藏  举报