我想在时间序列数据上训练 Transformer 编码器(例如 BERT),以完成可以建模为分类的任务。在讨论我面临的问题之前,让 met 简要描述一下我正在使用的数据。
我正在使用 90 秒的窗口,每秒可以访问 100 个值(即 90 个大小为 100 的向量)。我的目标是每秒预测一个二进制标签(0 或 1)(即生成长度为 90 的 0 和 1 的最终向量)。
我的第一个想法是将其建模为多标签分类问题,其中我将使用 BERT 生成一个大小为 90 的向量,其中填充 0 到 1 之间的数字,并使用 nn.BCELoss 和 groundtruth 标签进行回归(y_true 看起来像 [ 0,0,0,1,1,1,0,0,1,1,1,0...,0])。一个简单的类比是将每一秒视为一个单词,而我可以访问的 100 个值作为相应的单词嵌入。然后,目标是在这些 100 维嵌入序列上(从头开始)训练 BERT(所有序列长度相同:90)。
问题:在处理文本输入时,我们只需将 CLS 和 SEP 标记添加到输入序列中,然后让标记生成器和模型完成其余的工作。当直接训练嵌入时,我们应该如何考虑 CLS 和 SEP 代币?我的一个想法是在代表 CLS 代币的位置 0 添加 100 维的嵌入,以及代表 SEP 代币的位置 90+1=91 的 100 维嵌入。但我不知道应该对这两个标记使用什么嵌入。我也不确定这是否是一个好的解决方案。
有什么想法吗?
(我尝试在 Huggingface 论坛上问这个问题,但没有得到任何回复。)
或transformer时间序列预测,了解使用转换器处理时间序列数据的实际示例。