摘要

在时间序列分类任务中,针对时间序列数据少和多样性导致深度学习模型准确率不高的问题,提出 Mixup 数据增强的长短期记忆网络–全卷积网络LSTM-FCN)时间序列分类算法。该算法首先使用 Mixup对原始数据进行数据增强,通过简单的线性插值对时序数据进行混合,得到新的混合之后的增强数据;然后使用增强数据训练 LSTM-FCN,并进行分类。在 30 UCRArchive2018 数据集上的实验结果表明,使用 Mixup 数据增强的 LSTM-FCN在 26 数据集上取得了比LSTM-FCN 好的分类准确率,最高提高了 4.79%。实验结果说明了本文方法可以提高深度学习模型的分类准确率。

关于时间序列分类的相关研究:

Wang 等提出了全卷积网络(fully convolutional network,FCN)和 ResNet模型,实现了端到端的训练过程,避免了复杂的特征工程。
金海波 针对传统 Shapelets算法时间复杂度高的问题,提出一种快速发现算法,完成了算法的并行化。
张国豪等提出了一种结合卷积神经网络 (convolutional neural networks,CNN) 和双向门控循环单元(gate recurrent unit,GRU)的模型结构,用于提取时间序列数据的卷积特征和时序特征,该模型利用了2 种特征信息完成了对时序数据的分类。
胡紫音等利用注意力机制在多元时序数据中进行特征选择,解决了高维数据特征提取问题。
王会青等利用反向传播神经网络提取时间序列特征用朴素贝叶斯分类,解决了有限数据集的分类问题。
Iwana 等提出 5 种原型选择算法,并利用动态时间归(dynamic time warping,DTW)计算序列与原型之间的局部距离特征作为 CNN的输入,充分探索了局部距离特征的分类潜力。
姜逸凡等利用孪生网络衡量序列之间的相似性进行分类。
Karim 等尝试将长短时记忆网络(long short-term memory,LSTM)和全卷积网络结合提出了LSTM-FCN模型,该模型同时提取时间序列的局部特征和长期依赖关系,在多个数据集上取得了优于 FCN、ResNet 等模型的结果。

研究出发角度

上述都是在模型层面对序列分类进行优化,除此之外,我们也可以考虑其他的性能提升方法,本文便是从数据角度出发,针对许多应用中的标记数据存在局限性,例如数据量小、类别不平衡等,进而影响模型的分类性能。

初始模型:


该模型由 2 个分支组成,分别为时序卷积分支和长短时记忆分支。其中,时序卷积分支采用了全卷积网络模型,该部分包含 3 个卷积块,每 一 块 都 由 一 个 一 维 卷 积 层块 归 一 化ReLU 激活函数组成,最后一层由全局平均池化取代全连接层以减少模型参数;长短时记忆分支使用了一层 LSTM 网络,同时加入 Dropout 缓解模型的过拟合情况。最后拼接 2 个分支的输出,并使用 Softmax 对得到的特征进行分类。

多尺度卷积神经网络(MCNN),全卷积网络(FCN)和残差网络(ResNet)是利用卷积神经网络(CNN)进行端到端的深度学习方法变量时间序列的末端分类。 MCNN使用下采样,跳过采样和滑动窗口对数据进行预处理。 MCNN分类器的性能高度依赖于应用于数据集的预处理以及对该模型的大量超参数的调整。另一方面,FCN和ResNet不需要对数据或要素工程进行任何繁重的预处理。使用称为LSTM-FCN的长期短期递归神经网络(LSTM RNN)子模块或称为ALSTM-FCN的LSTM RNN扩展FCN模块来提高FCN的性能。另外,Attention LSTM也可以用于检测输入序列的区域,这些区域通过Attention LSTM单元的上下文向量对类别标签有贡献。

创新点

数据增强作为深度学习中常用的技术手段,可以通过扩充数据集提高模型性能,并在图像处理等领域得到了广泛的使用,然而类似的方法却不能很好地应用到时序数据,例如添加随机噪声随机形变等增强方法。
Mixup是一种基于邻域风险原则的数据增强方法,该算法利用线性插值的方式对 2 个样本和标签进行混合,一定程度上扩展了训练数据的分布空间,从而使模型的泛化能力得到提高。
Mixup主要思想

原论文(ICLR2018收录):Mixup数据增强

核心代码:

criterion = nn.CrossEntropyLoss()
for x, y in train_loader:x, y = x.cuda(), y.cuda()# Mixup inputs.lam = np.random.beta(alpha, alpha)#生成符合Beta分布的值index = torch.randperm(x.size(0)).cuda()mixed_x = lam * x + (1 - lam) * x[index, :]# Mixup loss.    pred = model(mixed_x)loss = lam * criterion(pred, y) + (1 - lam) * criterion(pred, y[index])optimizer.zero_grad()#梯度清零,否则会累加loss.backward()#反向计算梯度,即求导optimizer.step()

代码中并没有直接按照公式计算新的标签\widetilde{y},而是把损失函数也修改成了线性组合的形式。可以自行推导一下,对于交叉熵损失CE,这种方法和计算y~\widetilde{y}y​之后再计算一个单独的损失函数是等效的。而这种写法可以直接使用torch.nn.CrossEntropyLoss()(因为它仅支持整数型的y),所以非常方便。

实验应用


实验过程

具体来说,Mixup 在训练阶段首先对批量数据及其独热 (one-hot) 编码形式的标签进行混合 ,生成新的增强数据 ;然后将增强数据作为LSTM-FCN 的输入,训练 LSTM-FCN 并输出分类结果。训练过程中使用混合标签计算交叉熵损失而不用原始标签。混合之后的标签以概率的形式表达了样本的类别,使得模型在预测结果时得到更平滑的估计。

伪代码

实验环境

本文实验在 Windows10 环境下完成,CPU 为Intel® Core™ i5-8300H CPU @ 2.30 GHz,
GPU 为 NVIDIA GeForce GTX 1050 Ti,代码使用Pytorch 编写,使用分类准确(Accuracy)Raccuracy 和平均排名 (Average rank)Raverage来评估模型的性能。

数据集


此外关于模型参数的设置,与其他增强方法的对比,在这里我便不一一赘述了,详情可自行查阅该论文。

基于 Mixup 数据增强的 LSTM-FCN 时间序列分类

基于 Mixup 数据增强的 LSTM-FCN 时间序列分类学习记录相关推荐

  1. 基于爬行动物搜索RSA优化LSTM的时间序列预测

    0 引言 基于LSTM进行时间序列预测方法简单有效.LSTM的出现为时间序列预测提供了一个新的研究方向.然而,与大部分网络模型一样,LSTM效果受其超参数设置的影响.为此,本文采用爬行动物搜索Rept ...

  2. 基于BiGRU-Attention网络的 新型冠状病毒肺炎疫情预测学习记录

    **摘要:**对新型冠状病毒肺炎疫情的准确预测能为疫情防控政策的制定提供重要依据,为此提出基于双向门控循环单元(BiGRU)和注意力机制(AttentionMechanism)的预测模型.考虑到新冠肺 ...

  3. 经典语义分割FCN网络的学习记录(PPT,附有文章链接)

    更多详细文字内容请访问:这里. 这个PPT也是自己学习FCN的一个记录,总结下来一来是将知识记录,二来呢是和大家分享(小白入门级),希望和大家一起交流,共同进步.

  4. (3)看门狗 WDT:基于GD32F303RCT6单片机在RT-Thread下的零基础学习记录

    使用看门狗功能,一如既往地需要先使用ENV工具,打开看门狗功能,如下图 开启后重新编译工程, 然后当我开开心心地去粘贴官方的demo(WATCHDOG设备 (rt-thread.org))(文章最后会 ...

  5. 基于图像的数据增强方法发展现状综述

    基于图像的数据增强方法发展现状综述 人工智能技术与咨询 2022-03-22 20:57 点击蓝字 · 关注我们 来源:< 计算机科学与应用> ,作者冯晓硕等 关键词: 数据增强:图像数据 ...

  6. 目标检测常见数据增强算法汇总讲解(Mixup,Cutout,CutMix,Mosaic)

           在学习目标检测算法的过程中,发现了一些有趣的目标检测算法,打算简单写个笔记,不足之处还望谅解,可以在评论中指出来.         目标检测作为需要大量数据的算法,在实际情况中经常面临数 ...

  7. ACL’22 | 为大模型定制的数据增强方法FlipDA,屠榜六大NLU 数据集!

    文 | ZenMoore 编 | 小轶 今天由一篇清华大学发表于 ACL'22 的最新论文说起,一起探讨一下:大模型时代,我们该如何进行数据增强? 大家可能都多少了解一些传统的数据增强方法,比如回译. ...

  8. 总结 62 种在深度学习中的数据增强方式

    数据增强 数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程 这包括对数据进行不同方向的扰动处理 或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而 ...

  9. 从 CV 到 NLP,深度学习领域的数据增强有哪些?

    2019-12-09 04:31:10 作者 | 张宁(哈工大SCIR) 编辑 | 唐里 本文转载自公众号 哈工大SCIR 数据增强(Data Augmentation)是一种通过让有限的数据产生更多 ...

最新文章

  1. linux 下的服务
  2. 更高效的PacBio长read纠错算法的研究
  3. 分布式缓存的面试题9
  4. android 日期相,Android日历始终保持相同的日期
  5. 图解cacti简单使用
  6. LeetCode 2162. 设置时间的最少代价(枚举)
  7. 2名数学家或发现史上最快超大乘法运算法,欲破解困扰人类近半个世纪的问题...
  8. unix环境高级编程 pdf_UNIX环境高级编程——记录锁
  9. web.config学习之assembly
  10. 系统服务启动交互式程序(C++)
  11. linux下WMB通过ODBC连接数据库
  12. WRF users guide Chap5
  13. 百度地图API获取行政区域边界(省、市、区县)
  14. request.getHeader、request.getHeaders、request.getHeaderNames
  15. 同轴电缆阻抗总结(电阻、阻抗、特性阻抗)
  16. 【苹果群发苹果相册推】通过安装软件或使用此类Apple Services
  17. K210神经网络的训练以及出现内存不足的情况memory not enough解决方案
  18. Intel 3945ABG用OmniPeek 4.1抓包破解WEP
  19. 微软之行总结(删节稿)
  20. 缠中说禅的理解与运用

热门文章

  1. 怎样使div铺满整个屏幕
  2. Centos7挂载ISO镜像
  3. Groovy使用字符串
  4. C#——飞行棋流程图(很详细)
  5. html鼠标悬停弹出,纯css实现鼠标滑过弹出层效果
  6. STM32CubeMX——LED定时闪烁和输出PWM波
  7. iphone,ipad分辨率大全
  8. Qbao Network携手FinCredit Protocol启动大规模空投
  9. 机车计算机模糊规则表,计算机编制机车周转图有什么要求?
  10. 程序员每天晚上都去翻垃圾,竟然年入 60 万美元?