CN110647980A - 一种基于gru神经网络的时间序列预测方法 - Google Patents
一种基于gru神经网络的时间序列预测方法 Download PDFInfo
- Publication number
- CN110647980A CN110647980A CN201910883548.8A CN201910883548A CN110647980A CN 110647980 A CN110647980 A CN 110647980A CN 201910883548 A CN201910883548 A CN 201910883548A CN 110647980 A CN110647980 A CN 110647980A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- neural network
- prediction
- gru
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 188
- 238000000034 method Methods 0.000 title claims abstract description 129
- 238000012549 training Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000009499 grossing Methods 0.000 claims abstract description 44
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 210000002569 neuron Anatomy 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 57
- 238000004422 calculation algorithm Methods 0.000 claims description 48
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000010606 normalization Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 13
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 10
- 238000004140 cleaning Methods 0.000 claims description 7
- 210000004027 cell Anatomy 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000011478 gradient descent method Methods 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 4
- 238000013077 scoring method Methods 0.000 claims description 4
- 238000002759 z-score normalization Methods 0.000 claims description 3
- 238000012300 Sequence Analysis Methods 0.000 abstract description 3
- 238000009776 industrial production Methods 0.000 abstract description 2
- 230000000306 recurrent effect Effects 0.000 description 31
- 230000008569 process Effects 0.000 description 27
- 238000003066 decision tree Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 238000013473 artificial intelligence Methods 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 15
- 238000005457 optimization Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 14
- 238000011160 research Methods 0.000 description 13
- 239000013598 vector Substances 0.000 description 12
- 230000004913 activation Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 9
- 230000001976 improved effect Effects 0.000 description 9
- 230000001932 seasonal effect Effects 0.000 description 9
- 238000011426 transformation method Methods 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 8
- 238000007637 random forest analysis Methods 0.000 description 8
- 230000007547 defect Effects 0.000 description 6
- 238000004880 explosion Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000008034 disappearance Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000012417 linear regression Methods 0.000 description 5
- 230000007774 longterm Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000012706 support-vector machine Methods 0.000 description 5
- 239000000654 additive Substances 0.000 description 4
- 230000000996 additive effect Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 4
- 238000013529 biological neural network Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000013179 statistical model Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 241001123248 Arma Species 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000007418 data mining Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000006403 short-term memory Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013278 delphi method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000004451 qualitative analysis Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000007830 nerve conduction Effects 0.000 description 1
- 210000003061 neural cell Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000013450 outlier detection Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 239000011541 reaction mixture Substances 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
- 238000012731 temporal analysis Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000000700 time series analysis Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Strategic Management (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于网络信息预测技术领域,公开了一种基于GRU神经网络的时间序列预测方法,所述基于GRU神经网络的时间序列预测方法包括:搜集需要预测的原始数据;对收集到的原始数据进行数据预处理;将经过预处理后的数据进行标准化处理;利用代码将原时间序列数据形式进行升维处理;利用GRU神经网络对输入数据进行训练,得到训练后的时序预测模型并保存;使用GRU‑SES模型进行时间序列数据的预测,得到初步的预测值;将得到的初步预测数据进行二次指数平滑处理得到最终预测数据值;输出预测结果。本发明提供的预测方法提高了时间序列预测的精度,对工业产生还是实际生活中的时间序列分析有重要意义。
Description
技术领域
本发明属于网络信息预测技术领域,尤其涉及一种基于GRU神经网络的时间序列预测方法。
背景技术
目前,业内常用的现有技术是这样的:时间序列是在平时生活和生产中是广泛存在的,世间万物的 发展都是随着时间而发展的,例如在天气、金融、交通、工业、农业等各个领域都存在着按照时间维度而 形成的变量数列。天气中的每日温度的变化,交通中的客运量的变化,金融中的股票价格的变化等等,都 是以时间序列的形式存在。同时在生活中的一些数据也可以转换为以时间序列的形式表示,例如基因数据 等。时间序列是随机过程的一种特殊形式。时间序列是按照时间的顺序对经过统计的数据进行排列后的一 种数列。
时间序列是在时间维度上观察统计得到的数列值,是随机过程的一种特殊形式。在现实生活中存在 着大量的以时间为基础的数据,例如天气、金融、工业、农业、交通等各行各业。而时间序列预测则是大 数据分析与挖掘领域中的一项重要研究,通过对以往收集到的时序数据进行分析与挖掘,找到其中存在的 一定规律来进行未来数据的预测。时序预测对于各个领域都有十分重要的研究意义,可以更好的规划未来 的发展,减少不必要的损失。
时间序列预测依托多个学科,是一个多领域的交叉研究。早先的时序预测通常采用数理统计的方法, 使用定量或定性的预测方法,对时间序列进行预测。这样做通常预测效率较差,预测的准确度较低。随着 近几年数据挖掘与机器学习的兴起,人们开始意识到人工神经网络在时间序列预测上有良好的表现。通过 循环神经网络,能够很好的对存在一定规律的时间序列进行训练,从而得到时间序列的预测值。
时间序列预测是数理统计与大数据分析领域的一项重要研究,是要根据获取到的历史数据,发现和 挖掘其中隐藏的一定的规律,对未来的数据进行预测与评估。时序预测不仅仅是对未来数据进行的简单预 测,而是通过研究时间序列上各个数据的变化和波动,更加深刻的认识到该问题在时间变化上的规律,从 而在对该问题的分析、决策和处理上提供更好的理论基础和方法支持。传统的时序预测方法是基于概率统 计的时序分析,同时对于传统的预测方法已经有了较为完善的理论、方法和工具,并且得到了广泛的应用。 随着近几年大数据与机器学习的兴起,人们开始关注使用神经网络对时间序列进行新的数据分析与建模。 数据量的大幅增多,如何从中发现与挖掘出更多的有价值的信息是人们研究的主要问题。同时时间序列也 存在着数量大、噪声多等特征,对于时间序列的预测研究还是存在挑战与发展。
现有的各种的预测模型都存在着各自不同的优点和缺点,如果只是使用其中的某一种单纯的预测方 法,往往不能得到很好的预测结果。例如传统概率统计的模型中使用的函数形式较为固定,只能对理想化 的数据有较好的预测结果,对于实际中较为复杂的数据往往得不到较好的结果。现在大量的研究也表明使 用人工神经网络在复杂的***中有着高效的优势,但是也会存在参数优化、局部最优等一些缺陷。
现有的时间序列的预测研究现阶段主要分为三种大体方向,1、传统概率统计模型;2、人工智能模 型;3、混合模型。
1、传统概率统计模型是发展时间较长,同时较为成熟的一套预测模型。主要以数理统计为理论知识, 用函数对时序数列中的各个数据进行关系建模。其中主要包含:回归模型、指数平滑模型(exponential smoothing,ES)、自回归滑动平移模型(autoregressive(AR)moving average(MA),ARMA)等。
1)回归模型是利用数理统计的原理,首先是对原始数据进行数学处理,得到符合规范的待处理数据, 然后确定出原始数据与预测数据之间存在的相关关系,从而根据其中的关系建立出一个较为完善的回归方 程,使用该回归方程进行未来数据的预测。主要分为一元线性回归法、多元回归线性回归法等。
2)ES模型基于统计学理论,在20世纪50年代开始发展,最开始使用简单的运算方式对时序数据 进行分析趋势。随后引入各类参数估计,提出了具有参数的ES模型。现在主要形成了5种不同的趋势, 即无趋势、加法趋势、衰减加法趋势、乘法趋势、衰减乘法趋势。和3中不同的季节模式,即无季节模式、 加法季节模式、乘法季节模式。较为常用的有简单ES模型(无趋势无季节模式)、Holt-Winter非季节模 型(加法趋势无季节模式)和Holt-Winter季节乘积模型(加法趋势乘法季节模式)。
3)ARMA模型是有自回归模型(AR)和滑动平均模型(MA)演变而来,通过混合AR和MA来 提高预测的精确度,但是其中的参数估计较为复杂。1970年,Box和Jenkins所著的《时间序列分析-预测 与控制》书中详细的阐述了ARMA模型的模拟、估计、建模、预测和控制等一系列过程,形成了一套完 整的体系。又经过ARMA演变出自回归求和移动平均模型(ARIMA),可以有效的缓解时间序列不平稳 的状态。
2、人工智能模型是在近几年随着大数据挖掘与机器学习的兴起而得到飞速发展的。传统的预测方法 在高复杂性、非线性的时间序列预测中效果并不好,而人工智能模型是通过计算机模拟自然现象或人类智 慧来解决复杂的***。人工智能模型的参数估计是让计算机进行自适应的学习,从而不断的调整参数的修 正,而最小化的得到预测误差。典型的人工智能模型主要有决策树(decisiontree)、贝叶斯(Bayes)网 络、支持向量机(support vector machine,SVM)、人工神经网络(artificial neural network,ANN)等等。
决策树是利用信息论中信息增益的方法去找到输入数据中具有最大信息量的变量,作为决策树的一 个结点,并通过设置相对应的门限来建立决策树的下一层分支,从而进行递归得到整棵决策树。在模型的 学习迭代中,不断的调整每层树的结构和门限值,从而得到一棵完善的决策树,对时间序列数据进行预测。
贝叶斯网络是要挖掘时间序列中各个数据间的关系,理论是基于图论的不确定知识体系体现各个数 据中连接概率的图形模式。贝叶斯网络中的节点表示数据,有向边表示数据之间的关系,贝叶斯网络通过 不断调整概率测度权重来确定各个数据间的关系和存在的规律,从而能够对时序数据进行预测。
支持向量机是利用线性模型来对非线性模型进行描述,将数据从低维度映射到高维度,在高维度空 间再次采用线性回归模型对数据进行进一步的分析与预测。
人工神经网络是模仿生物神经网络中的神经元之间的连接而形成的计算机模拟。人工神经网络的学 习过程实际上是通过不断调整各个神经元之间的阈值和激活函数,连接神经元边的权重和结构,最小化拟 合误差的迭代过程。
整个人工智能预测模型还有许多其他的优化算法,如粒子群优化算法、人工免疫算法、蚁群优化算 法等等,都可以在时间序列预测中进行应用。
3、混合模型是将多种预测方法进行混合,从而得的预测准确率和预测性能更好的预测方法。传统概 率统计模型和人工智能模型都会存在自身的不足和缺陷,但任何算法也都存在自身的优势,将多种算法进 行有效的组合和利用,能够最大程度上的弥补原始方法的不足,提高混合模型的分析能力。
综上所述,现有技术存在的问题是:
(1)现有采用传统概率统计的预测模型中使用的函数形式较为固定,对于实际中高复杂性、非线性 的时间序列预测得不到较好的结果;
(2)现有人工神经网络预测模型存在参数优化、局部最优等一些缺陷。
解决上述技术问题的意义:时间序列预测是时间序列研究方向中的一项重要研究,也是数据分析领 域中的一项重要应用。时序预测是对现有数据的分析进行未来数据的预测。可以利用时间序列原始的历史 数据进行未来单一变量数据的预测,也可以利用通过观察得到的数据进行未来某个变量数据的预测。例如 在商品的库存存量中,如何确定未来仓库的库存容量是很有研究价值的,库存容量较少,不利于商品的卖 出;库存容量较多,不利于库存的管理,增加库存的管理成本。若能通过对未来库存的预测,则能很好的 解决这一问题,实现库存容量的较优化,得到较大的经济效益。时间序列预测广泛应用与交通、经济、工 业、农业等各行各业中。提高水平和方向上的时序预测的性能,对相关领域的管理、控制、决策等方面都 具有重要的指导意义。
发明内容
针对现有技术存在的问题,本发明提供了一种基于GRU神经网络的时间序列预测方法。
本发明是这样实现的,一种基于GRU神经网络的时间序列预测方法,所述基于GRU神经网络的时间 序列预测方法包括:
步骤一,搜集需要预测的原始数据;
步骤二,对收集到的原始数据进行清洗、集成、转换、离散、归约相关数据预处理;
步骤三,采用Z得分法将经过预处理后的数据进行标准化处理,将标准化处理后的数据作为神经网络 的输入数据;
步骤四,利用代码将原时间序列数据形式升维处理为[[x1][x2][x3]…[xn]];
步骤五,利用TensorFlow搭建时序预测模型,利用GRU神经网络对输入数据进行训练,得到训练后 的时序预测模型并保存;
步骤六,读取保存的训练好的时序预测模型,使用GRU-SES模型进行时间序列数据的预测,得到初 步的预测值;
步骤七,将得到的初步预测数据进行二次指数平滑处理及逆标准化处理;得到最终预测数据值;
步骤八,将预测结果进行数据标准化的逆运算,将预测数据值还原为原始数据类型,输出结果。
进一步,步骤二中,所述数据预处理具体包括:
数据清洗:将原始数据中的噪声数据进行消除,对原始数据中存在缺失的数据进行弥补;将原始数据 中质量较低的数据提升其质量,提升原始数据的整体质量;
数据集成:消除冗余数据,将数据统一的存储在文件中或数据库中;
数据转换:将数据转换为符合算法要求的格式;
数据归约:将数据中不太重要的特征属性进行剔除,得到精炼的数据集合。
进一步,步骤三中,所述采用Z得分法进行数据标准化处理具体包括:
首先确定数据列中的中心值,通过计算每个数据与中心值的差距(正或负),将数列中的每个数据和 确定的中心值进行绝对距离的加权平均,再将各个数据与中心值的差除以平均距离,即得标准化的结果;
Z得分法标准化处理公式如下:
进一步,步骤五中,所述时序预测模型具体包括:
在时序预测模型中,inputs表示输入值,rnn_layer为定义的神经网络,rnn_layer模块中的weights为 训练的权重值,biases为训练的偏置值,rnn为GRU神经网络的核心单元,rnn中的gru_cell为GRU神经 网络中的神经元,其中又在训练gates和candidate中的权重值和偏置值;输入模块inputs中的输入值流入 rnn_layer模块中进行神经网络的学习训练。
进一步,步骤五中,所述利用GRU神经网络对输入数据进行训练具体包括:
1)所述GRU神经网络具体为TensorFlow中的GRU神经网络模块;所述GRU神经网络隐藏单元的 数量选取为8,即GRU中的隐藏神经元的个数为8;其中的隐藏神经元的输出值定义公式为:
y=W·x+b (4)
式(4)中,y表示输出值,x表示输入值,W表示权重值,b表示偏置值;
2)利用GRU神经网络对输入数据进行训练时,利用损失函数评估神经网络目标和实际输出差距的函 数,其中函数值越小说明实际输出与目标输出的差值越小,也就是说明权值越合适;
训练中的损失函数定义公式为:
式(5)中,loss表示损失值,yi表示每次神经元的输出值,yreal表示真实的原始数据;将神经元的输 出值yi减去真实值yreal,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损 失值;
3)使用TensorFlow中的优化器采用Adam算法对损失函数进行优化,定义梯度下降法的学习率为0.003, 进行每次优化训练模型的下降梯度;
进一步,步骤七中,所述将得到的初步预测数据进行二次指数平滑处理及逆标准化处理;得到最终预 测数据值具体包括:
1)利用二次指数平滑公式计算时序数列和其中的时序数列中的和一般选取原始数据 列中的第一个数据;计算时,使用t时刻的输入值xt和t-1时刻的得出的值;计算时, 使用t时刻的的值和t-1时刻的的值,得出的值;
二次指数平滑公式如下:
2)选取平滑系数α,当原始时序数据的变化有明显的变化趋势,α一般选取0.3至0.5之间的值;当原 始时序数据的变化比较平缓,则α一般选取0.1至0.3之间的值;
xt+T=AT-BTT,T为预测未来的期数 (9)
4)将经过GRU神经网络计算出的预测值和经过二次平滑指数计算出的预测值进行算术平均的计算:
经由式(10)计算的算术平均值即为经过使用GRU-SES模型预测出的最终的预测数据值。
进一步,步骤八中,所述数据标准化的逆运算具体包括:
使用进行数据标准化的公式,进行逆运算来还原出符合原始数据类型的预测数据,数学公式如下所示:
式(11)中的xiT为符合原始数据类型的预测数据,XiT为经过GRU-SES模型计算出的预测数据,S为 原始数据的标准差,是由式(2)计算所得,为原始数据的算术平均值,是由式(3)计算所得。
综上所述,本发明的优点及积极效果为:
本发明提供的预测方法提高了时间序列预测的精度,对工业产生还是实际生活中的时间序列分析有重 要意义。
本发明通过数据进行升维处理能够更好的发现数据中的一些细节,同时更好更快的对人工神经网络进 行训练学习,能得到更好的结果。
本发明采用TensorFlow的GRU神经网络模块作为神经网络对数据进行训练,不仅灵活性高,具备可 移植性;且性能最优。
本发明采用Adam算法对损失函数进行优化,不仅对学***稳。本发明采用Adam算法对损失函数进行优化不仅能处理稀疏梯 度和非平稳目标;对不同的参数可以计算不同的自适应学习率。
故采用混合模型往往能够对时间序列预测有较高的性能提升,优于仅仅使用单个预测模型的方法。
本发明通过对GRU神经网络预测后的结果进行二阶指数平滑处理,得到准确率更高的预测结果。
附图说明
图1是本发明实施例提供的基于GRU神经网络的时间序列预测方法流程图。
图2是本发明实施例提供的GRU-SES模型流程图。
图3是本发明实施例提供的时序预测训练模型示意图。
图4是本发明实施例提供的时间序列分类示意图;
图中:(a)平稳型时间序列;(b)无定向型时间序列;(c)趋势型时间序列;(d)介入事件型时间序 列。
图5是本发明实施例提供的传统预测方法示意图。
图6是本发明实施例提供的人工智能预测方法示意图。
图7是本发明实施例提供的机器学习分类示意图。
图8是本发明实施例提供的神经元运算模型示意图。
图9是本发明实施例提供的典型循环神经网络模型示意图。
图10是本发明实施例提供的前馈神经网络展开模型示意图。
图11是本发明实施例提供的循环神经网络展开模型示意图。
图12是本发明实施例提供的BPTT正向传播模型示意图。
图13是本发明实施例提供的BPTT反向传播模型示意图。
图14是本发明实施例提供的tanh和sigmoid函数图像示意图。
图15是本发明实施例提供的GRU神经网络结构示意图。
图16是本发明实施例提供的GRU神经网络神经元结构示意图。
图17是本发明实施例提供的更新门模型示意图。
图18是本发明实施例提供的重置门模型示意图。
图19是本发明实施例提供的待定输出值模型示意图。
图20是本发明实施例提供的输出值模型示意图。
图21是本发明实施例提供的二维转三维示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说 明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图对本发明的技术方案与技术效果做详细说明。
如图1所示,本发明实施例提供的基于GRU神经网络的时间序列预测方法包括:
S101,搜集需要预测的原始数据。
S102,对收集到的原始数据进行清洗、集成、转换、离散、归约相关数据预处理。
S103,采用Z得分法将经过预处理后的数据进行标准化处理,将标准化处理后的数据作为神经网络的 输入数据。
S104,利用代码将原时间序列数据形式升维处理为[[x1][x2][x3]…[xn]]。
S105,利用TensorFlow搭建时序预测模型,利用GRU神经网络对输入数据进行训练,得到训练后的 时序预测模型并保存。
S106,读取保存的训练好的时序预测模型,使用GRU-SES模型进行时间序列数据的预测,得到初步 的预测值。
S107,将得到的初步预测数据进行二次指数平滑处理及逆标准化处理;得到最终预测数据值。
S108,将预测结果进行数据标准化的逆运算,将预测数据值还原为原始数据类型,输出结果。
下面结合具体实施例对本发明的技术方案作进一步的说明。
本发明将采用循环神经网络的优化结构GRU(Gated Recurrent Unit)神经网络对时间序列进行预测。 由于循环神经网络存在无法持续的保留先前数据的特性,故优化其结构改进为LSTM(Long Short Term Memory)神经网络,LSTM神经网络可以很好的避免长范围依赖和梯度消失等传统循环神经网络的弊端。 GRU神经网络又是对LSTM神经网络的一种结构优化,通过合并与减少门的结构,能够更好的提高神经 网络的训练效率。
1、时间序列预测综述
(1)时间序列
1)随机过程概述
随机过程是对研究对象在时间上的变换的一种随机现象,对于随机现象,需要使用无限多个随机变量 来描述。设T是一无限实数集,把依赖与参数t∈T的一族(无限多个)随机变量称为随机过程,记为{X(t) ,t∈T},这里对每一个t∈T,X(t)是一随机变量。T叫做参数集。将t看作为时间,称X(t)为时刻t时 过程的状态,而X(t1)=x(实数)说成是t=t1时过程处于状态x。对于一切t∈T,X(t)所有可能取的一切 值的全体称为随即过程的状态空间。
2)时间序列概述
时间序列是根据时间顺序得到的一系列观察值。现实中很多数据都是以时间序列的形式呈现的,例如 一家公司全年每日的销货与进货量,每日的天气预报,太阳黑子的爆发等等。时间序列涉及的领域十分的 广泛。
时间序列的分析的目的是经由分析时间序列数据的自相关,以及各种形态,如趋势、季节、介入事件 等特性,归纳并估计能反映历史数据的时间序列模式。
时间序列可依赖其序列特性以及波动情况区分为五种形态,如图4所示。
平稳型时间序列,该序列的观察值是在同一固定水平与固定区域之间变动,且这种特征不随时间 变化而改变。在无特殊改变或离群值的情况下,可合理推论此类序列未来的观察值仍在同一个水平或区域 变动;此外,亦可借由连续观察值间的相依性来提高预测结果。
无定向型时间序列,遇到干扰的时间序列则会呈现波动无定向的状态。外在冲击对序列造成累积的效 果,使得序列无法维持固定的水平,因此较难估计预测值。
趋势型时间序列,通常是受到长期因素影响,导致序列的平均水平呈现固定趋势变化,但各时间点的 数据散步变异固定。此型序列的平均水平随着时间改变,因此可假设此长期因素将会持续且固定的影响序 列,而得出序列预测值。
季节性时间序列,可以在固定的时间间隔内,观察到类似的波动。由于此型序列的平均水平有周期性 的变动,因此可假设此周期因素将会持续且固定的影响序列,而得出序列预测值。
介入事件型时间序列,因为受到单一的突发事件干扰,而造成序列中少数观察值的表现异于其他观察 值。由于此型序列的平均水平并不变动,且单一突发事件往往无法预测,因此可假设此序列将会维持平均 水平与变动,而得到序列预测值。
(2)时间序列预测方法
1)传统预测方法
时间序列预测传统预测方法最早是由数理统计发展而来,通常的预测方法分为定量预测方法和定性预 测方法,其中定量分析法有分为因果预测法和趋势预测法,因果预测法包含一元线性回归法、多元线性回 归法等,趋势预测法包含移动平均法、加权移动法、趋势分析法等。定性分析法有德尔菲法和专业人员判 断法。传统预测方法如图5所示。
因果预测法中的回归法是利用数理统计的原理,首先是对原始数据进行数学处理,得到符合规范的待 处理数据,然后确定出原始数据与预测数据之间存在的相关关系,从而根据其中的关系建立出一个较为完 善的回归方程,使用该回归方程进行未来数据的预测。
趋势预测法中的移动平均法是根据时间序列进行逐项的平移,首先按照次序依次地对时间序列中的数 据进行计算平均数,从而能够得到一个经过平均的平均数的时间序列,然后再根据平均数序列对原始数据 进行相对应的预测。该方法在短期的预测中较为准确,但是在长期的预测中则预测较差。
趋势预测法中的指数平滑法是在移动平均法的基础上发展而来的,主要是计算时间序列的指数平滑值, 通过指数平滑值来对未来的数据进行预测。该方法即保留了全部数据的平均值,又保留了移动平均法的近 期数值,对以往的数据仅仅给予慢慢衰减的影响,从而该方法较适用于中短期的预测。
定性分析法中的德尔菲法是一种反馈匿名函询法,该方法主要是依靠人的主观意识,首先按照一定的 程序,用信函的方式对各个参与者进行征询,所有的参与者都是以匿名的形式进行意见的提交,从而根据 参与者的意见来进行未来数据的预测。
针对传统预测方法中的趋势分析法中的移动平均法、加权移动法和指数平滑法三种方法进行详细的对 比。
移动平均法是一种简单的趋势分析方法,它的应用是十分广泛的。移动平均法从数列的第一项开始按 指定的项数进行计算平均时序,然后向后移动得到一个移动平均后的新的数列。移动平均法可以消除数列 中的偶然因素的干扰,从而从移动平均后的新的数列可以观察到时序数列发展的长期趋势。移动平均数列 需要确定时间间隔长度的参数k,使用数学公式表示平滑函数如下:
在使用移动平均法中,确定参数k是最为关键的,通常k的选取有一下原则:
a.项数适中,数列中选取的项数越多,虽然能更好的观察出长期的趋势,但是在移动平均中,也意味 着失去更多的信息;数列中选取的项数较少,则在移动平均中不容易剔除偶然因素的干扰。
b.周期数列参数选取周期数或整数倍数,如当数列是一个具有时间周期的数列,参数k应取周期项数 或整数倍数移动。例如当数列为一个月份的数列,则参数应该应取12,作为移动平均的参数。
c.选取奇数项移动,在移动平均的结果最好是与原数列中的中间项对应,若选取偶数项移动时,则还 需要对移动平均的结果再次进行两项的移动平均,才能和原始数列相对齐。
加权移动平均法可以看作是移动平均法的推广,需要确定时间间隔长度的参数k和k期的权重ωi(i= 1,2,…,k),使用数学公式表示平滑函数如下:
指数平滑法的权数是用平滑系数表示的,指数平滑法是通过观察本期的观测值和本期的预测值来共同 构建下一期的预测值的一种加权平均方法。指数平滑法对与数列中较早期的数据的系数是按照指数的规律 进行递减的,越早期的数据,则给予的权重值越小。当数列中的项数较大时,初始值对整个指数平滑预测 值的影响十分的有限,这样在使用指数平滑时,初始的平滑值也就是可以选取数列的初始值。指数平滑法 中需要使用记忆衰退率α,使用数学公式表示平滑函数如下:
指数平滑法可以很好的消除不规则因素的影响,则比较适用于具有特殊惯性趋势数列,不太使用具有 某种曲线趋势的数列。
对移动平均法、加权移动平均法和指数平滑法进行对比总结,如表1所示。
表1三种方法对比总结
2)人工智能预测方法
随着近几年人工智能的兴起,人们也重新意识到对于有非稳定性、非线性和高复杂性的时间序列数据 可以使用人工智能算法来替代传统的预测方法来进行时序预测。传统的预测模式都是基于数理统计的基础 理论,而人工智能模型则采用了新的研究方法,通过让计算机去模拟人的思考,近而解决遇到的各种问题, 从而能得到更加有效更加准确的结果。同样人工智能模型中的可以选取的函数形式也比传统的模型中的函 数形式要多变与灵活。还有在参数的估算选取上也存在不同,人工智能模型可以让计算机自行学习迭代参 数,通过不断的调整与修正将模型中的参数进行更好的估计,而传统模型中的参数估计都是根据数理统计 中的固有理论进行估算的。
在时间序列预测的模型研究中,要是使用的人工智能模型如图6所示。
决策树(Decision tree)算法是根据树的分支结构来进行分类的,其本质原理是通过if-then规则对特 征变量进行一步步的判断决策来实现模型。在模型的循环迭代中,进行不断的对枝叶的裁剪与优化,通过 修改树的结构和门限值,来将决策树变为具有规则的模型,该模型可以用来进行分来与预测。决策树的优 点是能够直接产生出让人可以读懂的规则,而神经网络和贝叶斯网络是无法得到的。同样决策时的准确率 也是比较高,是一个十分有效的算法。对于时间序列的预测,具体过程是当构建好决策树后,当数据进入 时,根据已有的决策树逻辑对新的数据进行判断,若新的数据与当前节点的判断一致时,则就进入下一个 分支进行判断,最终通过叶子节点得到结果。决策树算法的变形主要有:C4.5、C5.0、ID3、CART等等。
随机森林(Random Forest)也就是由多个决策树组成的,组成的这些决策树都是采用了随机的方法, 所以将这些决策树的集合称为随机森林。组成随机森林中各个决策树之间是没有联系的,数据进入随机森 林后,让每一棵决策树进行分类,将所有决策树分类后结果进行统计,则最多的一类则为最后的结果。随 机森林不仅可以处理离散的数据,也可以处理连续的数据。随机森林的主要过程分为随机采样和完全***, 随机采样是对输入的数据首先进行行和列的采样;完全***是对采样后的数据进行完全***,通过完全分 裂可以建立出决策树,建立出来的决策树中的叶子节点或者是无法再进行***,或者是采样的样本都属于 一个分类。随机森林的优点主要有,对多分类的解决能力较好,训练和预测的速度都比较快,同样对数据 的容错能力好,对高维度的数据也能很好的处理,不会出现过拟合的问题,易于实现并行等等。
贝叶斯网络(Bayesian network)是一个有向无环图和一个条件概率表的集合。有向无环图中的每个节 点表示为每个随机变量,有向边表示随机变量之间的依赖关系。条件概率表中的存储的每个数据元素都是 在有向无环图中的一一对应的节点,存储的节点和其他直接前驱节点的联合条件概率。贝叶斯网络是可以 看作马尔可夫链的非线性扩展,贝叶斯网络可以方便的计算出联合概率分布。贝叶斯网络是比朴素贝叶斯 更加复杂的,训练和构建贝叶斯网络是十分复杂的。贝叶斯网络的是优点是可以不必指明某些输入的变量,其他的某些变量是可以作为输入的,任何变量集之间都可以建立联系,则可以通过其他的变量集的概率进 行推断。
支持向量机(Support Vector Machine,SVM)是属于一般化的线性分类器,特点是可以最小化经验误 差并且可以最大化几何边缘区。同时SVM可以将一个低维度的向量映射到高维度的空间中,在空间中建 立出最大间隔的超平面。在对数据进行分离时,超平面的两边建立出两个相互平行的超平面,分隔超平面 让两个平行的超平面的距离最大,两个平行超平面的距离越大,则SVM的总误差越小。SVM算法的实质 就是在输入的数据中,寻求出一个能够将某个值最大化的超平面,这个值也就是最小距离。SVM的优点 主要有,可以解决小样本的问题,解决非线性的问题,可以很好的处理高维度的数据集等等。
人工神经网络(Artificial Neural Network,ANN)是一种模拟生物神经网络的一种模式匹配算法,人工 神经网络发展至今已经是十分的庞大,其中的算法有感知器神经网络、反向传递神经网络、Hopfield网络、 卷积神经网络、递归神经网络等等。一个典型的神经网络主要包含输入层、输出层和隐藏层。各层都是由 一个个神经元组成的,神经元也是由输入、输出和计算单元组成,连接神经元上重要的东西就是权重值, 一个神经网络的训练也就是训练权重值达到最佳,从而使整个网络预测效果最好。人工神经网络的优点主 要有:准确度高,并行处理能力强,分布存储能力强,容错性强等等。
2、人工神经网络综述
(1)机器学习
机器学习的先驱Arthur Samuel将机器学习定义为:“在不直接针对问题进行编程的情况下,赋予计算 机学习能力的一个研究领域。”随后在1998年,Tom Mitchell在《Machine Learning》一书中定义机器学习: “机器学习这门学科所关注的问题是:计算机程序如何随着经验积累自动提高性能。”“对于某类任务T和 性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么称这个计算机程序 在从经验E学习。”这是一个简短的形式体系,它表明要怎么收集或收集什么样的数据(E),然后要做出 什么样的决策(T),最后怎么进行评价结果(P)。
机器学习根据训练数据集的不同,分类主要分为监督学习、无监督学习和半监督学习,如果如图7所 不。
监督学习(Supervised Learning):对于每一个有效的输入数据,经过训练后都会对应输出一个相关的 数据,即监督学习要使用有标记的输入数据进行训练。可以进行分类,例如图像处理、文本 处理、垃圾邮件检测等;以及回归,例如股票预测、房价预测等。
无监督学习(Unsupervised Learning):对于每一个有效的输入数据,没有对应的输出,即无监督学习输入数据没有标记,尝试在数据中查找“隐藏的”结构。可以进行聚类,例如产品分组、文章分 类、异常值检测等。
(2)人工神经网络
人工神经网络(Artificial Neural Network,ANN)是模仿生物的神经网络而提出的一种计算机模拟的信 息处理***,基础理论依据于网络拓扑的相关知识。人工神经网络可以高效的处理并发量大、数据复杂的 各类问题。神经网络中的人工神经元在从外界获取到信息后,再由其内部的各个神经元之间的联系组成的 网络结构,利用不同的训练算法进行训练神经网络,从而得到满足需求的输出数据。
人工神经网络是有大量的神经元连接而成,每个神经元使用激活函数(activation function)作为输出 函数,常见的激活函数如表2所示。每两个神经元之间进行连接,并且使用权重(weight)作为连接信号 的加权值。整个神经网络的输出就是取决于网络的结构、网络的连接方式、激活函数和权重。
表2常见激活函数
人工神经网络的整体过程分为不同的阶段:
学习(learning)阶段,该阶段是对神经元之间建立连接,不断的修正神经元之间的权重和偏差,可以 对神经元的激活函数进行调整。
回想(recall)阶段,该阶段是当神经网络对一个输入的数据进行处理后,根据已有的神经网络架构进 行相对应的数据的输出。
归纳(induction)阶段,该阶段是观察神经网络的局部从而推演出整体的神经网络特征,可以提供高 效的记忆和存储模式。
整个神经网络的运作基础是各个神经元,一个神经元k的运算模型如图8所示。
如图中的神经元k,假设有p个输入信息xi,i=1,2,…p,其中第个神经元对神经元k的权重用wik表 示,其中权重值的大小表示神经元之间的连接关系强弱,若权重值为正数,则说明输入数据xi对该神经元 是具有促进的作用;若权重值为负数,则说明输入数据xi对该神经元是具有抑制的作用。神经元k所输入 的所有输入数据为X=(x0,x1,x2,…,xp),其中对应的权重值为W=(w0k,w1k,w2k,…,wpk),它们的相乘加和 为:
其中神经元k的w0k又被称为门槛值(threshold)。作为与生物神经网络相同的仿真,对w0k的初始值一 般会设置为负值,而其中的x0一般取值为1。则将所有的输入数据进行加权计算的结果为与门 槛值x0w0k进行减法操作,如果其计算结果大于或等于0,则对神经元是刺激作用;如果其计算结果小于0, 则对神经元是抑制作用。然后神经元的输出会使用netk的函数进行再次计算,公式如下:
yk=f(netk) (16)
其中的函数f为激活函数,激活函数可以是线性或非线性函数来转换netk输出神经元的输出值。
人工神经网络的特点主要有:
高并行性:人工神经网络是由许多相同的处理神经元组合而成,虽然各个神经元的计算都是十分的简 单,但是却拥有大量的神经元来共同处理一个问题,故有很好的并行处理能力与效果。其中神经网络不只 是结构上的并行,也是计算和处理上的并行,进而大大提升了处理速度。
高非线性:神经网络中每个神经元又在接收其他神经元之间的输入,神经元之间是相互影响的,从而 实现了输入数据与输出数据的非线性映射,这种非线性特性可以很好的提高存储容量和容错。
联想记忆功能:神经网络通过各个神经元之间连接确定的权重,对数据中的信息存储在权重中,具有 联想记忆功能。其中只是根据单一的权重并不能确定所记忆的信息,而神经网络是分布式的存储形式,故 可以进一步的进行特征提取等处理工作。可以从不完整的图片或者文章中学习更多的特征,从而进一步做 出相对应的决策。整个神经网络不仅取决于单个神经元的特征,而是可能由神经元之间的相互作用和连接 决定。
良好的自适应性:神经网络通过学习和训练出结构中的权重值,且整个学习和训练过程是模拟生物的 神经传导,具有很好的环境适应能力。神经网络不同于传统的符号逻辑,通过输入数据进行学习训练,得 出输出值,而不是根据传统的直接根据问题之间的规律得出输出值,因而具有自适应能力。
分布式存储:神经网络中的存储特性并不只是存在于一个个神经元中,而是分布的存储在整个神经网 络中。通过将输入数据的响应激活在分布在网络中的神经元上,将学习和训练到的特征记录在连接权重值 上,当同样的数据同样的结构再次进行输入时,就能很快的进行判断,同时输出。
也正是人工神经网络具有这些特性,解决了传统人工智能的对直觉处理的不足,例如对语音模式识别 的处理、对非结构化信息的处理等。人工神经网络可以应用于预测、模式识别、智能控制等多个方面。
(3)循环神经网络
循环神经网络(Recurrent Neural Networks,RNNs)是不同与传统的前向反馈神经网络(Feed-forward Neural Networks,FNNs),循环神经网络能处理输入数据之间的时间前后的关系。传统神经网络模型,输 入数据是从输入层,经过隐藏层,最后再到输出层,各层之间都是全连接,但是每层中间的各个节点是没 有连接的。传统神经网络对于有些问题还是无法解决,例如,需要对一句语句进行预测各个单词,语句中 的后一个单词是要依赖前一个单词的,语句中的前后的单词不是独立的,各个单词之间是存在联系的。而 循环神经网络对于一个序列,输出值是会依赖前一个输出值的,具体的表现形式就是循环神经网络中的当 前输出值会对前面的信息进行记忆,并且将记忆的信息用在当前的输入值中,隐藏层中的各个节点都是存 在连接的,同时隐藏层的输入包括当前时刻的输入值和前一个时刻的输出值。典型的RNNs如图9所示。
典型的循环神经网络模型中,包括输入单元(input units),其中将输入数据集标记为{x0,x1,…,xt,xt+1,…}; 输出单元(output units),其中将输出数据集标记为{y0,y1,…,yt,yt+1,…};隐藏单元(hidden units),其中 将隐藏单元中的输出数据集标记为{h0,h1,…,ht,ht+1,…},这些隐藏单元就是整个循环网络主要的计算单元; 其中的黑方块表示时间延迟。如图9中的存在一条单向流动的信息流,从输入单元到隐藏单元;还存在另一条单向流动的信息流,从隐藏单元到输出单元。在循环神经网络中会进行一些限制的修改,将一些信息 从输出单元再返回到隐藏单元中,并且隐藏单元中的输入数据还从上一个隐藏单元中获取,也就是说隐藏 层中的节点是可以自连接也可以互连接。
图9中的展开后的循环神经网络,其中的xt是t时刻的输入数据,ht是t时刻的隐藏状态,yt是t时刻 的输出数据。ht是通过t-1时刻的隐藏状态ht-1和t时刻的输入xt得到的,数据公式表达为:
数学表达式中的f通常选取非线性的函数,例如tanh和ReLU。
循环神经网络不同与传统神经网络中参数选取的做法,传统神经网络通常将每层选取不同的参数,而 循环神经网络共享参数,即使用相同的参数W、U、V,这样做的好处就是可以极大的减少需要学习参数 的个数,在每次的执行中都只是需要不同的输入值即可。
这里将以时间序列预测来做一个前馈神经网络和循环神经网络的对比,从而得到其中的差异点。对于 前馈神经网络,不同的时间点的预测是相对独立的,故需要使用窗口处理的方法使其能够兼顾前后时刻的 相关性,将窗口大小选取为3,如图10所示。
其中,xt是t时刻的输入单元输入,yt是t时刻的输出单元的输出,ht是t时刻隐藏单元的输出,Wt是t时刻神经元中的权重值。xt-1,xt,xt+1是窗口大小为3的窗口处理方法中的一组数据。使用数据公式表 达为:
其中的concat表示将向量进行计算成一个更大维度的向量。则从数学公式中可以看出,是需要进行 大量的学习对Wt和b,就需要进行很多的数据进行存储与计算。
循环神经网络,对于每个时刻的输出值不仅仅取决与当前时刻的输入值,还依赖与上一时刻的输出值, 如图11所示。
其中,xt是t时刻的输入单元输入,yt是t时刻的输出单元的输出,ht是t时刻隐藏单元的输出,W是 神经元中的权重值。使用数据公式表达为:
其中,t时刻的输出值yt,不仅与xt输入有关,还与t-1时刻的ht-1隐藏单元的输出值有关。这里可 以看出对于前馈神经网络,需要3个时刻才能学习一次权重值Wt,而对于循环神经网络,3个时刻可以学 习3次权重值W。也就是说,循环神经网络中的神经元的权重值都是共享的,也就是循环神经网络最为突 出的一个优势。
RNNs在自然语言处理的多个方面都有了很好的应用,例如语音识别、文本分析生成、机器翻译、时 序处理等等。
但是传统的循环神经网络也存在很大的不足,其中最主要的就是梯度消失问题,也就是涉及到随时间 的方向传播算法(Backpropagation Through Time,BPTT)。首先来看下循环神经网络的基本公式:
这里将损失值定义为交叉熵损失,
训练的目标是计算错误值相对于参数W、U、V的梯度以及将参数用随机梯度下降方法来学习。将每 个时刻的针对每个训练样本的梯度数值相加,如下式:
对于梯度的计算,将使用链式求导法则,主要是用反向传播算法往后传播错误。举例说明,使用E3作为样本,主要是为方便描述。对于E3有数据公式表达如下:
上式是将每个时刻得到的梯度值都进行相加,W是在每一次的计算中都进行了使用。现在将t=3时刻 的梯度进行反向传播至t=0时刻,如图13所示。
由以上的分析可以看出,标准反向传播算法是通用于深度前向神经网络和循环神经网络中。但在循环 神经网络中的标准反向传播算法是将每个时刻中的权重值W的不同梯度做了累加求和。而在传统的神经 网络中并不需要各层之间进行参数的共享,故不需要进行累加求和。而随时间的方向传播算法(BPTT) 是在循环神经网络上的标准反向传播算法的一种改进,标准的循环神经网络的训练是十分复杂的,训练的 序列通常会很长,故反向传播就需要增加很多层。在实际应用中,通常会将反向传播截断成几步即可。
循环神经网络还有另一个问题,就是梯度消失问题,循环神经网络是很难处理学习到长范围的依赖的。 以上述使用E3作为样本的例子继续分析,根据公式(25)分析,公式需要注意到也需要使用链式法则,例如在这里使用的是向量函数对向量 求导,故所得的结果为一个矩阵,称为Jacobian Matrix,其中矩阵中的各个元素是每个数据的导数。将公 式(25)重写为:
根据式(26),可以证明Jacobian Matrix的二范数的上界是1。如果现在使用tanh作为激活函数,则 tanh是将所有的秩都映射到-1到1之间,则导数值的界限也是1。
现在再来看下tanh和sigmoid的函数与函数导数的图像,如图14所示。
由图13可以清晰的看出tanh和sigmoid的函数在图像两端的导数值,也就是梯度值都接近于0,也就 是接近是一条平行线。当出现这种情况时,也就是表明相对应的神经元接近于饱和。当这个神经元的梯度 为0时,使得前面层的神经元的梯度也为0。当有较小的值存在于矩阵中时,多个矩阵相乘就会使梯度值 以指数级的速度下降,并且最终在几步之后梯度值将会消失。较远时刻的梯度值为0,这些时刻将没有办 法再帮助学习训练的过程,这样就会使整个学习过程没有长距离依赖。
同样还会有梯度***的问题,如果Jacobian Matrix中的值太大,神经网络是依赖于激活函数和其中的 网络参数的,就会产生梯度***的问题。但是梯度消失比梯度***更引人关注的原因主要有:
a.梯度***是很容易观察出来的,但训练过程中的函数的梯度值越界,即变成NaN(无穷与非数值) 时,程序是会发生崩溃的。
b.梯度***问题是很容易避免的,用预定的阈值进行梯度的裁剪就可以有效的避免梯度***。
因为梯度***问题是比较容易解决的,而梯度消失问题有时候出现的并不是明显,就显得不那么容易 处理了。在循环神经网络中,解决梯度消失的问题现在通用的方案是改变循环神经网络的结构,例如现在 常采用的长短型记忆(Long Short-TermMemory,LSTM)和门限循环单元(Gated Recurrent Unit,GRU)。 LSTM是在1997年提出的,在解决NLP问题上现在是较好的解决方案。GRU是在2014年提出的,也是 对LSTM的改进结构,优化了门限的个数。这两种循环神经网络的结构能够很好的解决梯度消失问题,从 而可以有效的解决长距离依赖问题。
(4)GRU神经网络
门限循环单元(Gated Recurrent Unit,GRU)神经网络是由长短型记忆(LongShort-Term Memory,LSTM) 神经网络改进的模型,由Kyunghyun Cho于2014年提出的。LSTM神经网络是循环神经网络的一种变形 模型,最为引人注目的成就就是很好的克服循环神经网络中长依赖的问题。但是LSTM神经网络模型的形 式较为复杂,同时也存在着训练时间较长,对预测的时间较长等问题。GRU神经网络对LSTM神经网络 的改进也正是为了改进这些问题,在LSTM神经网络中提出了遗忘门(Forget Gate)、输入门(Input Gate) 和输出门(Output Gate),这些“门”的设计就是为了对输入的信息进行剔除或增强到神经细胞单元中,来 做到控制细胞状态。而GRU神经网络改良了“门”的设计,将LSTM中的遗忘门和输入门整合为一个更新 门(Update Gate),也就是将原来由三个“门”组成的细胞结构优化成两个“门”组成的细胞结构。同时也对 细胞状态(Cell State)进行了融合和其他的一些改进。整体的GRU神经网络结构如图15所示。
和传统的循环神经网络一样,GRU神经网络也是由一个个神经单元模块重复在组成的链式模型,在传 统的循环神经网络中,神经元A中可能只是一个最简单的tanh函数或者ReLu函数等。但是在GRU中, 神经元A是一个较为复杂的门限结构。单个神经元的详细结构如图16所示。
GRU神经网络的神经元使用数学公式表达为:
zt=σ(Wz·[ht-1,xt]) (27)
rt=σ(Wr·[ht-1,xt]) (28)
现在将对GRU神经网络中的单个神经细胞做详细的分解。首先如图17所示,是更新门在GRU神经 网络中的表示。根据图17和公式(27)中的zt表示更新门(UpdateGate),ht-1表示上一个神经元的输出, xt表示本次神经元的输入,Wz表示更新门的权重,σ表示sigmoid函数。更新门zt是由上一个神经元的输出 ht-1和本次神经元的输入xt相加后乘以更新门权重Wz,再使用sigmoid函数进行运算。对于更新门zt,当 取值越大时,表示当前神经元的要保留的信息越多,而上一个神经元的要保留的信息越少。
然后GRU神经网络中的重置门(Reset Gate)模型如图18所示。根据图18和公式(28)中的rt表示 重置门(Reset Gate),ht-1表示上一个神经元的输出,xt表示本次神经元的输入,Wr表示重置门的权重,σ 表示sigmoid函数。重置门rt是由上一个神经元的输出ht-1和本次神经元的输入xt相加后乘以重置门权重Wr, 再使用sigmoid函数进行运算。对于重置门rt,当等式取值为0时,表示要抛弃上一个神经元传来的信息, 即只要当前神经元的输入作为输入,这样就可以使当前的神经元抛弃一些上一个神经元无用的信息。
其次GRU神经网络中的待定的输出值模型如图19所示。根据图19和公式(29)中的表示本次神 经元中待定的输出值,rt表示重置门,ht-1表示上一个神经元的输出,xt表示本次神经元的输入,W表示 更新门的权重,tanh表示双曲正切函数。待定的输出值是由上一个神经元的输出ht-1和重置门rt相乘后 与本次神经元的输入xt相加,再乘以权重,在使用双曲正切函数进行运算。
最后GRU神经网络中的输出值模型如图20所示。根据图20和公式(30)中ht表示本次神经元的输 出值,zt表示更新门,ht-1表示上一个神经元的输出,表示本次神经元中待定的输出值。本次神经元的 输出值ht是由1减去更新门zt后乘以上一个神经元的输出值ht-1得到的值,加上更新门zt乘以本次神经元中 待定的输出值得到的值。
由上述的GRU神经网络中的公式和各个分解图可以看出每个神经元都在决策每次信息的输出量,从 而使各个神经元之间都存在依赖关系。一般来说,重置门对于短距离学习会比较活跃,更新门对于长距离 学习会比较活跃。
现有技术中对LSTM和GRU进行了对比,经过实验发现GRU在多个问题上与LSTM的效果相当, 并且GRU比LSTM更易于训练。GRU也被越来越多的运用到了机器学习中,例如GRU神经网络代替了 LSTM神经网络运用在语音模型中。
3、GRU-SES模型设计与实现
(1)GRU-SES模型概述
GRU-SES模型是根据GRU神经网络的优化而来,对GRU神经网络产生的预测数据再次进行二阶指 数平滑处理,使得经过GRU-SES模型处理后的预测数据比直接使用GRU神经网络的准确率有所提升。 GRU-SES模型的流程图如图2所示。
GRU-SES模型流程主要包括如下的几步:
a.收集原始数据,对需要预测的数据进行收集。
b.数据预处理,对收集到的原始数据进行数据预处理。
c.数据标准化,对经过预处理后的数据再进行标准化处理。
d.数据升维,对数据进行升维操作。
e.神经网络训练,使用GRU神经网络对数据进行训练,得到训练后的模型文件。
f.数据预测,使用GRU-SES模型进行数据预测。
g.预测数据处理,对预测的数据进行逆标准化处理。
h.预测结果输出,输出预测得到的结果。
(2)数据预处理
数据预处理是在数据要进行计算之前,对原始的数据进行必要的清洗、集成、转换、离散、归约等一 系列处理工作,使预处理后的数据更加符合算法需要的数据结构。数据预处理的主要任务主要有:
数据清洗:将原始数据中的噪声数据进行消除,对原始数据中存在缺失的数据进行弥补等操作。将原 始数据中质量较低的数据提升其质量,将原始数据的整体质量进行提升。
数据集成:将原始数据进行统一的存储,可以存储在文件中或数据库中,这个工程也是对冗余数据的 消除。
数据转换:将原始数据转换为符合算法要求的格式,以满足算法的需求。
数据归约:将原始数据中不太重要的特征属性进行剔除,近而得到比较精炼的数据集合。
针对本发明所要做的时序数据的预测,一方面要保证数据是按照一定的时间序列排序的,不能存在错 误的时间点或者时间序列混乱;另一方面保证需要预测数据所使用的训练数据的完整性与正确性,经过神 经网络训练的数据要符合训练数据的要求。
(3)数据标准化处理
数据标准化处理是将经过预处理后的数据按照一定的比例进行缩放处理,使其经过变换后可以落在一 定的特定的区间中。若是一些存在单位的某些数据,标准化处理则是将这些数据转化为无量纲的纯数值, 是为了使其不同单位不同量级的数据指标能够进行比较或者进行加权。常见的标准化处理方法主要有Z得 分法、极差正规化变换法、极差标准化变换法。
Z得分法是首先确定数据列中的中心值,通过计算每个数据与中心值的差距(正或负),将数列中的 每个数据和确定的中心值进行绝对距离的加权平均,再将各个数据与中心值的差除以平均距离,即得到了 标准化的结果,Z得分法是和正态分布中的标准化转换十分的类似。在数理统计中,平均值可以当作是数 据的中心值,则标准差可以看作是反映所有数据与中心值的平均距离,则Z得分法标准化处理公式如下:
式(1)中,标准化后的结果用SX表示,数列的平均值用表示,数列标准差用S表示。其中式(2), 是需要计算数列的平均值,将项数为n数列中的各个数据Xi首先进行相加,再将得到的和除以项数n,即 可得到数列的算数平均值其中式(3),是需要计算数列的标准差,首先将数列中的数据Xi先减去平均 值后再进行平方,再进行算术平均计算得到数列的方差,再开方得到数列的标准差。Z得分法处理后的 结果存在正负值,结果的变动范围为-∞~+∞,采用Z得分法处理后的数据均值为0,方差为1。在统计 分析中Z得分法是被广泛的运用。
极差正规化变换法是首先将所有的数据进行从小到大的排列,然后用最小值作为比较基准,计算出每 个数据与最小值数据的距离,这些计算出的距离中,数列中最大值与最小值的距离最大,称之为极差或全 距(R)。然后再用极差R作为计算尺度,将每个数据的距离除以极差得到相对距离,也就是极差正规化 变换法的结果。极差正规化变换法处理公式如下:
R=Xmax-Xmin (32)
式(31)中,标准化后的结果用用SX表示,数列中的最小值用Xmin表示,数列中的极差用R表示。其 中式(32),是计算数列的极差,也就是用数列中的最大值Xmax减去数列中的最小值Xmin,得到数列的极 差。极差正规化变换法得到的结果在0~1的范围中,数据极差为1。极差正规化变换法常用在数据列的中 位数、众数、分位数等数据特征值的估算。
极差标准化变换法是将数列中所有数据的中心值(一般选为均值)作为比较基准,首先计算数列中的 数据与中心值的差,然后将得到的差除以极差(R),得到结果也就是极差标准化变换法处理后的结果。 极差标准化变换法处理公式如下:
式(33)中,标准化后的结果用SX表示,数列X的均值用表示,数列极差用R表示。其中平均值使用公式4-2计算得到,极差R使用公式4-5计算得到。极差标准化变换法得到的结果在-1~1的范围中, 数据均值为0,极差为1。
本发明中的数据标准化处理将采用Z得分法,经过标准化后的数据将作为神经网络的输入数据,同时 标准化后的数据不会影响到神经网络的效果,反而会极大程度提升神经网络的算法效率和准确性。
(4)数据升维处理
维度在数学中也被称为维数,通常说的点是零维,线是一维,面是二维,立体是三维,更高的维度暂 时表示不了。例如在这里对一个正方体做描述,通常如果是三维空间描述正方体,也就是描述正方体的长 度、宽度和高度,是三个一维向量的集合也就是一个三维向量;如果对正方体加上重量的描述,也就是有 四个一维向量来描述正方体,四个一维向量的集合就是一个四维向量。也就是如果将对一个物体的描述, 进行多个方向或细节的描述,则这些多个描述向量就是一个多维向量。这里再举一个将一个两维的数组升 维到三维,如图21所示。
图21中的,左边的图是二维的数组向量,将其升维了成了右图中的表示形式。
本模型将对时间序列数据进行升维处理,使用代码实现升维数据序列形式如下。原时序数列形式如: [x1x2x3…xn],进行升维后,升维时序数列形式如:[[x1][x2][x3]…[xn]]。对数据进行升维后可以更好的发 现数据中的一些细节,同时对神经网络的训练也能得到更好的结果。这里因为本发明将输入的数据进行了 升维的处理,则相对应的在训练神经网络中的权重值的训练也会随着输入数据的升维进行相对应的升维处 理。
当然,数据的维度并不是越高越好,高维度的数据会产生相对应的维度灾难,维度灾难是指在高维度 空间中,数据很呈现十分稀疏的排列,这样会导致在计算距离或者在计算相似度上都会产生很大的误差, 对一些低维度处理很好的算法,在高维度的数据中运用也会产生效率变低的影响。
(5)GRU神经网络模型训练
本发明中的GRU神经网络使用TensorFlow中的GRU神经网络模块。TensorFlow最早是由Google Brain 团队开发的机器学习***,可以用来实现机器学习和深度神经网络方面的应用与研究。TensorFlow中引入 了tensor定义为张量,也就是通常认为的N维数组;然后采用数据流图的方式进行数据的计算,也就是张 量(tensor)从流图的一端流动到另一端的计算过程。TensorFlow现在已经广泛应用在语音识别、文字处 理、机器翻译、图像识别等各个机器学习方面。TensorFlow的主要特征有:
灵活性高:使用TensorFlow的开发人员只需要定义自己所需使用的数据流图,编写出内部的循环,然 后使用TensorFlow中提供的一些完成的神经网接口,就可以快速的搭建出自己的深度学习框架。
可移植性:TensorFlow可用于CPU或GPU上,同时也直接在计算机、服务器、移动设备上运行。对 硬件的要求不高,广泛运行在各个设备上。
多语言支持:TensorFlow提供多种语言的接口,可以使用Python、Java、Go等多种语音编写自己的 深度学习框架。
性能最优化:TensorFlow中提供多线程、异步、队列等操作,可以根据编 写代码实现硬件CPU或GPU的全部性能。
本发明中的GRU神经网络,其中的隐藏单元的数量(hidden_num_units)选取为8,即GRU中的隐 藏神经元的个数为8。其中的隐藏神经元的输出值定义公式为:
y=W·x+b (4)
上式中,y表示输出值,x表示输入值,W表示权重值,b表示偏置值。
训练中的损失函数定义公式为:
上式中,loss表示损失值,yi表示每次神经元的输出值,yreal表示真实的原始数据。将神经元的输出 值yi减去真实值yreal,再进行平方,最后使用计算平均计算得到方差。得到的方差也就是损失函数的损失 值。损失函数是用来评估神经网络目标和实际输出差距的函数,函数值越小说明实际输出与目标输出的差 值越小,也就是说明权值越合适。
最后使用梯度下降法优化目标函数,这是需要定义梯度下降法的学习率(1earning_rate),进行每次优 化训练模型的下降梯度,本发明选取的学习率为0.003。本发明直接使用TensorFlow中的优化器进行损失 函数的优化,采用的优化器是AdamOptimizer。常见的优化算法如:随机梯度下降算法(Stochastic Gradient Descent,SGD)、Adagrad算法、Adam算法(Adaptive Moment Estimation)。
随机梯度下降算法是对每次迭代计算每批次的梯度,再对参数进行更新,也是优化器中最常使用的优 化算法。SGD形式简单,因而得到了广泛的应用。但是也有不足,首先对于SGD算法中的学习率(learning rate)选择比较困难。在优化中所有参数的更新都是使用相同的学习率,使用同样的学习率,依稀疏的数 据特征举例,对数据中不经常出现的特征希望能更新地快一点,而对数据中经常出现的特征希望能更新地 慢一点,这样SGD就不符合需求了。因为是梯度下降,就很容易收敛到局部最优。针对SGD算法的这些 不足,就提出了其他的一些优化器算法。
Adagrad算法也就是对学习率进行了优化,对学习率进行了一个约束。当前期梯度较小时,Adagrad 算法定义的约束项较大,这样就可以放大梯度;当后期梯度较大时,Adagrad算法定义的约束项较小,这 样就可以约束梯度。这样对学习率进行约束,就能很好的适应稀疏梯度。当然Adagrad算法也有不足的地 方,如果将学习率设置的过大,则会使算法中的约束项过于敏感,从而对梯度的调节过大。
Adam算法本质上是对Adagrad算法的优化,Adam算法对学***稳。Adam算法的优点主要有能处理稀疏梯度和非平稳目标;对不 同的参数可以计算不同的自适应学习率;适用于高维度的数据。
时间序列可能是非平稳目标,同时对时序数据进行了升维。故针对优化器的选择,本发明选取了适合 高维度和能较好处理非平稳目标的Adam算法。
将经过GRU神经网络训练好的模型进行保存,在后面的预测数据阶段需要调用训练好的模型进行时 序数据的预测。
(6)GRU-SES预测数据处理
首先使用GRU神经网络对上步保存的训练好的模型就行读取,然后使用GRU神经网络进行时间序列 数据的预测,得到初步的预测值。
将初步得到的预测数据进行二次指数平滑处理,近一步提升预测数据的精确度。二次指数平滑的公式 如下:
α为平滑系数(0,1) (6)
上式中的首先需要计算时序数列和其中的时序数列中的和一般选取原始数据列中的第 一个数据。计算时,需要使用t时刻的输入值xt和t-1时刻的得出的值。计算时,需要 使用t时刻的的值和t-1时刻的的值,得出的值。对于公式(6)中的平滑系数α的选取,当 原始时序数据的变化有明显的变化趋势,α一般选取0.3至0.5之间的值;当原始时序数据的变化比较平缓, 则α一般选取0.1至0.3之间的值。当计算出时序数列和后,就可以继续使用公式4-12,计算经二次 平滑指数处理后的预测值。
xt+T=AT-BTT,T为预测未来的期数 (9)
在使用公式(9)之前,还需要先使用公式(7)和公式(8)计算出AT和BT。对于公式(7)中的AT, 需要使用乘以2后减去对于公式(8)中的BT,由平滑系数α计算得到新的系数,再乘以减去的值。计算出AT和BT后,便可以使用公式(9)计算出预测T期的xt+T的预测值。
最后将经过GRU神经网络计算出的预测值和经过二次平滑指数计算出的预测值进行算术平均的计算。
使用公式(10)计算出算术平均值后,即为经过使用GRU-SES模型预测出的最终的预测数据值。
(7)预测数据结果输出
得到的预测值还是经过数据标准化处理后的数据类型,还需要进行数据标准化的逆运算,将预测出的 数据还原成原始数据的类型。这里将使用进行数据标准化的公式,进行逆运算来还原出符合原始数据类型 的预测数据,数学公式如下所示:
公式(11)中的xiT为符合原始数据类型的预测数据,XiT为经过GRU-SES模型计算出的预测数据,S 为原始数据的标准差,是由公式(2)计算所得,为原始数据的算术平均值,是由公式(3)计算所得。 符合原始数据类型的预测数据是先由预测数据乘以标准差后再加上平均值所得。其中的预测期数T可根据 需要预测未来多久的时序数据进行自己的确定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的 任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于GRU神经网络的时间序列预测方法,其特征在于,所述基于GRU神经网络的时间序列预测方法包括:
步骤一,搜集需要预测的原始数据;
步骤二,对收集到的原始数据进行清洗、集成、转换、离散、归约相关数据预处理;
步骤三,采用Z得分法将经过预处理后的数据进行标准化处理,将标准化处理后的数据作为神经网络的输入数据;
步骤四,利用代码将原时间序列数据形式升维处理为[[x1][x2][x3]…[xn]];
步骤五,利用TensorFlow搭建时序预测模型,利用GRU神经网络对输入数据进行训练,得到训练后的时序预测模型并保存;
步骤六,读取保存的训练好的时序预测模型,使用GRU-SES模型进行时间序列数据的预测,得到初步的预测值;
步骤七,将得到的初步预测数据进行二次指数平滑处理及逆标准化处理;得到最终预测数据值;
步骤八,将预测结果进行数据标准化的逆运算,将预测数据值还原为原始数据类型,输出结果。
2.如权利要求1所述的基于GRU神经网络的时间序列预测方法,其特征在于,步骤二中,所述数据预处理具体包括:
数据清洗:将原始数据中的噪声数据进行消除,对原始数据中存在缺失的数据进行弥补;将原始数据中质量较低的数据提升其质量,提升原始数据的整体质量;
数据集成:消除冗余数据,将数据统一的存储在文件中或数据库中;
数据转换:将数据转换为符合算法要求的格式;
数据归约:将数据中不太重要的特征属性进行剔除,得到精炼的数据集合。
3.如权利要求1所述的基于GRU神经网络的时间序列预测方法,其特征在于,步骤三中,所述采用Z得分法进行数据标准化处理具体包括:
首先确定数据列中的中心值,通过计算每个数据与中心值的差距(正或负),将数列中的每个数据和确定的中心值进行绝对距离的加权平均,再将各个数据与中心值的差除以平均距离,即得标准化的结果;
Z得分法标准化处理公式如下:
4.如权利要求1所述的基于GRU神经网络的时间序列预测方法,其特征在于,步骤五中,所述时序预测模型具体包括:
在时序预测模型中,inputs表示输入值,rnn_layer为定义的神经网络,rnn_layer模块中的weights为训练的权重值,biases为训练的偏置值,rnn为GRU神经网络的核心单元,rnn中的gru_cell为GRU神经网络中的神经元,其中又在训练gates和candidate中的权重值和偏置值;输入模块inputs中的输入值流入rnn_layer模块中进行神经网络的学习训练。
5.如权利要求1所述的基于GRU神经网络的时间序列预测方法,其特征在于,步骤五中,所述利用GRU神经网络对输入数据进行训练具体包括:
1)所述GRU神经网络具体为TensorFlow中的GRU神经网络模块;所述GRU神经网络隐藏单元的数量选取为8,GRU中的隐藏神经元的个数为8;其中的隐藏神经元的输出值定义公式为:
y=W·x+b(4)
式(4)中,y表示输出值,x表示输入值,W表示权重值,b表示偏置值;
2)利用GRU神经网络对输入数据进行训练时,利用损失函数评估神经网络目标和实际输出差距的函数,其中函数值越小说明实际输出与目标输出的差值越小,也就是说明权值越合适;
训练中的损失函数定义公式为:
式(5)中,loss表示损失值,yi表示每次神经元的输出值,yreal表示真实的原始数据;将神经元的输出值yi减去真实值yreal,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值;
3)使用TensorFlow中的优化器采用Adam算法对损失函数进行优化,定义梯度下降法的学习率为0.003,进行每次优化训练模型的下降梯度。
6.如权利要求1所述的基于GRU神经网络的时间序列预测方法,其特征在于,步骤七中,所述将得到的初步预测数据进行二次指数平滑处理及逆标准化处理;得到最终预测数据值具体包括:
1)利用二次指数平滑公式计算时序数列和其中的时序数列中的和一般选取原始数据列中的第一个数据;计算时,使用t时刻的输入值xt和t一1时刻的得出的值;计算时,使用t时刻的的值和t-1时刻的的值,得出的值;
二次指数平滑公式如下:
2)选取平滑系数α,当原始时序数据的变化有明显的变化趋势,α选取0.3至0.5之间的值;当原始时序数据的变化比较平缓,则α选取0.1至0.3之间的值;
xt+T=AT-BTT,T为预测未来的期数(9)
4)将经过GRU神经网络计算出的预测值和经过二次平滑指数计算出的预测值进行算术平均的计算:
经由式(10)计算的算术平均值即为经过使用GRU-SES模型预测出的最终的预测数据值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883548.8A CN110647980A (zh) | 2019-09-18 | 2019-09-18 | 一种基于gru神经网络的时间序列预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883548.8A CN110647980A (zh) | 2019-09-18 | 2019-09-18 | 一种基于gru神经网络的时间序列预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110647980A true CN110647980A (zh) | 2020-01-03 |
Family
ID=68991343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910883548.8A Pending CN110647980A (zh) | 2019-09-18 | 2019-09-18 | 一种基于gru神经网络的时间序列预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647980A (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242369A (zh) * | 2020-01-09 | 2020-06-05 | 中国人民解放军国防科技大学 | 基于多重融合卷积gru的pm2.5数据预测方法 |
CN111309909A (zh) * | 2020-02-13 | 2020-06-19 | 北京工业大学 | 一种基于混合模型的文本情感分类方法 |
CN111340312A (zh) * | 2020-03-24 | 2020-06-26 | 国家电网有限公司 | 一种基于rnn网络预测物资采购需求量的方法 |
CN111353258A (zh) * | 2020-02-10 | 2020-06-30 | 厦门快商通科技股份有限公司 | 基于编码解码神经网络的回声抑制方法及音频装置及设备 |
CN111400973A (zh) * | 2020-04-21 | 2020-07-10 | 中国水利水电科学研究院 | 一种基于水文监测数据构建流量-水面宽的关系曲线的方法 |
CN111445009A (zh) * | 2020-03-25 | 2020-07-24 | 国家电网有限公司 | 一种基于gru网络预测物资采购需求量的方法 |
CN111477239A (zh) * | 2020-03-31 | 2020-07-31 | 厦门快商通科技股份有限公司 | 一种基于gru神经网络的去除噪声方法及*** |
CN111651935A (zh) * | 2020-05-25 | 2020-09-11 | 成都千嘉科技有限公司 | 一种非平稳时间序列数据的多维度扩充预测方法与装置 |
CN111754033A (zh) * | 2020-06-15 | 2020-10-09 | 西安工业大学 | 一种基于循环神经网络的非平稳时序数据预测方法 |
CN112001480A (zh) * | 2020-08-11 | 2020-11-27 | 中国石油天然气集团有限公司 | 基于生成对抗网络的滑动定向数据小样本扩增方法 |
CN112016673A (zh) * | 2020-07-24 | 2020-12-01 | 浙江工业大学 | 一种基于优化lstm的移动设备用户认证方法及装置 |
CN112101482A (zh) * | 2020-10-26 | 2020-12-18 | 西安交通大学 | 一种对有缺失卫星数据进行参数异常模式检测的方法 |
CN112132333A (zh) * | 2020-09-16 | 2020-12-25 | 安徽泽众安全科技有限公司 | 一种基于深度学习的短期水质水量预测方法及*** |
CN112200208A (zh) * | 2020-05-14 | 2021-01-08 | 北京理工大学 | 基于多维度特征融合的云工作流任务执行时间预测方法 |
CN112257892A (zh) * | 2020-08-27 | 2021-01-22 | 中国石油化工股份有限公司 | 一种复杂气藏排水采气工艺制度优化方法 |
CN112308434A (zh) * | 2020-11-03 | 2021-02-02 | 中国交通通信信息中心 | 一种交通安全风险评估方法及*** |
CN112990554A (zh) * | 2021-02-23 | 2021-06-18 | 中国大唐集团科学技术研究院有限公司华中电力试验研究院 | 一种发电机出口pt保险慢熔时短期电压趋势预测的方法 |
CN113048807A (zh) * | 2021-03-15 | 2021-06-29 | 太原理工大学 | 一种空冷机组背压异常检测方法 |
CN113127469A (zh) * | 2021-04-27 | 2021-07-16 | 国网内蒙古东部电力有限公司信息通信分公司 | 一种三相不平衡数据的缺失值的填补方法及*** |
CN113139340A (zh) * | 2021-04-23 | 2021-07-20 | 中铁十六局集团北京轨道交通工程建设有限公司 | 一种盾构掘进线路实时预测方法、终端及介质 |
CN113408190A (zh) * | 2021-05-28 | 2021-09-17 | 中交第一公路勘察设计研究院有限公司 | 基于Bayes-LSTM模型的公路隧道施工期围岩变形预测方法 |
CN113570042A (zh) * | 2021-07-30 | 2021-10-29 | 昕海智创(深圳)科技有限公司 | 一种基于带通滤波软件的滤波算法 |
CN114218051A (zh) * | 2021-09-22 | 2022-03-22 | 成都网丁科技有限公司 | 一种时延异常检测方法 |
CN114626409A (zh) * | 2022-02-21 | 2022-06-14 | 中铁第四勘察设计院集团有限公司 | 一种近断层加速度脉冲识别方法、存储介质及计算机设备 |
CN114689122A (zh) * | 2022-03-31 | 2022-07-01 | 国网北京市电力公司 | 一种设备故障监测方法、装置、设备及介质 |
CN114707257A (zh) * | 2022-02-18 | 2022-07-05 | 江苏赛德力制药机械制造有限公司 | 一种基于全状态注意力和BiLSTM的机械剩余使用寿命预测方法 |
CN115526300A (zh) * | 2022-11-14 | 2022-12-27 | 南京邮电大学 | 一种基于循环神经网络的序列重排方法 |
CN115660217A (zh) * | 2022-11-14 | 2023-01-31 | 成都秦川物联网科技股份有限公司 | 一种智慧城市垃圾清扫量预测方法和物联网*** |
CN116821799A (zh) * | 2023-08-28 | 2023-09-29 | 成都理工大学 | 基于gru-dnn的地灾预警数据分类方法 |
CN117725843A (zh) * | 2024-02-08 | 2024-03-19 | 天津大学 | 一种基于深度学习的房屋结构变形预测方法 |
CN117744504A (zh) * | 2024-02-20 | 2024-03-22 | 成都理工大学 | 一种泄洪雾化雨强度分析模型建立方法和装置 |
-
2019
- 2019-09-18 CN CN201910883548.8A patent/CN110647980A/zh active Pending
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242369B (zh) * | 2020-01-09 | 2023-06-02 | 中国人民解放军国防科技大学 | 基于多重融合卷积gru的pm2.5数据预测方法 |
CN111242369A (zh) * | 2020-01-09 | 2020-06-05 | 中国人民解放军国防科技大学 | 基于多重融合卷积gru的pm2.5数据预测方法 |
CN111353258A (zh) * | 2020-02-10 | 2020-06-30 | 厦门快商通科技股份有限公司 | 基于编码解码神经网络的回声抑制方法及音频装置及设备 |
CN111309909A (zh) * | 2020-02-13 | 2020-06-19 | 北京工业大学 | 一种基于混合模型的文本情感分类方法 |
CN111309909B (zh) * | 2020-02-13 | 2021-07-30 | 北京工业大学 | 一种基于混合模型的文本情感分类方法 |
CN111340312A (zh) * | 2020-03-24 | 2020-06-26 | 国家电网有限公司 | 一种基于rnn网络预测物资采购需求量的方法 |
CN111445009A (zh) * | 2020-03-25 | 2020-07-24 | 国家电网有限公司 | 一种基于gru网络预测物资采购需求量的方法 |
CN111477239A (zh) * | 2020-03-31 | 2020-07-31 | 厦门快商通科技股份有限公司 | 一种基于gru神经网络的去除噪声方法及*** |
CN111400973A (zh) * | 2020-04-21 | 2020-07-10 | 中国水利水电科学研究院 | 一种基于水文监测数据构建流量-水面宽的关系曲线的方法 |
CN112200208B (zh) * | 2020-05-14 | 2022-11-15 | 北京理工大学 | 基于多维度特征融合的云工作流任务执行时间预测方法 |
CN112200208A (zh) * | 2020-05-14 | 2021-01-08 | 北京理工大学 | 基于多维度特征融合的云工作流任务执行时间预测方法 |
CN111651935A (zh) * | 2020-05-25 | 2020-09-11 | 成都千嘉科技有限公司 | 一种非平稳时间序列数据的多维度扩充预测方法与装置 |
CN111754033A (zh) * | 2020-06-15 | 2020-10-09 | 西安工业大学 | 一种基于循环神经网络的非平稳时序数据预测方法 |
CN112016673A (zh) * | 2020-07-24 | 2020-12-01 | 浙江工业大学 | 一种基于优化lstm的移动设备用户认证方法及装置 |
CN112001480A (zh) * | 2020-08-11 | 2020-11-27 | 中国石油天然气集团有限公司 | 基于生成对抗网络的滑动定向数据小样本扩增方法 |
CN112001480B (zh) * | 2020-08-11 | 2024-01-26 | 中国石油天然气集团有限公司 | 基于生成对抗网络的滑动定向数据小样本扩增方法 |
CN112257892A (zh) * | 2020-08-27 | 2021-01-22 | 中国石油化工股份有限公司 | 一种复杂气藏排水采气工艺制度优化方法 |
CN112257892B (zh) * | 2020-08-27 | 2024-04-16 | 中国石油化工股份有限公司 | 一种复杂气藏排水采气工艺制度优化方法 |
CN112132333A (zh) * | 2020-09-16 | 2020-12-25 | 安徽泽众安全科技有限公司 | 一种基于深度学习的短期水质水量预测方法及*** |
CN112132333B (zh) * | 2020-09-16 | 2024-02-02 | 安徽泽众安全科技有限公司 | 一种基于深度学习的短期水质水量预测方法及*** |
CN112101482A (zh) * | 2020-10-26 | 2020-12-18 | 西安交通大学 | 一种对有缺失卫星数据进行参数异常模式检测的方法 |
CN112308434A (zh) * | 2020-11-03 | 2021-02-02 | 中国交通通信信息中心 | 一种交通安全风险评估方法及*** |
CN112990554A (zh) * | 2021-02-23 | 2021-06-18 | 中国大唐集团科学技术研究院有限公司华中电力试验研究院 | 一种发电机出口pt保险慢熔时短期电压趋势预测的方法 |
CN113048807A (zh) * | 2021-03-15 | 2021-06-29 | 太原理工大学 | 一种空冷机组背压异常检测方法 |
CN113139340B (zh) * | 2021-04-23 | 2023-08-22 | 中铁十六局集团北京轨道交通工程建设有限公司 | 一种盾构掘进线路实时预测方法、终端及介质 |
CN113139340A (zh) * | 2021-04-23 | 2021-07-20 | 中铁十六局集团北京轨道交通工程建设有限公司 | 一种盾构掘进线路实时预测方法、终端及介质 |
CN113127469B (zh) * | 2021-04-27 | 2023-03-24 | 国网内蒙古东部电力有限公司信息通信分公司 | 一种三相不平衡数据的缺失值的填补方法及*** |
CN113127469A (zh) * | 2021-04-27 | 2021-07-16 | 国网内蒙古东部电力有限公司信息通信分公司 | 一种三相不平衡数据的缺失值的填补方法及*** |
CN113408190A (zh) * | 2021-05-28 | 2021-09-17 | 中交第一公路勘察设计研究院有限公司 | 基于Bayes-LSTM模型的公路隧道施工期围岩变形预测方法 |
CN113408190B (zh) * | 2021-05-28 | 2023-09-08 | 中交第一公路勘察设计研究院有限公司 | 基于Bayes-LSTM模型的公路隧道施工期围岩变形预测方法 |
CN113570042A (zh) * | 2021-07-30 | 2021-10-29 | 昕海智创(深圳)科技有限公司 | 一种基于带通滤波软件的滤波算法 |
CN114218051A (zh) * | 2021-09-22 | 2022-03-22 | 成都网丁科技有限公司 | 一种时延异常检测方法 |
CN114218051B (zh) * | 2021-09-22 | 2022-07-22 | 成都网丁科技有限公司 | 一种时延异常检测方法 |
CN114707257A (zh) * | 2022-02-18 | 2022-07-05 | 江苏赛德力制药机械制造有限公司 | 一种基于全状态注意力和BiLSTM的机械剩余使用寿命预测方法 |
CN114626409B (zh) * | 2022-02-21 | 2023-09-26 | 中铁第四勘察设计院集团有限公司 | 一种近断层加速度脉冲识别方法、存储介质及计算机设备 |
CN114626409A (zh) * | 2022-02-21 | 2022-06-14 | 中铁第四勘察设计院集团有限公司 | 一种近断层加速度脉冲识别方法、存储介质及计算机设备 |
CN114689122A (zh) * | 2022-03-31 | 2022-07-01 | 国网北京市电力公司 | 一种设备故障监测方法、装置、设备及介质 |
CN114689122B (zh) * | 2022-03-31 | 2023-11-10 | 国网北京市电力公司 | 一种设备故障监测方法、装置、设备及介质 |
CN115660217A (zh) * | 2022-11-14 | 2023-01-31 | 成都秦川物联网科技股份有限公司 | 一种智慧城市垃圾清扫量预测方法和物联网*** |
CN115660217B (zh) * | 2022-11-14 | 2023-06-09 | 成都秦川物联网科技股份有限公司 | 一种智慧城市垃圾清扫量预测方法和物联网*** |
CN115526300A (zh) * | 2022-11-14 | 2022-12-27 | 南京邮电大学 | 一种基于循环神经网络的序列重排方法 |
CN116821799A (zh) * | 2023-08-28 | 2023-09-29 | 成都理工大学 | 基于gru-dnn的地灾预警数据分类方法 |
CN116821799B (zh) * | 2023-08-28 | 2023-11-07 | 成都理工大学 | 基于gru-dnn的地灾预警数据分类方法 |
CN117725843A (zh) * | 2024-02-08 | 2024-03-19 | 天津大学 | 一种基于深度学习的房屋结构变形预测方法 |
CN117725843B (zh) * | 2024-02-08 | 2024-04-30 | 天津大学 | 一种基于深度学习的房屋结构变形预测方法 |
CN117744504A (zh) * | 2024-02-20 | 2024-03-22 | 成都理工大学 | 一种泄洪雾化雨强度分析模型建立方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647980A (zh) | 一种基于gru神经网络的时间序列预测方法 | |
Ivakhnenko et al. | The review of problems solvable by algorithms of the group method of data handling (GMDH) | |
Lin et al. | Temporal convolutional attention neural networks for time series forecasting | |
Ghimire et al. | A novel approach based on integration of convolutional neural networks and echo state network for daily electricity demand prediction | |
Sun et al. | Spatiotemporal wind power forecasting approach based on multi-factor extraction method and an indirect strategy | |
Hsu | Multi-period time series modeling with sparsity via Bayesian variational inference | |
CN110738363B (zh) | 一种光伏发电功率预测方法 | |
Berradi et al. | Effect of architecture in recurrent neural network applied on the prediction of stock price | |
Marwala | Forecasting the stock market index using artificial intelligence techniques | |
Okwuchi et al. | Deep learning ensemble based model for time series forecasting across multiple applications | |
Borysenko et al. | Intelligent forecasting in multi-criteria decision-making. | |
CN116632834A (zh) | 一种基于SSA-BiGRU-Attention的短期电力负荷预测方法 | |
Pulido et al. | Genetic algorithm and Particle Swarm Optimization of ensemble neural networks with type-1 and type-2 fuzzy integration for prediction of the Taiwan Stock Exchange | |
Janikova et al. | Prediction of production line performance using neural networks | |
CN115713144A (zh) | 基于组合cgru模型的短期风速多步预测方法 | |
Zhou | Cross-validation research based on RBF-SVR model for stock index prediction | |
Khandelwal et al. | Financial Data Time Series Forecasting Using Neural Networks and a Comparative Study | |
CN114021995A (zh) | 一种内部控制制度评价控制模型 | |
Ramlall | Artificial intelligence: neural networks simplified | |
PhamToan et al. | Improving forecasting model for fuzzy time series using the Self-updating clustering and Bi-directional Long Short Term Memory algorithm | |
Huang et al. | Multi-rule combination prediction of compositional data time series based on multivariate fuzzy time series model and its application | |
Devi et al. | Multi-Agent System For Portfolio Profit Optimization For Future Stock Trading | |
Lazcano et al. | Back to Basics: The Power of the Multilayer Perceptron in Financial Time Series Forecasting | |
Broadhurst et al. | Data Analytics On Nasdaq Stock Prices: Reddit Social Media Case Study | |
Vaičiūnaitė | Forecasting nonstationary and nearly nonstationary time series using machine learning methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200103 |
|
RJ01 | Rejection of invention patent application after publication |