标签:反向传播
-
LayerNorm 的反向传播推导:均值-方差耦合带来的三项修正
完整推导 LayerNorm 的反向梯度:均值与方差都依赖输入,VJP 因此多出两项投影修正,最终梯度是"去均值、去方向"后的缩放版本。
-
归一化的梯度流分析:LayerNorm 凭什么稳住深层网络
LayerNorm 的反向不是简单缩放:它的雅可比是一个投影矩阵,把梯度中沿激活方向和均值方向的两个分量剥掉,顺手提供 1/σ 的负反馈。深层网络能训到几百层,靠的就是这个投影。
-
-
注意力机制的分步反向传播:Q/K/V 的梯度如何穿过 softmax 回传
把 scaled dot-product attention 拆成 S=QKᵀ、P=softmax(S)、O=PV 三段,逐段推 VJP,给出 dQ、dK、dV 的闭式,并解释 causal mask 与 FlashAttention 反向的处理。
-
梯度检查点:用 33% 的额外计算换显存平方级的节省
反向传播需要前向的所有激活,显存随层数线性增长——这是长序列训练的第一堵墙。梯度检查点只存每个分段的边界激活,反向时重算段内前向,把激活显存从 O(L) 压到 O(sqrt L),代价约 33% 的额外 FLOPs。这篇推导最优分段数的公式,讲清选择性重计算(Megatron 的做法)为什么比全量重算更划算,以及 torch.utils.checkpoint 的实现细节。
-
广播操作的梯度归约:为什么反向要 sum 回原始形状
广播在前向把参数复制到多个位置使用,链式法则要求梯度把所有副本的贡献加起来。推一遍 b 向量广播加法的雅可比,搞清楚 sum 归约的来历与 sum/mean 的尺度差异。
-
从矩阵求导看反向传播:布局约定、trace 技巧与一次完整手推
建立"标量对矩阵求导"的统一记号,用微分法手推两层网络的反向传播,说明 reverse mode 为什么是唯一可行的选择。
-
causal mask 的实现与梯度流:下三角掩码如何阻断信息泄漏
decoder-only 模型的因果掩码到底怎么实现、为什么反向时不需要额外处理、masked 位置的训练动力学是什么。这篇把 addmask、masked_fill、is_causal 三种写法对齐到同一个数学对象,并给出梯度流的完整分析。
-
反向传播即 reverse mode 自动微分:一次前向一次反向的代价账
把反向传播放回自动微分的谱系里:前向模式按输入维数计费、反向模式按输出维数计费,标量损失让两者相差一亿倍,这就是深度学习只用反向模式的原因。