RNN 中的序列批处理

数据挖掘 rnn 顺序
2022-03-07 17:10:40

我想知道为什么 RNN 的目标值中的序列批处理会循环回来(我不确定你怎么称呼它),但让我们举个例子:

我们想学习从 1 到 16 的数字序列(我们的输入):

[12345678910111213141516]

批次:2,序列长度:4

首先,我们可以将数据分成 2 个批次:

[12345678910111213141516]

然后我们可以把它分成小批量:

[12349101112]
[567813141516]

然后我们需要为输入创建目标,直观地我们希望目标成为输入的下一个值,所以:

[234510111213]

但是,这不是我通常看到的,而是我看到一个小批量中的最后一个值与第一个值交换:

[23411011129]

那么这样做的直觉是什么?

因为如果我们要学习 1、2、3、4 的序列,但是将 1 作为值 3 的目标,所以没有学习 4,而是学习了 1。

1个回答

在一般情况下重新排序输入是没有意义的,因为顺序可能很重要。在您的示例中,它没有;只要相应的输出保持不变,您就可以对列进行洗牌。

我已经看到输入reversed,这是一种比您引用的更随意的转换,以改进序列到序列模型中的预测,尽管这也不是一成不变的。