【问题标题】:Order-independent Deep Learning Model顺序无关的深度学习模型
【发布时间】:2022-10-19 20:22:09
【问题描述】:

我有一个具有并行时间序列的数据集。 “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

我想为每一行/实例预测一个值“目标”。每个实例都依赖于其他实例。行的顺序无关紧要,每个观察中的行数可以改变。

【问题讨论】:

    标签: tensorflow keras deep-learning pytorch


    【解决方案1】:

    您正在寻找列上的置换不变操作。

    实现这一点的一种方法是应用按列操作,然后是全局池操作。
    如何实现您的目标:

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

    此外,您应该查看自注意力层,它们也是置换等变的。

    我会尝试的是:

    1. 学习单个时间序列的表示(RNN/Transformer)。将此表示应用于ABC
    2. 学习A 的表示与BC 的表示之间的转换:即将A 的表示用作“查询”,将BC 的表示用作“键”和“值”。

      这将为您提供A 的表示,它在BC 中是排列不变的。


      更新(8月3日rd, 2022)

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

    【讨论】:

    • 谢谢!我有另一个问题。如果我有一个张量 m x n 作为单个观察值(没有时间数据)并且想预测一个大小为 m 的张量(每行一个值)。这 m 个输入张量(行)的顺序无关紧要。我应该使用相同的策略吗?
    • @非常感谢您的帮助。第一个版本有效。我尝试实现多标签版本并发布此question
    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2017-10-22
    • 2018-02-03
    • 2015-12-31
    • 2021-05-05
    • 2017-12-25
    • 2021-04-08
    相关资源
    最近更新 更多