Classication of Time-Series Images Using Deep Convolutional Neural Networks[用深度卷积神经网络对时序图分类]

2023-05-16

今天要分享的论文是ICMV2017的一篇非常巧妙的论文。作者是

论文下载链接:https://arxiv.org/abs/1710.00886

关于论文的源码下载链接:https://sites.google.com/site/nimahatami/projects(然而,这个链接,反正我是被墙了,挂VPN好像也没什么用,然后向作者Hatami求助才下载到)这篇论文的源码很短,看上去很简单,嗯,看上去。我还没细看,但已经跑过了。

论文的PDF和源码,还有我的PPT,都上传到CSDN下载资源里面,链接在此:

https://download.csdn.net/download/luolan9611/10537857

如果讲解有误,虚心接受指正。

1.摘要概括:

       大多数时间序列分类(TSC)文献都针对于一维信号,但本文使用递归图RP将时间序列转换为二维纹理图像,然后利用深度CNN分类器识别。本文将序列分类问题转换为了图像识别分类问题,针对UCR时间序列分类档案馆(UCR time-series classication archive)的数据集进行实验,证明了所提出方法与现有的深层架构和最先进的TSC算法相比都有极大的准确性。

2.核心方法:

方法主要分为两步,第一步:将时间序列编码成RP递归图。

三张小图中最左边的是包含12个数据点的时序信号示意图记为(1),中间的是根据时序信号画的二维相空间轨迹示意图记为(2),最右边的是递归图记为(3),该递归图其实是个11*11大小的矩阵。

从(1)到(2):(1)上有12个红点x,点到点为一个状态s,所以有11个状态。状态sn:(xn,xn+1)。也就是说状态sn的位置是(第x个数据点的纵坐标值,第x+1个数据点的纵坐标值)。自己去试着画一画,就能看到(2)中为什么箭头下来到达s3,又上去到达s4了。

从(2)到(3):根据上图Ri,j的那个公式计算R矩阵,用matl。然后前面有一个像e的符号,那个代表的是阈值,用于将彩色的rp图进行阈值化的。因为本文做的实验是直接将rp做成了灰度图,所以那个阈值好像没太管。具体的可以看看论文。然后整体是一个阶跃函数。K是状态s的个数。


第二步:使用深度CNN进行分类识别。


该深度网络的架构如上图所示。有两个卷积层,每个卷积层后的跟着一个ReLU修正线性单元,又两个池化层使用2*2最大池化方法,有2个全连接层。其中C1(size)-S1-C2(size)-S2-H-O,C1和C2是两个卷积层filter的个数,size是kernel大小,H是隐藏层神经元的个数,c表示输出神经元的个数,其实就是要分多少类。

输入的图像大小是有要求的,28*28,56*56,64*64.

3.实验过程:

UCR时序档案馆链接:http://www.cs.ucr.edu/~eamonn/time_series_data/   (可以自己上链接去下数据集哦)该链接是作者给的官方链接,作者的数据就是从上面找的。作者从几十组数据中挑选了20组数据集,和现今的一些时序分类算法做了对比实验。

我自己在网上找了个链接:http://www.timeseriesclassification.com/dataset.php(该链接中点进每一个数据集,会有对这个数据集的介绍,有图有描述,觉得很棒。也可以在上面下载数据集。)

         3.1先给大家介绍一些数据集:

比如50words:这个分类的话就有50个类


比如:Face all和Olive oil:Face all有14个类,Olive oil有4个


比如Coffe和Yoga:Coffe有2个类,Yoga也有2个类


这些数据集都是源于现实生活,想不到吧,这么多神奇的问题居然都被转化成了序列,然后用序列去进行分类。这个思路真的妙~采集到的序列是这样子的,给大家看看数据集,比如我下到的Yoga的数据集,打开train.txt:第一个数是标签,应该代表男或女,后面的就是序列数据了。


           3.2然后就是把序列数据集制作成RP图(使用MatLab)
作者在论文中展示了五种数据集制作的RP图,如下所示:其中的四种我已经给大家介绍过了,还有一个TwoPattern,由于找的那个网站的示意图裂了,我只知道这个数据集有4个类,分别是上升下降什么的。
          3.3用深度CNN训练分类
            实验环境:Python(using Keras) on a PC with 2.4GHzX32 CPU and 32GB memory. 
            输入大小有要求:28*28,56*56,64*64
            2*2最大池化,Dropout=0.25
            全连接层包含128个隐藏的神经元和c个输出神经元,Dropout=0.5
tips:  Dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。Dropout用来防止过拟合提高训练效果。

4.实验结果:

作者是挑选了20组数据和其它的方法做的实验。表头中c指的是分类类别,Ntr是训练样本数,Nte是测试样本数,l指的是序列长度。后面的都是别的方法名称。表中展示的是错误率。针对每种数据集,错误率最低的被加粗显示。作者的方法在10种数据集中都取得了第一名,然后计算了一个平均排位。作者使用的方法的平均排位是最高的。

好啦,今天这篇论文就分享到这里。

针对本论文我做了一个PPT,缩略图展示如下:


论文的PDF和源码,还有我的PPT,都上传到CSDN下载资源里面,链接在此:

https://download.csdn.net/download/luolan9611/10537857

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Classication of Time-Series Images Using Deep Convolutional Neural Networks[用深度卷积神经网络对时序图分类] 的相关文章

  • UML中的五种关系

    UML中的关系 xff08 Relationships xff09 主要包括5种 xff1a 关联关系 聚合关系 依赖关系 泛化关系和实现关系 关联 xff08 Association xff09 关系 关联关系是一种结构化的关系 xff0
  • 摄像头常用接口MIPI,DVP原理图接口定义

    摄像头常用接口 xff1a USB是串行通用串行总线 xff08 Universal Serial Bus xff09 的简称 xff0c 电脑摄像头接口是USB接口 xff0c MIPI MIPI是移动行业处理器接口 xff08 Mobi
  • 内核current指针

    通过current指针获取当前进程信息 current其实一个struct task struct指针 xff0c 指向当前进程 struct task struct task又是struct thread info的一个成员变量 thre
  • DMA(四) - DMA_API_DEBUG

    DMA API DEBUG 为了debug驱动程序及发现使用DMA API时的bug xff0c 检测代码可以编译到kernel中 xff0c 它们可以告诉开发 者那些违规行为 如果你的体系结构支持 xff0c 你可以选择编译选项 Enab
  • CONFIG_KALLSYMS_ALL

    内核配置 在2 6内核中 xff0c 为了更好地调试内核 xff0c 引入了kallsyms kallsyms抽取了内核用到的所有函数地址 全局的 静态的 和非栈数据变量地址 xff0c 生成一个数据块 xff0c 作为只读数据链接进ker
  • sysctl

    sysctl命令用于运行时配置内核参数 xff0c 这些参数位于 proc sys 目录 xff0c 可以使用sysctl修改系统变量 xff0c 也可以通过编辑 etc sysctl conf文件来修改系统变量 sysctl 选项 参数
  • function declaration isn't a prototype解决办法

    对以上程序 xff0c 在编译驱动的时候会出现以下warning 在网上查到解决办法是 xff1a 即使函数括号内没有任何参数 xff0c 也要加一个void类型 xff0c 来避免这种warning xff1a 解决如下 xff1a
  • i2c信号的ACK与NACK

    nbsp nbsp nbsp nbsp nbsp nbsp nbsp 我们平时在调试I2C的时候可能很少去关注NACK信号 只知道如果Master发送数据 MSB先发 LSB后发 连续发送一个字节 8个bit 之后Slave会回复一个ACK
  • ubuntu的recovery mode

    偶尔会遇到Ubuntu无法正常启动的情况 xff0c 这时候需修改某些文件让系统正常启动 xff0c 如果直接进入 recovery 模式 xff0c 默认是文件权限只读 xff0c 无法修改文件 这时我们需要进入recovery 的单用户
  • oprofile库安装与使用

    一 概述 oprofile库是linux平台上的一个功能强大的性能分析工具 xff0c 支持两种采样方式 xff1a 基于事件的采样与基于时间的采样 1 xff09 基于事件的采样 xff1a oprofile只记录特定事件 xff08 比
  • 超声波模块

    HC SR04 简介 HC SR04超声波模块可提供2cm 400cm的距离感测功能 xff0c 测量精度可以达到3mm 模块包括超声波发射器 xff0c 接收器与控制电路 基本工作原理 1 采用Trig引脚触发 xff0c 给至少10us
  • /proc/interrupts

    proc interrupts中的字段依次是逻辑中断号 中断在各CPU上发生的次数 xff0c 中断所属父设备名称 硬件中断号 中断触发方式 电平或边沿 中断名称 proc interrupts的具体实现查看代码kernel irq pro
  • BGP-LS 简介

    BGP LS xff08 BGP Link state xff09 汇总IGP协议收集的拓扑信息上送给上层控制器 产生原因 BGP LS是收集网络拓扑的一种新的方式 BGP LS特性产生前 xff0c 路由器使用IGP xff08 OSPF
  • ubuntu下vnc使用

    使用apt cache search vncserver命令搜索可以用来安装vncserver的软件包 xff0c 这里选用vnc4server安装vnc 2 使用apt get install vnc4server命令安装vncserve
  • 使用“反射”将 Java 中一种对象类型转换为另外一种类型

    将一种对象类型转换为另外一种类型的常用场景 场景如下 xff1a 一般后端是使用 MVC 三层架构进行分层 实体类 User 用于接收数据库中的数据 xff1b 表现层 UserVo 将数据传给前端 这中间免不了要将实体类转换为表现层中的对
  • Ubuntu18.04 vnc灰屏问题

    vnc安装完以后 xff0c 用客户端登录发现只有5901端口可用 xff0c 但是其他端口登录上去以后都是灰屏的 查找了一下 xff0c 需要修改配置文件 vnc xstartup为如下内容 xff1a bin bash export d
  • 安装docker

    1 查看docker安装目录 whereis docker docker usr bin docker etc docker usr libexec docker usr share man man1 docker 1 gz 2 查询运行文
  • 关于PiBOT使用的一些问题汇总--ing

    xff1a 多机通讯是按照教程设置环境变量ROS MASTER URI 初始化 pibot init env sh xff0c 使用rostopic已经能够查看 xff0c 但是主机PC无法启动launch 原因 xff1a 个人测试是需要
  • ubuntu 19.10系统解决E: 仓库 “http://ppa.launchpad.net/webupd8team/java/ubuntu eoan Release” 没有 Release 文件。

    在终端换源后遇到E 仓库 http ppa launchpad net webupd8team java ubuntu eoan Release 没有 Release 文件 问题 解决方法 xff1a 将对应的ppa删除即可 第一步 xff
  • 使用org-mode生成晨检报告

    原文地址 https lujun9972 github io blog 2020 04 10 使用org mode生成晨检报告 index html 我们设置了每天8点多自动进行调用一次晨检脚本 xff0c 该脚本会将检查的一些数据存入本地

随机推荐