NLP 学习 github 项目:
-
NLP 项目实践:fasterai/nlp-project-practice
介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验
-
AI 藏经阁:https://gitee.com/fasterai/ai-e-book
介绍:该仓库主要分享了数百本 AI 领域电子书
-
AI 算法面经:fasterai/nlp-interview-handbook#面经
介绍:该仓库一网打尽互联网大厂NLP算法面经,算法求职必备神器
-
NLP 剑指Offer:https://gitee.com/fasterai/nlp-interview-handbook
介绍:该仓库汇总了 NLP 算法工程师高频面题
【淘汰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基础篇
-
【NLP 面试宝典 之 模型分类】 必须要会的高频面题
-
【NLP 面试宝典 之 神经网络】 必须要会的高频面题
-
【NLP 面试宝典 之 主动学习】 必须要会的高频面题
-
【NLP 面试宝典 之 超参数优化】 必须要会的高频面题
-
【NLP 面试宝典 之 正则化】 必须要会的高频面题
-
【NLP 面试宝典 之 过拟合】 必须要会的高频面题
-
【NLP 面试宝典 之 Dropout】 必须要会的高频面题
-
【NLP 面试宝典 之 EarlyStopping】 必须要会的高频面题
-
【NLP 面试宝典 之 标签平滑】 必须要会的高频面题
-
【NLP 面试宝典 之 Warm up 】 必须要会的高频面题
-
【NLP 面试宝典 之 置信学习】 必须要会的高频面题
-
【NLP 面试宝典 之 伪标签】 必须要会的高频面题
-
【NLP 面试宝典 之 类别不均衡问题】 必须要会的高频面题
-
【NLP 面试宝典 之 交叉验证】 必须要会的高频面题
-
【NLP 面试宝典 之 词嵌入】 必须要会的高频面题
-
【NLP 面试宝典 之 One-Hot】 必须要会的高频面题
-
…
BERT 模型面
LLMs 微调面
-
【NLP 面试宝典 之 LoRA微调】 必须要会的高频面题
-
【NLP 面试宝典 之 Prompt】 必须要会的高频面题
-
【NLP 面试宝典 之 提示学习微调】 必须要会的高频面题
-
【NLP 面试宝典 之 PEFT微调】 必须要会的高频面题
-
【NLP 面试宝典 之 Chain-of-Thought微调】 必须要会的高频面题
-
…