生成新序列时使用哪个输入

数据挖掘 rnn 顺序 序列到序列
2022-02-17 06:31:39

我想使用序列到序列架构来生成序列。

我的数据有这样的结构

[0, 0, 1, 0, ..., 0, 1] --> [12.34, 0.78, 1.54, 6.90, ..., 5.32]

我按照本教程来实现它。

通过Encoder网络转发后encoder_hidden用作decoder_hidden. 但是我应该首先使用什么作为decoder_input解码器网络?

原始教程使用Start Of the Sequence令牌,但我不能使用它,因为它被编码为0. 可能0作为一个数字会给解码器提供一些额外的信息。

2个回答

如您所见,通常您需要将“特殊令牌”作为其输入中的第一个元素提供给解码器,以启动自回归生成。

但是,鉴于您的输出是实数(浮点数),这有点棘手,因为您没有处理离散的令牌词汇表,您可以简单地为此保留一个令牌。

我建议使用特定值,例如您的模型应该能够计算出在第一个位置的影响。0.00.0

另一种选择是学习用作第一个标记的值。您将有一个额外的可训练参数,用作第一个位置的值。

您仍然可以0用作Start Of the Sequence令牌。通过向所有值添加一个常量来移动输入数据,例如添加 10。然后将 a 添加0到输入。

输入的线性变换不会影响机器学习模型的学习能力。确保将相同的转换应用于训练和预测阶段。