BPTT

RNN的反向传播算法为BPTT,全称为Back Propagation Through Time,即沿时间轴的反向传播。

RNN的正向计算链路包括两个方向:

  1. 和前馈网络一样,从输入层到输出层,即:的计算链路。

  2. 沿着时间步从左到右,即:的计算链路。

在利用RNN进行文本分类(图a)的例子中,RNN最后一个时间步隐藏层的输出会作为整个序列的表征 (即特征),在经过输出层之后 (Linear + Softmax),最后输出:

其中Y为表示预测输出的随机变量,概率的预测公式为:

再计算交叉熵损失:

y为标注的真值。

我们来看一下这个网络反向传播的过程:

(1) 计算的梯度:

同时计算的梯度:

(2) 计算通过传播过来的和的梯度:

同时计算通过传播过来的和的梯度:

(3) 计算通过传播过来的和的梯度,并与之前计算的梯度累加:

同时计算通过传播过来的和的梯度,并进行梯度累加:

(4) 计算通过传播过来的和的梯度,并与之前计算的梯度累加:

同时计算通过传播过来的和的梯度,并进行梯度累加:

(5) 计算通过传播过来的和的梯度,并与之前计算的梯度累加:

同时计算通过传播过来的梯度:

当我们解决的问题为序列标注时 (图b),每个时间步的输出都会用于计算损失函数,因此梯度会有更多来源,在此就不进行详细推导了。

RNN的缺陷

RNN存在沿时间步传播的梯度,因此,序列长度在某种程度上可以看作是网络的"深度"。梯度传播的步数(即偏导相乘的次数)越大,梯度消失或梯度爆炸出现的概率越大。在RNN反向传播的过程中,如果发现梯度的幅度超过一定的阈值,则需要进行截断 (最大取该阈值),防止梯度爆炸的发生。此外,RNNCell的激活函数一般采用Tanh或ReLU,也是为了缓解梯度消失的程度。(复习:梯度消失和梯度爆炸)

同时,随着时间步的增加,序列中靠前位置的输入特征,它们的影响也会随着时间步逐渐衰减,造成信息的遗忘,影响模型序列建模的效果。

相关推荐
CCC:CarCrazeCurator6 小时前
稀疏奖励 vs 稠密奖励:强化学习中的反馈带宽权衡
人工智能·深度学习·机器人
陈 洪 伟8 小时前
Transformer彻底剖析(9):归一化演进——BatchNorm、LayerNorm、RMSNorm、Post-LN / Pre-LN、DeepNorm
人工智能·深度学习·transformer
Kari118 小时前
AI 手写 OCR 在教育场景的工程化:为什么准确率从 82% 做到 99% 这么难
人工智能·深度学习·机器学习
数聚天成DeepSData8 小时前
两批标注数据合并前要核对什么
人工智能·深度学习·机器学习·数据集·deepsdata
布吉岛的石头10 小时前
Java 程序员第 50 阶段3:数据工程:预训练语料清洗与去重
java·开发语言·人工智能·深度学习·transformer
一一哥Sun11 小时前
IVF倒排索引:先看目录,再翻书
人工智能·深度学习·机器学习
电科_银尘11 小时前
【深度学习项目实战·02】Linux服务器环境搭建:从SSH登录到稳定运行项目
linux·服务器·深度学习
AI人工智能+12 小时前
机动车登记证识别技术通过“图像矫正+版面分析+高精度OCR+业务校验”四步流水线,实现对“大绿本”的秒级精准识别
人工智能·深度学习·ocr·机动车登记证识别
具身AGI13 小时前
三维动态只当训练信号,不进推理
人工智能·深度学习·计算机视觉
乐迪信息13 小时前
AI算法盒子船体烟火检测:港口火灾早预警
人工智能·深度学习·算法