今天带大家精读的论文是 《Short-term water demand forecast based on automatic feature extraction by one-dimensional convolution(基于一维卷积自动特征提取的短期用水需求量预测)》。该论文是一篇以短期用水量需求预测为背景的Rearch paper,由同济大学环境科学与工程学院、同济大学智能水联合创新研发中心与阿里云计算有限公司联合发表。

所属期刊《Journal of Hydrology(水文学杂志)》是地球科学大类下中科院1区top,影响因子5.722。

*中科院分区以2021年12月最新升级版为准。

框架结构

离群值处理+一维卷积提取信号特征GRU预测

亮点:

  • 离群值处理方法S-H-ESD(通过分析STL新生成的残余项,从统计学角度甄别离群值)

  • 一维卷积+GRU(较为常见,学习思想)

  • 随机选取不同位置、不同长度的数据集进行训练

  • 新颖的验证集调整超参数的训练策略early-stop strategy

1 S-H-ESD

S-H-ESD (Seasonal Hybrid Extreme Student Deviate)离群值处理方法是由Rosner在1983年提出的方法[1],能够解决残余项上的异常值问题。为了获取残余项,该方法首先通过STL分解方法将原始序列分解为季节项、趋势项和残余项,但考虑到此方法分解出来的残余项可能包含虚假异常,或多或少会影响去除异常值的效果,因此将求残余项的公式由

改为其中median(O)代表原始时序的中值。这样求出来的残余项中带有部分趋势项,降低去除虚假异常的风险。之后,采用Grubbs[2]方法将最大(小)的前k个值标记为离群值进行处理。

2 Conv1D-GRU

卷积神经网络对于对于初次接触卷积神经网络的人来说,需要知道卷积神经网络多应用于提取数据的特征,其中最常见的是二维卷积(提取图像特征)和一维卷积(提取时间序列的信号特征)。当然,除此之外还有用于视频处理领域的三维卷积,在此不做描述。

卷积神经网络包括三个环节:卷积层、池化层、全连接层

  1. 卷积层:提取信息中的特征

  2. 池化层:将提取出来的信息进行压缩,抓住主要特征的提高特征提取效率

  3. 全连接层:将捕获出来的特征进行整合,生成一个非线性特征组合

为了更好地理解卷积,我们先从二维卷积开始理解,见图:

对于上述图片中的内容有几点我做下解释:

  • 卷积如何计算

    以图片上5*5的卷积核(即过滤器)为例,在14*14的输入数据里面所有5*5的网格中依次游走遍历,每一次都将卷积核与输入数据中对应方格中的数字相乘并加和,卷积的结果是得到一个10*10数据维度的输出结果。

  • channel

    由于任意颜色均是由红黄蓝三原色组成,每一个图片均可看作由红、黄、蓝三个图层的叠加,所以在提取图像特征时,为提取更多局部特征,channel通常取3。

  • 卷积核数量

    卷积核的数量是自己设定的,但必须为channel的倍数。举个栗子,如果一个图像计划使用3个卷积核去自动提取特征,仅考虑一个channel时有3个卷积核,若该图像此时分了3个channel则会出现3*3=9个卷积核(每个channel分别训练3个卷积核)。

  • 卷积核如何确定

    卷积核不是自己凭空设定的,是训练出来的。

对于池化层,我们通过这张图能够更直观的理解:

池化层的主要目的是对输入的数据进行压缩,例如上图中出现了两层池化层,都是对上一层的输出在channel不变的情况下进行主要的特征提取,从左到右第二个池化层中将上一层的24个48*48的信息压缩成了24个16*16的网格。池化常见的Max-pool的压缩方式是在某一区域内选取一个最大值。

一维卷积与二维卷积原理相同,相信理解大致的二维卷积神经网络之后能够很顺畅的将思想迁移到一维卷积上来,只不过输入数据是1*n,同样卷积核是1*m的数据格式,如下图。

3 数据划分

本文选取的数据是湖州某一水厂从2017年1月1日到2019年5月31日的用水量,采样时间间隔为15min。本文在训练模型的时候在数据集划分上也做了讨论。其采用随机抽样法在全部数据中随机选取一个数据点,对于该点之后的六天,前三天作为验证集,后三天作为测试集,该点之前的训练集长度又分了7种情况,分别是选取数据点的前7、30、60、90、120、180、365天数据。也就是说每一次随机选取的时间点都能创建7组划分数据集的方式,总共随机抽样10次。

4 Early-stop strategy

如何避免神经网络在训练过程中出现过拟合和欠拟合的现象是深度学习中的一个关键问题,找寻一个适配的超参数组合是至关重要的,常用的训练策略为退出策略、正则化策略等,这些方法需要在训练开始前进行设置次数,但由于数据和训练过程的不确定性,训练次数的设置很难拿捏。本文所采用的early-stop strategy是一种适应性训练策略,将训练模型的总次数设置为一个较大的数值(例如10000),通过检测模型对验证集的影响来判断模型训练是否结束,当模型对于验证数据集的效果不再改善时,终止训练,并保存训练结束前的最优神经网络参数。

参考资料

[1]

S-H-ESD方法: 10.1080/00401706.1983.10487848

[2]

Grubbs方法: 10.1080/00401706.1969.10490657

—END—

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
AI基础下载机器学习交流qq群955171419,加入微信群请扫码:

【时间序列】基于一维卷积自动特征提取的短期用水需求量预测相关推荐

  1. 基于一维卷积神经网络的滚动轴承故障识别

    基于一维卷积神经网络的滚动轴承故障识别 文章目录 基于一维卷积神经网络的滚动轴承故障识别 一.数据预处理 二.模型构建 三.模型训练 四.模型测试 总结 一.数据预处理 采用美国凯斯西储大学(CWRU ...

  2. 基于一维卷积神经网络对机械振动信号进行分类并加以预测

    基于一维卷积神经网络对机械振动信号进行分类并加以预测 *使用一维卷积神经网络训练振动信号进行二分类 2020年7月16日,一学期没等到开学,然而又放假了. 总览CSDN中大多数卷积神经网络都是对二维图 ...

  3. 基于小波Elman神经网络的短期风电功率预测

    风力发电在全球范围内快速发展,装机容量逐年增加,截止2013 年底,中国风电新增装机容量约 16.1GW,较 2012 年的 12.96GW 大幅提高了 24%,中国风电累计装机已超过 90GW. 风 ...

  4. 基于图卷积神经网络的城市轨道交通流量预测

    1.文章信息 <Predicting Station-Level Short-Term Passenger Flow in a Citywide Metro Network Using Spat ...

  5. 基于一维卷积Conv1D实现猫狗叫声语音识别

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  6. 基于时空图卷积网络的高速列车调度列车延误预测

    1. 文章信息 <Train Time Delay Prediction for High-Speed Train Dispatching Based on Spatio-Temporal Gr ...

  7. 【GRU时序预测】基于matlab卷积神经网络结合门控循环单元CNN-GRU时间序列预测【含Matlab源码 2287期】

    ⛄一.CNN-GRU数据预测 1 理论基础 1.1 CNN算法 负荷序列数据为一维数据,用一维卷积核对数据进行卷积处理,以获取数据的特征. 现设定卷积核的维度为3,移动步长为1,对输入数据进行卷积,以 ...

  8. 一维卷积神经网络_序列特征的处理方法之二:基于卷积神经网络方法

    前言 上一篇文章介绍了基本的基于注意力机制方法对序列特征的处理,这篇主要介绍一下基本的基于卷积神经网络方法对序列特征的处理,也就是TextCNN方法.序列特征的介绍,背景以及应用可以参考上一篇的详细介 ...

  9. 基于深度学习的x射线图像骨龄自动特征提取

    基于深度学习的x射线图像骨龄自动特征提取 Automatic Feature Extraction in X-ray Image Based on Deep Learning Approach for ...

最新文章

  1. centos7双网卡绑定bond0
  2. python参数类型检查_Python中的类型检查
  3. Java的TreeMap统计单词数量
  4. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
  5. 删除隐藏版本信息 版本回退_Qt如何给程序添加版本信息
  6. Python -- post方式上传文件
  7. 队列的基本操作_算法与数据结构(五) 栈和队列
  8. Unicode汉字编码
  9. 北京Php月收入2w,给你北京户口,前提要辞掉月薪2w的工作,在月薪5千左右的岗位干10年,你干吗?...
  10. DOM(二)——修改内容、属性、样式
  11. Linux 两台服务器之间传输文件
  12. MongoDB C#:如何将包含DateTime的JSON反序列化为正确的BsonDocument DateTime值
  13. Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别
  14. Camshift算法
  15. CMMI认证过程中实施步骤详解
  16. 叶片静频测量方法理论基础(自振法上)
  17. 【转载】printf打印是字体和背景带颜色的输出的方法
  18. 1.java exception handing
  19. 如何安装svelte_svelte js框架介绍编译器
  20. poco新增对cocos c++项目的支持~

热门文章

  1. JSON.parse与eval的区别
  2. android学习笔记53——自动朗读TTS
  3. GTD资源列表[070826更新] - [GTD]
  4. Android自定义顶部栏及侧滑菜单和fragment+viewpag滑动切换的实现
  5. 堆(heap)和栈(stack)
  6. MongoDB学习之(一)安装
  7. Codeforces Round #374 (Div. 2) A , B , C 水,水,拓扑dp
  8. 函数mod(a,m)
  9. Android事件机制详解
  10. 如何在程序中添加iAd广告