-
核心概念(是什么)
● 梯度下降(Gradient Descent) 是一种参数优化算法,通过沿着损失函数下降最快的方向调整参数,逐步逼近最优解。
● 反向传播(Backpropagation, BP) 是一种梯度计算方法,用于高效求出神经网络中每个参数对损失的偏导。
● 两者关系:
BP 负责“计算梯度”,
GD 负责“利用梯度更新参数”。
BP + GD = 神经网络学习的核心循环。 -
数学原理(怎么做)
2.1 梯度下降的更新公式
θt+1=θt−η,∇θL(θt)\theta_{t+1} = \theta_t - \eta , \nabla_{\theta} L(\theta_t)θt+1=θt−η,∇θL(θt)
其中:
● θt\theta_tθt:参数(如权重、偏置)
● η\etaη:学习率
● ∇θL(θt)\nabla_{\theta} L(\theta_t)∇θL(θt):损失函数对参数的梯度
梯度表示“上坡方向”,因此我们沿 负梯度方向 更新。
2.2 反向传播的核心思想
BP 是一种利用链式法则(Chain Rule)的梯度计算方法。
假设网络结构:
x→f1a→f2b→f3Lx \xrightarrow[]{f_1} a \xrightarrow[]{f_2} b \xrightarrow[]{f_3} Lxf1af2bf3L
则:
∂L∂x=∂L∂b⋅∂b∂a⋅∂a∂x\frac{\partial L}{\partial x}
= \frac{\partial L}{\partial b}
\cdot \frac{\partial b}{\partial a}
\cdot \frac{\partial a}{\partial x}∂x∂L=∂b∂L⋅∂a∂b⋅∂x∂a
BP 的工作流程:
-
前向传播:计算输出与损失。
-
反向传播:逐层用链式法则求偏导。
-
参数更新:用梯度下降调整每个权重。
-
网络中的完整更新流程
以一层神经元为例:
y=f(Wx+b)y = f(Wx + b)y=f(Wx+b)
损失函数:
L=12(y−t)2L = \frac{1}{2}(y - t)^2L=21(y−t)2
反向传播计算步骤: -
计算输出误差:
δ=∂L∂y=y−t\delta = \frac{\partial L}{\partial y} = y - tδ=∂y∂L=y−t -
求权重梯度:
∂L∂W=δ⋅f′(Wx+b)⋅x⊤\frac{\partial L}{\partial W} = \delta \cdot f'(Wx+b) \cdot x^\top∂W∂L=δ⋅f′(Wx+b)⋅x⊤ -
更新参数(梯度下降):
W←W−η∂L∂W,b←b−η∂L∂bW \leftarrow W - \eta \frac{\partial L}{\partial W}, \quad b \leftarrow b - \eta \frac{\partial L}{\partial b}W←W−η∂W∂L,b←b−η∂b∂L
梯度来自 BP,更新由 GD 执行。
二者循环进行,模型不断逼近最优。 -
实际生活类比(形象理解)
① “夜爬山下谷”类比(梯度下降)
● 想象你在夜晚的山谷中,手中只有一个坡度传感器(梯度)。
● 每次你感知脚下的坡度,就沿最陡的下坡方向迈出一小步。
● 走太快会滚下山(学习率过大),
走太慢又难以下山(学习率过小)。
● 走几步,坡度变平——说明接近谷底(梯度趋近 0)。
→ 这就是 梯度下降的核心思想:沿负梯度方向走向最小值。
② “老师批改作业”类比(反向传播)
● 学生(神经网络)做题得分偏低(高损失)。
● 老师从最终答案反推,
哪个步骤出错、误差来自哪里、该怎么改。
● 每道小题(网络层)都收到一份“误差反馈”,
调整自己的解题方法(权重),
直到最终答对(损失最小)。
→ 这就是 反向传播:误差从输出层逐步传回输入层的梯度计算过程。
③ 结合:BP + GD 的闭环
● “老师(BP)指出错在哪儿”,
● “学生(GD)根据反馈修正笔迹”,
● 下次再做题(新一轮前向传播)就更接近满分。
● BP 给出方向,GD 决定迈步。
-
实际例子(数值直观)
假设一个最简单的单变量函数:
L(w)=(w−3)2L(w) = (w - 3)^2L(w)=(w−3)2 -
目标最小化 L(w)L(w)L(w)。
-
梯度:
dLdw=2(w−3)\frac{dL}{dw} = 2(w - 3)dwdL=2(w−3) -
更新:
wt+1=wt−η,2(wt−3)w_{t+1} = w_t - \eta , 2(w_t - 3)wt+1=wt−η,2(wt−3)
若初始 w0=0w_0 = 0w0=0,学习率 η=0.1\eta = 0.1η=0.1:
迭代次数 当前 wtw_twt 梯度 2(wt−3)2(w_t-3)2(wt−3) 更新后 wt+1w_{t+1}wt+1
0 0 -6 0.6
1 0.6 -4.8 1.08
2 1.08 -3.84 1.464
… … … …
最终 wt→3w_t \to 3wt→3,损失 →0\to 0→0。
→ 梯度每次都告诉我们“往 3 靠近”的方向与距离。 -
工程要点(严谨与深度)
● 学习率 η\etaη 的选择
○ 太大:震荡或发散。
○ 太小:收敛极慢。
○ 通常结合调度策略(如余弦衰减、Warmup)。
● 梯度消失与爆炸
○ 深层网络中,链式乘积导致梯度趋近 0 或变得极大。
○ 解决方法:ReLU 激活、BatchNorm、残差连接。
● 动量与自适应学习率
○ Momentum、RMSProp、Adam 等优化器在 GD 基础上改进收敛速度。
● 损失函数平滑性
○ 非凸函数可能存在多个局部最小值或鞍点。
○ 在大模型中,噪声(如 SGD)反而有助于跳出局部最优。 -
CNN / Transformer 中的应用(实战理解)
● 在 CNN 中:
○ BP 用于计算卷积核与偏置的梯度;
○ GD 调整卷积核权重,使特征图更符合任务目标。
● 在 Transformer 中:
○ BP 反向穿过自注意力和线性层;
○ GD 更新 WQ,WK,WVW_Q, W_K, W_VWQ,WK,WV 等矩阵,让注意力学到更有意义的关联。
无论是 CNN、RNN、Transformer,核心优化循环都离不开 BP + GD。 -
从生活到公式(快速串线)
● 每次训练 = “先预测 → 算误差 → 反传误差 → 更新参数”
● 梯度下降更新公式:
θt+1=θt−η,∇θL(θt)\theta_{t+1} = \theta_t - \eta , \nabla_\theta L(\theta_t)θt+1=θt−η,∇θL(θt)
● 链式求导(反向传播):
∂L∂θi=∂L∂y⋅∂y∂θi\frac{\partial L}{\partial \theta_i} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial \theta_i}∂θi∂L=∂y∂L⋅∂θi∂y
● BP 负责算 ∇L\nabla L∇L,
GD 负责减 η∇L\eta \nabla Lη∇L。
数学上两行,逻辑上一环。
算方向 → 调参数 → 再算 → 再调 → 收敛。 -
一图记忆(逻辑闭环)
┌──────────────┐
│ 前向传播 │
│ 计算预测输出 │
└──────┬───────┘
│
▼
┌──────────────┐
│ 计算损失 L │
└──────┬───────┘
│
▼
┌──────────────┐
│ 反向传播 BP │
│ 计算各层梯度 │
└──────┬───────┘
│
▼
┌──────────────┐
│ 梯度下降 GD │
│ 更新参数 θ │
└──────┬───────┘
│
▼
(进入下一轮迭代) -
自检清单(快速复盘)
● 我能解释梯度下降的数学原理和更新公式吗?
● 我能用“下山”类比描述梯度下降吗?
● 我理解反向传播的链式法则如何传递误差吗?
● 我能写出 Wt+1=Wt−η∂L/∂WtW_{t+1} = W_t - \eta \partial L/\partial W_tWt+1=Wt−η∂L/∂Wt 吗?
● 我能描述 BP + GD 的训练闭环吗?
✅ 语雀使用提示
● 打开「数学公式(KaTeX)」渲染。
● ......... 为行内公式,......... 为独立公式。
● 支持复制到同一系列笔记,与 CNN / Transform 风格统一。
是否希望我帮你补上一个配套的 公式推导图 + 类比图(BP + GD 流程可视化),
让你在语雀中一页就能完整展示整个优化过程?
9066

被折叠的 条评论
为什么被折叠?



