首页 > 其他分享 >【淘汰9成NLP工程师的常识题】 LSTM 如何缓解 RNN 梯度消失的问题?

【淘汰9成NLP工程师的常识题】 LSTM 如何缓解 RNN 梯度消失的问题?

时间:2024-11-20 17:48:18浏览次数:3  
标签:NLP 高频 RNN 宝典 面试 LSTM 要会 面题

NLP 学习 github 项目:


【淘汰9成NLP工程师的常识题】 LSTM 如何缓解 RNN 梯度消失的问题?

重要性:★★★

这是我常用的一个面试题。看似简单的基础常识题,但在面试中能准确回答的不足20%

常识题的错误,反而会暴露面试者对传统算法模型理解不够深入,基础不牢靠。

RNN 梯度消失的原因

RNN 梯度反向传播的计算图:

RNN 反向传播的梯度流经 tanh、“+”和 MatMul(矩阵乘积)运算。

tanh 节点

反向传播时梯度的值通过 tanh 节点时,tanh的梯度值小于1,这意味着,当反向传播的梯度经过 tanh 节点时,它的值会越来越小。因此,如果经过 tanh 函数 T 次,则梯度也会减小 T 次。

如果将激活函数改为 ReLU 函数,则有希望抑制梯度消失的问题。

MatMul 节点

反向传播时梯度的值通过 MatMul 节点时,梯度的大小随时间步长呈指数级变化,如果矩阵奇异值的最大值大于 1,则可以预测梯度很有可能会呈指数级增加;而如果奇异值的最大值小于 1,则可以判断梯度会呈指数级减小。

LSTM不会发生梯度消失的原因

LSTM通过引入记忆单元从根本上改变 RNN 层的结构,通过引入记忆单元将RNN中的 MatMul 和 tanh 的计算变成了阿达玛积和加法计算,通过残差结构消除了RNN中梯度消失的问题。

LSTM 梯度反向传播的计算图:

RNN 反向传播的梯度流经 tanh、“+”和 MatMul(矩阵乘积)运算。tanh和矩阵乘积的反向传播会导致梯度消失。

LSTM 记忆单元的反向传播仅流过“+”和“×”节点。

  • “+”节点将上游传来的梯度原样流出,所以梯度没有变化(退化)。
  • “×”节点的计算并不是矩阵乘积,而是对应元素的乘积(阿达玛积)。

这就是LSTM不会发生梯度消失(或梯度爆炸)的原因。LSTM的记忆单元不会(难以)发生梯度消失,记忆单元能够保存(学习)长期的依赖关系。所以,才起名叫LSTM是Long Short-Term Memory(长短期记忆),意思是可以长(Long)时间维持短期记忆(Short-Term Memory)。


1.2 高频面题汇总

NLP基础篇
BERT 模型面
LLMs 微调面

标签:NLP,高频,RNN,宝典,面试,LSTM,要会,面题
From: https://blog.csdn.net/weixin_44025655/article/details/143867626

相关文章