ICLR 2024 | FTS-Diffusion: 用于合成具有不规则和尺度不变模式的金融时间序列的生成框架

本文主要是介绍ICLR 2024 | FTS-Diffusion: 用于合成具有不规则和尺度不变模式的金融时间序列的生成框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ICLR 2024 | FTS-Diffusion: 用于合成具有不规则和尺度不变模式的金融时间序列的生成框架

原创 QuantML QuantML 2024-04-17 09:53 上海

Content

本文提出了一个名为FTS-Diffusion的新颖生成框架,用于模拟金融时间序列中的不规则和尺度不变模式。这些模式由于其独特的时间动态特性(即模式在持续时间和幅度上的变化重复)而难以用现有方法捕捉。FTS-Diffusion框架由三个模块组成:尺度不变模式识别算法、基于扩散的生成网络以及模式的时间演变建模。通过大量实验,作者证明了FTS-Diffusion能够生成与观测数据高度相似的合成金融时间序列,并在股票市场预测的下游实验中将错误率降低了高达17.9%。据作者所知,这是首次针对金融领域中具有不规则和尺度不变特性的复杂时间序列数据生成问题的研究。

引言:

金融经济研究者已经展示了深度学习在解决金融环境中复杂问题方面的潜力。然而,数据的缺乏和金融数据的低信噪比是阻碍深度学习在金融领域进一步发展的两大障碍。与自然科学不同,金融研究者无法通过实验来获取更多数据,因此金融时间序列受到现有历史的局限。此外,价格和回报数据受到高噪声水平的影响,使得从有限的数据集中提取有用信息变得更加困难。在不足的数据上训练的深度学习模型容易过拟合,不能期望其在未见数据上可靠地表现。

图片

相关工作:

论文回顾了深度生成建模在多个领域生成时间序列数据的进展,特别是变分自编码器(VAEs)、生成对抗网络(GANs)和基于扩散的模型。然而,这些方法在处理具有不规则性和尺度不变性的复杂金融时间序列方面存在挑战。

图片

问题陈述:

金融时间序列中的不规则和尺度不变模式对于假设规律性和均匀性的现有模型来说难以捕捉。论文提出了一个新的框架来模拟这些模式,并将其分解为模式识别、生成和演变三个过程。

FTS-Diffusion框架:

FTS-Diffusion框架是为了生成具有不规则和尺度不变模式的金融时间序列而设计的。这个框架通过分解金融时间序列生成问题为三个主要步骤:模式识别、模式生成和模式演变

图片

1. 模式识别模块 (Pattern Recognition Module)

这个模块的目的是在金融时间序列中识别不规则和尺度不变的模式。为此,论文提出了一种新的算法,称为尺度不变子序列聚类(Scale-Invariant Subsequence Clustering, SISC)。这个算法使用动态时间规整(Dynamic Time Warping, DTW)来处理不同长度和幅度的子序列,并通过贪婪策略来确定最优的分段长度。SISC算法首先通过一个初始化过程来准备候选的聚类中心,然后使用DTW距离来比较候选长度的子序列与聚类中心的距离,从而找到最优的分段。这个过程会迭代进行,直到聚类分配稳定或达到预设的迭代次数。

2. 模式生成模块 (Pattern Generation Module)

这个模块的目标是合成模式的片段。它由两个专门的网络组成:一个扩散网络和一个缩放自编码器(Scaling Autoencoder, AE)。

  • 扩散网络:基于去噪扩散概率模型(Denoising Diffusion Probabilistic Model, DDPM),通过逐步添加噪声(扩散过程)和逐步去除噪声(去噪过程)来模拟模式的生成。去噪过程由一个神经网络近似,该网络学习每一步的去噪梯度。

  • 缩放AE:用于学习可变长度序列与固定长度表示之间的转换。编码器将可变长度的序列拉伸成固定长度的表示,而解码器则从固定长度的表示重构出可变长度的序列。

这两个网络联合训练,使用在模式识别模块中识别出的序列作为训练数据。

图片

3. 模式演变模块 (Pattern Evolution Module)

这个模块负责模拟连续生成的序列片段之间的时间演变。它使用一个马尔可夫链来模型化模式之间的转换状态,包括模式本身、持续时间和幅度。为了捕捉这些状态的时序动态,论文引入了一个模式演变网络,该网络学习给定当前状态的情况下下一个模式的概率以及相应的持续时间和幅度的缩放因子。

合成整个金融时间序列 (Synthesizing Entire Financial Time Series)

FTS-Diffusion将模式视为生成的基本构建块,并基于模式逐个生成合成时间序列。给定一个从历史数据中采样的初始片段,它通过迭代地应用模式生成模块和模式演变模块来生成连续的片段。在每个位置,模式演变网络预测下一个模式及其持续时间和幅度的缩放因子。然后,模式生成模块根据这些状态生成下一个片段。随着更多片段的生成和附加,合成时间序列逐渐增长。这个过程重复进行,直到整个时间序列达到所需的总长度。

图片

数值实验:

作者通过数值实验评估了FTS-Diffusion的性能,并与其他方法进行了比较。实验结果表明,FTS-Diffusion生成的合成金融时间序列在分布上与观测数据高度相似,并且在下游任务中具有实用性。

结论:

论文提出了FTS-Diffusion框架,用于合成具有不规则和尺度不变模式的金融时间序列。通过将金融时间序列生成分解为模式识别-生成-演变过程,并设计了三个专门的模块来实现这一过程。实验结果证实了FTS-Diffusion在合成与观测数据相似的金融时间序列方面的有效性,并为下游任务提供了有用的数据。这是首次在金融领域中生成具有不规则和尺度不变特性的复杂时间序列数据的研究。

论文下载地址:Generative Learning for Financial Time Series with Irregular and Scale-Invariant Patterns | OpenReview

这篇关于ICLR 2024 | FTS-Diffusion: 用于合成具有不规则和尺度不变模式的金融时间序列的生成框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922903

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看