【淘汰9成NLP面试者的高频面题】RNN是如何基于时间进行参数学习(BPTT)的?

重要性:★★

本问题主要考察面试者有有以下几点:

  • ① 理解RNN循环的概念,认识到截断的 BPTT的必要性
  • ② 理解深度学习框架在处理反向传播时需要在保存各个时刻的中间(前向计算)数据,会消耗大量的显存

这是我常用的一个面试题。看似简单的基础题,但在面试中能准确回答的不足10% ,常识题的错误反而会让人印象深刻。


NLP Github 项目:


RNN通过反向传播进行参数学习,将循环展开后的RNN层的误差反向传播法:

RNN的误差反向传播法是“按时间顺序展开的神经网络的误差反向传播法”,所以称为 Backpropagation Through Time(基于时间的反向传播),简称 BPTT

RNN反向传播存在的问题
BPTT随着时序数据的时间跨度的增大,BPTT 消耗的计算资源和内存资源(求梯度时必须在内存中保存各个时刻的中间数据)也会成比例地增大。另外,反向传播的梯度也会变得不稳定。

解决方案:
为解决BPTT在处理长时序数据时存在的问题,通常的做法是将网络连接截成适当的长度。然后对截出来的小型网络执行误差反向传播法,这个方法称为 Truncated BPTT(截断的 BPTT)

在 Truncated BPTT 中,只是网络的反向传播的连接被截断,正向传播的连接依然被维持。被截断的网络称为“块”。

使用展开的视角观察RNN的学习过程:


MLP 大模型高频面题汇总

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

本文由mdnice多平台发布


青松
1 声望0 粉丝