文章 "交易中的神经网络:搭配区段注意力的参数效率变换器(PSformer)"

 

新文章 交易中的神经网络:搭配区段注意力的参数效率变换器(PSformer)已发布:

本文讲述新的 PSformer 框架,其适配雏形变换器架构,解决与多元时间序列预测相关的问题。该框架基于两项关键创新:参数共享(PS)机制,和区段注意力(SegAtt)。

《PSformer:搭配区段注意力的参数高效变换器,进行时间序列预测》的作者提出了一种基于变换器的创新模型,用于多元时间序列预测,其协同了参数共享原理。

它们引入了一种搭配基于两级区段注意力机制的变换器编码器,其中每个编码器层都包含一个共享参数模块。该模块包含三个含有残差连接的全连接层,允许较低的总体参数数量,同时维持模型组件之间的有效信息交换。为了将注意力专注于区段内,它们应用了一种补片方法,将可变序列拆分为单独的补片。然后,在不同变量中占据相同位置的补片被分组至区段。每区个段都成为单变量补片的空间延伸,有效地将多变量时间序列划分至多个区段。

在每个区段内,注意力机制强化了捕获局部时空关系,而跨区段信息整合提升了整体预测精度。作者还结合了 SAM 优化方法,在不降低学习性能的情况下进一步降低了过度拟合。在长期时间序列预测数据集上拓展实验表明,PSformer 提供了强大的结果。PSformer 在 8 个关键预测基准中的,有 6 个优于最新潮的模型。


作者:Dmitriy Gizlyk

 

我发现第二个参数 "SecondInput "未使用,因为 CNeuronBaseOCL 的 feedForward 方法有两个参数,内部调用的是单参数版本。您能确认这是否是一个错误吗?

class CNeuronBaseOCL : public CObject
{
   ...
   virtual bool feedForward(CNeuronBaseOCL *NeuronOCL);
   virtual bool feedForward(CNeuronBaseOCL *NeuronOCL, CBufferFloat *SecondInput) { return feedForward(NeuronOCL); }.
   ...
}

Actor.feedForward((CBufferFloat*)GetPointer(bAccount), 1, false, GetPointer(Encoder),LatentLayer); ?

Encoder.feedForward((CBufferFloat*)GetPointer(bState), 1, false, GetPointer(bAccount));?