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

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

重要性:★★★

大模型面试宝典(2024版)🔥

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

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

</br>

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)。

</br>


文章推荐:

大模型面试宝典(2024版)🔥

一、大模型面试指南

重点面题精讲

【面题精讲 - RAG系统】

【面题精讲 - 实体识别】

【面题精讲 - 文本分类】

【面题精讲 - 分布式训练】

【面题精讲 - 大模型微调】

【面题精讲 - 大模型架构】

【面题精讲 - Transformer】

【面题精讲 - LSTM】

【面题精讲 - RNN】

【面题精讲 - Word2Vec】

【面题精讲 - 分词】

高频面题汇总

NLP基础篇

BERT 模型面

LLMs 微调面

</br>

二、项目实践

预训练模型

文本分类

LangChain

动手学 RAG

</br>

三、算法理论

LLMs篇

BERT篇

Transformer

NLP 基础

</br>

四、面经分享

</br>

五、大厂方案

阿里

百度

腾讯

美团

小米

其他

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容