pytorch 一种序无关的深度学习模型

zf2sa74q  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(127)

我有一个具有平行时间序列的数据集。数据行'A'相依于数据行'B'和'C'。相依数据行的顺序(和数目)可以变更。例如:

A   B    C
2022-07-23  1  10  100
2022-07-24  2  20  200
2022-07-25  3  30  300

我应该如何转换这些数据,或者我应该如何建立模型,以使列'B'和'C'的顺序('A','B','C' vs 'A',C ',' B ')不会改变结果?我知道GCN,但我不知道如何实现它。也许有其他方法可以实现它。
最新消息:
我想概括一下我的问题,再举一个例子。假设我们有一个矩阵作为单个观测值(没有时间序列数据):

col1 col2  target
0     1    a      20
1     2    a      30
2     3    b      30
3     4    b      40

我希望为每个行/示例预测一个值'target'。每个示例都依赖于其他示例。行的顺序无关紧要,并且每个观察中的行数可以更改。

toe95027

toe950271#

您正在查找列上的排列不变运算。
实现这一点的一种方法是应用列操作,然后是全局池操作。
如何实现您的目标:

  • 列式运算是置换equivariant;即对列应用操作并置换输出,与置换列然后应用操作是相同的。
  • 跨列的全局池化操作(例如,max-pool、avg-pool)是置换不变的:平均池的结果不依赖于列的顺序。
  • 在置换等变运算之上应用置换不变运算得到整体置换不变函数。

此外,你应该看看自我关注层,它们也是排列等变的。
我会尝试的是:
1.学习单个时间序列的表示(RNN/Transformer)。将此表示应用于ABC
1.了解A表示与BC表示之间的转换器:也就是说,使用A的表示作为“查询,”使用BC的表示作为“键”和“值”。
这将给予A的表示,它在BC中是置换不变的。

更新日期(2022年8月3日):

对于具有可变行数和固定列数的“观察”的情况:
我认为您可以将每一行视为一个“标记”(具有固定的维度=列数),并应用Transformer编码器从编码的标记中预测每个“标记”的目标。

相关问题