目录
2、时间序列处理
一、文献基本信息
题目:TTS-GAN: A Transformer-based Time-Series Generative Adversarial Network
会议:International Conference on Artificial Intelligence in Medicine (AIME 2022)
原文:https://arxiv.org/pdf/2202.02691v2.pdf
源码:https://github.com/imics-lab/tts-gan
二、基本内容
1、课题研究背景
医学机器学习应用中最常见的数据类型之一是以时间序列形式出现的信号测量。 然而这样的数据集通常很小,使得深度神经网络架构的训练无效。因此需要探寻有效的数据扩充方法来对数据集进行增广,提升模型效果。其中GAN(生成对抗网络)是一个有效的工具。
2、现有方法的不足
基于RNN的GAN不能有效地对具有不规则时间关系的长序列建模,且存在梯度消失问题。
3、创新点
- 创建了一个纯粹基于Transformer编码器的GAN来生成时间序列数据(TTS-GAN)。
- 提出几种方法,更有效地在时间序列数据上训练基于transformer的GAN模型。
三、具体网络结构
1、TTS-GAN
TTS-GAN模型结构如图1所示,包含两个主要组件,一个生成器和一个鉴别器,都是基于Transformer的编码器架构构建的。其中编码器是由两个复合块组成的。第一块由多头自注意模块构成,第二块由具有GELU激活函数的前馈MLP构成。在两个块之前应用规范化层,在每个块之后添加dropout层,两个块都使用残差连接。
生成器 :
生成器首先接收一个1D向量,其中N个均匀分布的随机数值在(0,1)范围内,即。N表示合成信号的潜在维数,是一个可调的超参数。然后将向量映射到具有相同实际信号长度和嵌入维数为M的序列,其中M也是一个可以改变的超参数;接下来,将序列划分为多个patch,并在每个patch中添加一个位置编码值。然后将这些pstch输入到Transformer的编码器块;之后将编码器的输出通过Conv2D层以降低合成数据的维数,Conv2D层卷积核大小为(1,1),不会改变合成数据的宽度和高度。
鉴别器:
鉴别器架构类似ViT模型(一种二分类器)。在TTS-GAN中,将任何输入序列视为高度为1的图像,输入的时间步长是图像宽度。因此,要在时间序列输入上添加位置编码,只需要将宽度均匀地分成多个片段,并保持每个片段的高度不变。
2、时间序列处理
将时间序列数据视为是高度为1的图像。时间步长是图像的宽度W,一个时间序列序列可以有一个单通道或多个通道,这些通道可以被看作是一个图像的通道数(RGB) c,因此输入序列可以用大小矩阵(Batch Size,C,1,W),然后选择一个patch大小为N,将序列划分为W/N个patch。然后,我们在每个patch的末尾添加一个软位置编码值,该位置值在模型训练过程中学习。因此,鉴别器编码块的输入将具有数据形状(Batch Size,C,(W=N) + 1)。过程如图2所示。
四、实验
1、数据集
-
模拟正弦波
-
UniMiB人类活动识别(HAR)数据集
-
PTB诊断ECG数据库
2、实验结果
真实数据和TTS-GAN生成的数据可视化结果:
使用PCA(主成分分析法)和t-SNE(用于高维数据降维到2维或者3维),进行可视化 :
将TTS-GAN生成的序列和RNN-GAN生成的序列与同类真实序列的相似性进行了比较: (avg_cos_sim,越大越好; avg_jen_dis,越小越好)