RNN 随时间反向传播的替代方法

数据挖掘 机器学习 神经网络 rnn lstm 反向传播
2022-03-07 05:38:16

我正在尝试使用字符级 LSTM 模型来执行标准任务,即在给定字符序列的情况下预测下一个字符。我正在使用随时间截断的反向传播 (BPTT) 来训练网络。

我正在尝试比较两种为此任务设置训练示例的技术。对于下面的图表,假设输入序列是字母表:“abcde ...”,BPTT 的水平线大小为 3。据我了解,训练网络的标准方法是:

训练示例 1('d' 是目标字符):

在此处输入图像描述

训练示例 2:

在此处输入图像描述

训练示例 3:

在此处输入图像描述

技术#2

这是我认为合理的替代设置:

训练示例1:

在此处输入图像描述

此训练示例具有三个单独的目标字符。来自 'd' 的错误通过完整的三个时间步进行反向传播。但是,来自“c”的错误通过两个时间步进行反向传播,而“b”通过一个时间步进行传播。

训练示例 2:

在此处输入图像描述

训练示例 3:

在此处输入图像描述

对于在 N 个字符上训练单个 epoch,第二种技术具有显着的时间复杂度改进。增加地平线大小对运行时间没有影响。较大的水平尺寸会减少训练样例的数量,但每个训练样例会有更多的目标字符(即更有意义的权重更新)。

这第二种技术是否完全用于训练 LSTM?有没有相关链接?为什么第一种技术更常用?是否有同样有效的替代训练示例设置?

0个回答
没有发现任何回复~