利用合成数据进行时间序列分类的数据扩充方法
Data augmentation using synthetic data for time series classification with deep residual networks
利用合成数据进行时间序列分类的数据扩充方法
Abstract
数据增强技术在计算机视觉方面使用的十分广泛,对于样本数量较少的数据集来说模型很容易达到过拟合,使用数据增强技术可以有效的见识过拟合的程度。然而在时间序列分类方面的数据增强技术很有限,作者提出了一种基于DTW距离的数据增强技术来填补这一方面的空白。
Introduction
对于图片来说数据增强技术取得了不错的效果,然而应用在时间序列方面效果却并不理想。这可能是因为,对于图片来说数据增强之后并不会改变图片的类别,例如一张猫的图片,通过对图片进行平移,旋转,缩放等变换并不会将猫变为狗,而对于时间序列来说人们无法轻易地控制这种特殊转换对时间序列性质的影响。
本文提出了一种基于DTW的时间序列增强技术,通过在UCR数据集上进行实验,实验结果表明数据增强可以极大地提高神经网络模型对某些数据集的精度,同时对其他数据集有较小的负面影响。最后,提出将这两种训练模型的决策结合起来,说明如何在保证数据集的高增益精度的同时,有效地减少数据增加带来的罕见的负面影响。
Method
- Architecture
网络结构采用残差网络,该网络的输入是一个长度为
l的单变量时间序列。输出由数据集中
C类的概率分布组成。网络的核心包含由3个残差块,之后是1个全局平均池化层和一个softmax分类层。每个残差块包含3个1-D卷积层,卷积层大小分别为8,5,3。每个卷积层之后是一个batch normalization然后是Relu激活单元。3个卷积块中的过滤器数目分别为64,128,128。
网络所有的参数初始化使用的是Glorot's Uniform初始化方法,优化器使用Adam,学习率设置为0.001,将第一阶矩估计值和第二阶矩估计值的指数衰减率分别设置为0.9和0.999,最后使用cross-entropy作为网络的代价函数。
- Data augmentation
作者使用了基于加权形式的DTW重心平均(DBA)技术来进行时间序列数据增强,通过简单地改变这些权重,该方法可以从给定的一组时间序列创建无穷多个新的时间序列。作者在3中加权方法中采用了一种叫做平均选择法的加权方法。
- 从训练集中随机选择一个初始时间序列开始,我们赋予它一个等于0.5的权重。这个随机选择的时间序列将作为DBA的初试化时间序列。
- 根据DTW距离找到和DBA初试化时间序列最近的5个时间序列。然后在这5个中随机选择两个,并将这两个的权重都设置为0.15。
- 为了使权重之和等于1,训练集中剩下的时间序列的权重和为\(1-0.15*2-0.5=0.2\),将剩下的时间序列平均分配这0.2的权重。
- 平均序列的生成使用加权的DBA算法。
其他平均序列生成的算法将在作者以后的研究中使用。
Result
实验结果表明,在最坏的情况下,数据增强可以显著提高深度学习模型的准确性,同时对一些数据集产生较小的负面影响。为了使数据增强更具有泛化性能,作者使用了集成两个残差网络(有数据增强和没有数据增强的),事实上,是对两个分类器输出的每个类的后验概率求平均值,然后为每个时间序列分配平均概率最大的标签,从而为样本外生成的时间序列提供了一种更健壮的方法。结果表明从数据扩充中获益最多的数据集,其精度几乎没有变化。
[原文地址][https://arxiv.org/abs/1808.02455]
- 利用Python进行数据分析——时间序列[十](1) .
- 利用Python进行数据分析--时间序列
- 利用python进行数据分析-时间序列2
- 利用python进行数据分析-时间序列1
- 利用python进行数据分析-时间序列3
- OWI监控和收集方法——利用PL/SQL过程进行性能数据采样(2)
- 昨天写了利用时间序列搜索方法预测股票价格程序
- 利用tca时间聚簇分析方法分析fmri数据
- 跪求!利用深度信念网络工具箱对凯斯西出大学轴承数据进行分类错误率无法降低怎么办
- block为什么用copy?利用runtime运行时的objc_方法为分类扩充成员变量
- 利用python实现对分类变量与数值变量混合的数据进行聚类分析
- 数据挖掘-利用逻辑回归算法进行分类
- 利用Post方法进行数据提交
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- android利用httpclient实现post、get请求restful接口进行json和form表单数据提交等公共方法类
- 日志和告警数据挖掘经验谈——利用日志相似度进行聚类,利用时间进行关联分析
- 基于演化博弈数据利用压缩感知方法进行网络重构
- 利用神经网络进行音频数据分类
- SpringMVC中利用@InitBinder来对页面数据进行解析绑定的方法
- 时间序列预测基础教程系列(5)_Python中数据可视化方法汇总