论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)

这篇时间序列GAN的论文下载了好久了,但是由于过于复杂,没怎么仔细研读。最近为了进行和自己的GAN对比,找到了他的codebase 准备再仔细读一下,跑一下代码。
《Time Series Generative Adversrial Networks》
作者
JinsungYoon
University of California, Los Angeles, USA jsyoon0823

文章目录

  • 摘要
  • Introduction
    • 自回归方法
    • GAN方法
    • 提出方法
      • TimeGAN:
      • 创新点
  • 相关工作
  • 形式化定义
  • 提出模型(TimeGAN)
    • Embedding and Recovery Functions
    • 生成器和判别器函数
    • 联合学习编码、生成、迭代
  • 实验部分
    • 实验数据集
    • 实验结果
    • 测试每一部分的贡献度
  • 总结

摘要

一个好的生成模型要保留temporal dynamic(时间动态?)的性质。也就是说,生成的序列能还原原始每个时间步之间的关系。
作者说现在的已经提出的GAN方法还不能很好的保留时间序列特有的时间相关性。
提出了新的GAN框架,号称结合了无监督范式的灵活性和监督训练相结合。
通过结合监督目标和对抗目标共同优化的学习型嵌入空间,让网络在采样过程中遵守动态软约束数据。??不太懂这里
根据经验,我们使用真实和合成的时间序列数据集来评估生成真实样本的方法的能力。 定性和定量地,提出的框架在相似性和预测能力方面优于SOTA。

Introduction

一个好的时序生成模型不仅应该捕捉每个时间步的特征分布,还需要捕捉时间步之间潜在的复杂的关系。

自回归方法

一方面,大量工作关注与提高时间序列自回归模型的temporal dynamic为了序列预测。
自回归模型明确的将时间序列模型,分解为条件分布的乘积:
∏ t p ( X t ∣ X 1 : t − 1 ) \prod_{t}p(X_t|X_{1:t-1}) tp(XtX1:t1)
尽管自回归方法在预测中很有效,但是本质上是确定性的。从无需添加外部条件就能获得新序列的角度看,也不是一种“生成”方法。

GAN方法

另一方面的分支就是,直接用RNN初始化GAN生成 p ( X 1 : T ) p(X_{1:T}) p(X1:T)。重要的是:这种直接简单的对于序列数据应用标准的loss函数,可能(这里原文作者写的may,我自己做的实验是拟合的不错的,个人认为)。不能满足捕捉序列之间的逐步依赖关系。

提出方法

所以作者很机灵的将两者结合起来提出新的机制可以显式的保留temporal dynamic。(感觉这个论文想法不错)

TimeGAN:

  1. 除了利用无监督学习的real和fake样本的对抗loss,还引入了,用原始数据作为监督项的逐步监督损失,明确的让模型捕捉序列数据中的逐步条件分布。这样做的好处是,比起到达基准是真实的还是合成的,训练数据中的信息更多。 我们可以从真实序列的转移动态中明确学习。
  2. 引入了一种嵌入网络embedding network,以提供特征和潜在表示之间的可逆映射,从而降低了对抗性学习空间的高维性。这利用了以下事实:即使是复杂系统的时间动态也往往是由较少且较低维的变化因素驱动的。
  3. 重要的是,通过联合训练嵌入网络和生成器网络,可以将监督损失最小化,以使潜在空间不仅可以提高参数效率,而且还可以通过特定条件来方便生成器学习时间关系。
  4. 最后,将框架通用化以处理混合数据设置,在该设置中可以同时生成静态数据和时间序列数据。

创新点

  1. 无监督GAN于有监督的自回归的第一次结合。
  2. 定性地,进行t-SNE 和PC]分析以可视化生成的分布与原始分布的相似程度。
  3. 定量的,事后分类器如何区分真实序列和生成序列。 此外,通过将“综合训练,真实测试(TSTR)”框架应用于序列预测任务,可以评估生成的数据保留原始数据的预测特征的程度。
  4. 最重要的,达到了SOTA效果。

相关工作

本文方法跨越了多个研究的交叉点,自回归模型进行序列预测,基于GAN的序列生成方法和时间序列表示学习方法相结合。

  1. 自回归模型预测时间序列方法:确定的,不能通过学习到的分布抽样。
  2. GAN的缺点:可能?不能捕捉temporal dynamic
  3. 时间序列表示学习:相比之下,作者提出的方法可以推广到任意时间序列数据,并在每个时间步长合并随机性,并采用嵌入网络为生成模型识别低维空间,以学习数据的逐步分布和潜在动态。

形式化定义

比较特殊的是,作者把认为时间序列含有两种特征,static features 和temporal features,默认了多变量时间序列。
终极目标是,学习到p_hat近似实际分布。
有以下两个损失函数:
论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)_第1张图片
GAN用来计算式1的整个分布,JS散度。
然后式2通过原始数据的极大似然估计,减小KL散度也就是交叉熵。作者说,通过第二个loss可以很自然的知道第一个loss的对抗训练???

提出模型(TimeGAN)

包括四个部分:

  1. embedded function
  2. recovery function
  3. sequence generator
  4. sequence discriminator
    前两个式自编码组分,后两个是GAN的成分,
    因此TimeGAN同时学习嵌入特征,生成表示,随时间迭代。
    嵌入网络提供了潜在的空间,对抗网络在该空间内运行,真实数据和合成数据的潜在动态通过监督丢失而同步。

Embedding and Recovery Functions

  • embedded function:RNN网络实现
    在这发图片描述
  • recovery function:在这里插入图片描述
    请注意,嵌入和恢复函数可以通过任何选择的体系结构进行参数化,唯一的规定是它们是自回归的并且服从因果顺序(即,每个步骤的输出只能取决于先前的信息)。 例如,可能要通过时间卷积来实现前者[31],或者通过基于注意力的解码器来实现后者[32]。 在这里,我们选择实现3和4作为最小示例来隔离收益来源。

生成器和判别器函数

生成器:
在这里插入图片描述
判别器:
在这里插入图片描述

联合学习编码、生成、迭代

reconstruction loss
在这里插入图片描述
GAN的对抗loss:
在这里插入图片描述
仅仅依靠鉴别器的二进制对抗性反馈可能不足以激励生成器捕获数据中的逐步条件分布。 为了更有效地实现这一目标,我们为进一步的学科学习引入了额外的损失。 以交替的方式,我们还以闭环模式训练,其中生成器接收实际数据的嵌入序列h1:t-1(即由嵌入网络计算)以生成下一个潜在向量。
监督损失:
在这里插入图片描述
总的来说, L S L_S LS用来让模型拟合时间步之间的动态关系,通过嵌入网络的真实隐变量作为目标。 L U L_U LU用来拟合真实的分布,用对抗评估。
网络架构:论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)_第2张图片
优化函数:论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)_第3张图片
论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)_第4张图片

实验部分

Benchmark:
类似的方法:RCGAN,C-RNN-GAN
自回归模型:RNN with Teacher-forcing/Professor-forcing
额外的:WaveGAN(基于WaveNet)
三种评估准则:

  1. 多样性
  2. 保真度
  3. 实用性,即用合成的样本训练,测试真实样本
  • 可视化:t-SNE和PCA在二维平面进行模型分布比较。
  • 判别得分(discrimination score):真是样本标为1,合成样本标为0;训练一个现成的LSTM分类器,然后用测试集的错误率作为得分。
  • 预测得分(predictive score):用合成样本集训练一个LSTM模型,预测下一时间步的值。再用模型在原始数据集测试。

实验数据集

考虑到时间序列的周期性、离散性(我现在还没涉及离散数据)、噪声水平、步长规律等,用了以下四个数据集:

  1. Stock:多变量时间序列,特征之间有相关, 连续实值,具有周期性。volume and high, low, opening, closing, and adjusted closing prices.等特征
  2. Sine:模拟具有不同频率η和相位θ的多元正弦序列,提供连续值,周期性,多元数据,其中每个特征彼此独立。
  3. Energy:具有高噪声周期性,较高维数和相关特征的数据集。 UCI Appliances的能量预测数据集由多变量,连续值的测量组成,包括以紧密间隔测量的众多时间特征。
  4. Event(离散数据集):离散值和不规则时间戳为特征的数据集。 我们使用由事件序列及其时间组成的大型私人肺癌通路数据集,并对事件类型的单编码序列以及事件时间进行建模。

实验结果

论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)_第5张图片
TimeGAN 在自己创造的两个Score上面都是SOTA。

测试每一部分的贡献度

控制变量法,去除某一个部分再训练:
论文阅读:《Time Series Generative Adversrial Networks》(TimeGAN,时间序列GAN)_第6张图片

总结

在本文中,我们介绍了时间GAN,这是一种时间序列生成的框架,它将无监督GAN方法的多功能性与对有监督的自回归模型提供的条件时间动力学的控制相结合。 利用有监督监督的贡献和受过联合训练的嵌入网络,TimeGAN在生成现实的时间序列数据方面展示了对最新基准的一致,显着的改进。 将来,可能会进行进一步的研究,以将差分隐私框架纳入TimeGAN方法,以生成具有差分隐私保证的高质量时间序列数据。
感觉只要做时间序列生成的都要涉及到差分隐私的东西,为了强调数据的保密性。

如果有做时间序列GAN生成方面的小伙伴可以私信我!!!

你可能感兴趣的:(时间序列,GAN)