You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

RNN梯度消失/爆炸条件证明疑问:公式(5)转置来源

理解《On the difficulty of training recurrent neural networks》中公式(5)的矩阵转置来源

首先,先明确这篇被广泛引用的论文的核心是分析RNN训练中的梯度消失/爆炸问题,公式(5)里的矩阵转置绝对不是笔误——它完全来自于RNN反向传播时的维度兼容性要求链式法则的向量布局选择,下面一步步拆解:

1. 先对齐论文的符号体系

原文特意把时间步用上标(比如$h^t$而非$h_t$),就是为了避免和矩阵/向量的索引混淆,所以所有上标都是时间步标记,不是幂次或索引。我们先明确基础的RNN更新公式(论文里的形式):
$$h^t = f(W h^{t-1} + U x^t)$$
这里:

  • $h^t$:$d \times 1$的列向量(隐藏状态,d是隐藏层维度)
  • $W$:$d \times d$的权重矩阵(隐藏层到隐藏层的映射)
  • $U$:$d \times m$的权重矩阵(输入层到隐藏层的映射,m是输入维度)
  • $f$:非线性激活函数(比如tanh)

2. 反向传播中梯度传递的链式法则

我们要计算最终损失$L$对早期时间步隐藏状态$ht$的梯度$\deltat = \frac{\partial L}{\partial h^t}$,根据链式法则,这个梯度需要从后续时间步$t+1$传递过来:
$$\delta^t = \left( \frac{\partial h^{t+1}}{\partial h^t} \right)^T \delta^{t+1} \odot f'(W h^{t-1} + U x^t)$$
这里的$\left( \frac{\partial h^{t+1}}{\partial h^t} \right)$是$h{t+1}$对$ht$的雅可比矩阵,计算下来就是$W$(因为$h^{t+1}$里线性项是$W ht$,对$ht$求导就是$W$)。

那为什么要加转置?
因为我们用的是列向量布局(深度学习领域的常规选择):

  • $\delta^{t+1}$是$d \times 1$的列向量(损失对$h^{t+1}$的梯度)
  • 雅可比矩阵$W$是$d \times d$,如果直接用$W$乘$\delta^{t+1}$,虽然维度是$d \times 1$能匹配,但这不符合链式法则的数学逻辑——当梯度是列向量时,我们需要雅可比矩阵的转置来实现“梯度向后传递”的矩阵乘法(本质是对偶空间的映射)。

简单说:如果$\delta$是行向量,不需要转置;但论文用列向量,所以必须转置$W$来保证梯度传递的维度和数学正确性。

3. 公式(5)中多次出现转置的原因

论文的公式(5)应该是在推导长期梯度的累积项——也就是从时间步$T$反向传递到时间步$t$的梯度,这时候需要把每一步的$(W^T)$乘起来:
$$\delta^t = \left( \prod_{k=t+1}^T (W^T) \odot f'(...) \right) \delta^T$$
这里每一步的反向传播都要引入$W^T$,所以转置会多次出现,完全是因为每一步的梯度传递都需要遵循列向量布局下的链式法则,绝对不是笔误。

另外,当计算损失对$W$的梯度时,你还会看到$(h{t-1})T$这样的转置,这也是维度原因:$\delta^t$是$d \times 1$列向量,$h^{t-1}$是$d \times 1$列向量,要得到$d \times d$的权重矩阵$W$的梯度,必须用列向量乘行向量($\delta^t (h{t-1})T$),所以需要转置$h^{t-1}$。

总结

公式(5)里的矩阵转置完全是数学推导的必然结果,核心原因是论文采用了深度学习中标准的列向量布局来表示隐藏状态和梯度,为了满足链式法则的维度兼容性,必须在梯度传递和权重梯度计算中引入转置。

内容的提问来源于stack exchange,提问作者bioin4

火山引擎 最新活动