Closed wtysos11 closed 3 years ago
时间序列相关的问题中,时间序列数据可能并不充足。因此,数据增强方式(CV中所使用的)就变得十分重要了。
同时从经验上比较不同的时间序列数据增强方式,比如时域与频域、增强组合,以及对不平衡类的加权。
基于时间序列的各种工作都取得了比较好的成绩,但是这些成功都严重依赖于大量的训练数据来避免过拟合。很不幸的是,并不是所有的时间序列工作都有这么充足的训练数据,因此数据增强方法对于一个成功的深度学习模型来说是非常重要的。
数据增强的基本想法是产生合成的数据集来覆盖没有探索到的输入空间,并维护正确的分类标签。数据增强方法在AlexNet于图像分类任务中得到了验证。
尽管如此,很少有工作注重于通过增强方法找到更好的时间序列数据。
结构:首先从时域的简单转换开始。 讨论更多时间序列中的高级转换,在时域与频域变换方面 引入高级方法,比如基于分解的方法、基于模型的方法、基于学习的方法等。最后还介绍了GAN在时间序列领域的应用。
评价方法在时间序列预测、时间序列分类与时间序列异常检测中进行。
时域上的变化是最直接的,比如注入高斯噪声或更复杂的噪声(spike、step-like trend、slope-like trend)此外还有在异常检测领域中使用的标签扩展方法
窗口剪切(window cropping or slicing)与CV中的切割是类似的。这是一种降采样的方法,随机地从原始时间序列数据中提取连续片段。对于分类问题,片段的类别与原始类别是一样的,
Window wrapping是类似于DTW的方法,选择一个随机地时间分安慰,然后对其进行上采样或者降采样
flipping时是一种通过翻转产生新序列的方法,其值为原时间序列的相反数,然而标签始终是相同的。
另外一种转换方法在Fawaz 2018中被提到,使用DTW和基于DBA的组合方法来产生新的时间序列,其在UCR数据集的分类效果提升显著。
噪声注入,是将小规模噪声或离群点注入时间序列,同时不改变其标签。注入包括高斯噪声,spike(尖峰)
标签扩展方法,这是为时间序列异常检测所使用的。
大部分的数据增强方法注重于时域,但是也有部分方法放在了频域上。
比如Gao 2020的工作对振幅amplitude spectrum和周期phase spectrum进行利用,使用了基于CNN的异常检测。
使用高斯噪声来代替原本的振幅,phase的值由原本的随机选择片段加上一个均值为0的高斯噪声。这被称为APP方法。
Lee 2019提出了AAFT和IAAFT,在傅里叶变换中采用随机地phase shuffle in phase spectrum,使用rank-ordering的时间序列在inverse FFT中。这样时间序列经过变化后能够保留时序相关性、power spectra和amplitude的分布
时域-频域分析是时间序列分析的重要技术,可以用来构建神经网络输入数据。但是这方面的工作同样较少。
Steven Eyobu and Han, 2018采用short FFT来为传感器数据产生时域-频域特征,指导人类活动分类任务的数据增强,使用LSTM网络。
用了两种数据增强方式,一种是基于定义的评价标准进行了本地的平均化,对产生的特征集合的特征进行了平均。另一种是打乱了特征向量来产生变化。
略过,Learning-based的可能可以看一下,但我不觉得GAN对时间序列预测有什么帮助。
作者实现了MQRNN、DeepAR与Transformer,使用第二部分提到的数据增强方法,平均每个方法都有16%以上的强化,对于m4-hourly数据集提升特别显著,MQRNN提升了一倍多,其他的也有50%。
时域与频域分析上,CWT和DWT等小波变换方法值得考虑。
如何将不同的增强方法组合起来也是值得让人思考的。
Wen Q, Sun L, Song X, et al. Time series data augmentation for deep learning: A survey[J]. arXiv preprint arXiv:2002.12478, 2020.
一篇关于时间序列增强的论文,很有意思。