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

【淘汰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多平台发布

posted @   青松^_^  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示