基于神经网络的MackeyGlass时间序列预测

合集下载

神经网络模型在时间序列预测中的应用

神经网络模型在时间序列预测中的应用

神经网络模型在时间序列预测中的应用近年来,随着人工智能技术的飞速发展,神经网络模型在各个领域中的应用越来越广泛。

其中,神经网络模型在时间序列预测中的应用日益受到重视。

时间序列预测是指根据过去的数据,通过模型分析得到未来的数据趋势。

神经网络模型凭借其优秀的特性,在时间序列预测中显示出了强大的潜力。

首先,神经网络模型具有非线性建模能力,能够识别非线性的数据模式。

传统的时间序列预测方法往往基于对数据进行线性拟合,忽略了非线性关系的存在。

而神经网络模型通过多层神经元的组合,能够捕捉到数据中更为复杂的非线性模式,从而提高了预测的准确性。

其次,神经网络模型具有记忆性,能够利用过去的信息进行预测。

时间序列数据具有一定的滞后性,即未来的数据受到过去数据的影响。

神经网络模型通过引入记忆单元,如循环神经网络(RNN)中的长短期记忆(LSTM)单元,可以有效地保存和利用之前的信息,从而提高预测精度。

此外,神经网络模型具有自适应学习能力,能够自动调整模型参数。

时间序列数据通常具有一定的变化规律和趋势,而这些规律和趋势往往会发生变化。

传统的时间序列预测方法需要手动调整模型参数以适应不同的数据特征,而神经网络模型可以通过自适应学习的方式,根据数据的变化自动调整模型参数,提高了模型的适应性。

在具体应用中,神经网络模型在金融领域的时间序列预测中表现出了独特的优势。

例如,在股票市场的预测中,传统的技术分析方法常常无法捕捉到复杂的市场变化,而神经网络模型能够通过对大量历史数据的分析,发现隐藏在数据中的规律和趋势,提供更为准确的预测结果。

此外,在气候预测、经济预测等领域,神经网络模型也被广泛应用,取得了不错的预测效果。

然而,神经网络模型在时间序列预测中也存在一些挑战和限制。

首先,神经网络模型对数据质量和数据量的要求较高。

数据质量不佳或数据量不足时,神经网络模型很容易陷入过拟合或欠拟合的情况,导致预测结果不准确。

其次,神经网络模型的训练过程较为繁琐,需要耗费大量的时间和计算资源。

应用神经网络进行时间序列预测的方法研究

应用神经网络进行时间序列预测的方法研究

应用神经网络进行时间序列预测的方法研究近年来,神经网络(Neural Network)在各个领域的应用越来越广泛,尤其在时间序列预测中的应用更是受到了广泛的关注。

时间序列预测是指根据已有的一系列时间点上的观测结果,预测未来的数值变化趋势。

在金融、气象、交通、医疗等领域都有广泛的应用场景。

应用神经网络进行时间序列预测,有很多种方法和技巧。

本文将基于实践和文献综述,分析几种较为流行的方法,并对其进行探讨。

一、神经网络基础神经网络是一种模仿神经系统的学习算法,一般包含若干个神经元,并通过层次结构来优化学习过程。

神经网络的基础是人工神经元模型,它是大脑神经元的一个数学模型,用于处理输入的信号,产生结果的输出信号。

神经网络的训练过程一般基于梯度下降法或反向传播算法,通过不断迭代调整神经元之间的连接权值,从而最小化误差,提高模型的精度。

二、前馈神经网络前馈神经网络(Feedforward Neural Network)是一种最基础的神经网络结构,输入从底层经过若干层次的处理后得到输出。

前馈神经网络是一种纯粹的映射关系,它没有记忆能力,只能根据当前的输入进行预测。

前馈神经网络是最常用于时间序列预测的神经网络结构之一。

它的输入数据可以是一维或多维时间序列数据,输出结果可以是同步或异步的预测值。

前馈神经网络的优点是预测速度快、精度高、易于实现和处理。

三、循环神经网络循环神经网络(Recurrent Neural Network)是一种带有循环链接的神经网络结构,它的神经元之间除了前向链接,还存在着后向链接。

循环神经网络的输入可不仅仅局限于当前时刻的输入,还可以包含历史的状态信息。

因此,循环神经网络具有记忆能力,能够处理时间序列数据中的依赖关系。

循环神经网络的训练通常采用基于递归梯度下降法(Backpropagation Through Time)或基于长短期记忆网络(Long Short-Term Memory)算法。

基于神经网络的金融时间序列预测模型研究

基于神经网络的金融时间序列预测模型研究

基于神经网络的金融时间序列预测模型研究近年来,随着人工智能和大数据技术的迅猛发展,基于神经网络的金融时间序列预测模型成为了研究的热点之一。

金融时间序列预测是金融领域的重要问题之一,对于投资者和金融机构来说,准确预测金融市场的变化趋势可以帮助他们制定合理的投资策略和决策。

在金融市场中,时间序列的预测往往受到多个因素的影响,包括经济因素、市场情绪、政策因素等。

传统的统计预测方法在处理这些复杂的关系时存在一定的局限性,而神经网络模型则能够较好地捕捉到这种非线性关系,因此在金融时间序列预测中具有很大的潜力。

神经网络是一种模拟人脑神经系统运作的数学模型,它具有自适应性和非线性映射能力。

基于神经网络的金融时间序列预测模型通常包括数据处理、特征选择、模型训练和预测四个主要步骤。

首先,在数据处理阶段,需要对原始数据进行预处理。

金融数据常常具有噪声和非平稳性,在输入神经网络之前,需要进行平滑处理、去趋势化和标准化等操作,以提高预测的准确性。

其次,特征选择是神经网络建模过程中的关键步骤。

金融时间序列通常包含大量的特征,但并非所有特征对于模型预测都是有效的。

通过合理选择特征,可以减少模型的复杂性并提高模型的稳定性和预测性能。

然后,模型训练是神经网络模型构建的核心过程。

在金融时间序列预测中,常用的神经网络模型包括多层感知机(MLP)、循环神经网络(RNN)和长短期记忆网络(LSTM)等。

这些模型具有不同的结构和特点,可以根据实际情况选择合适的模型进行训练。

最后,通过训练好的模型进行预测。

在预测过程中,可以使用前向传播算法将输入数据在神经网络中传递,得到相应的预测结果。

预测结果可用于制定金融投资策略和进行风险管理。

然而,尽管基于神经网络的金融时间序列预测模型在某些方面取得了显著的成果,但仍存在一些挑战和局限性。

首先,数据量和质量对预测结果影响巨大,因此需要收集大量高质量的金融数据并进行合理的特征选择和处理。

其次,神经网络模型的结构设计和参数调优也是一个关键问题,需要通过实验和验证来选择最优的模型结构和参数设置。

基于神经网络的时序深度预测模型研究

基于神经网络的时序深度预测模型研究

基于神经网络的时序深度预测模型研究 随着科技的不断发展,机器学习、人工智能等领域得到了快速发展。神经网络作为机器学习的一种方法,被广泛应用于深度学习领域。时序深度预测模型是神经网络的一项重要应用。本文将重点讨论基于神经网络的时序深度预测模型的研究现状以及实践应用。

一、时序深度预测模型的概念 时序深度预测模型是一种基于时间序列数据的预测模型,可以预测未来一段时间的数据变化趋势。该模型主要由数据处理、特征提取、数据编码、神经网络训练和预测等组成。

二、时序深度预测模型的研究现状 1.数据处理和特征提取 数据的处理和特征提取是时序深度预测模型的前置工作,对模型的性能影响很大。目前常用的数据处理方法有:数据归一化、数据平滑和数据降噪等。 特征提取也是非常重要的一步,可以从时间序列数据中提取出频域、时域和小波域等特征。

2.数据编码 时序深度预测模型的另一个关键步骤是数据编码。目前,最常用的编码方法是门控循环神经网络(GRU)和长短时记忆型循环神经网络(LSTM)。这些编码方法考虑了序列数据的长期依赖和信息流动,可以提高时序预测模型的性能。

3.神经网络训练和预测 在经过数据处理、特征提取和数据编码后,时序深度预测模型需要进行训练和预测。常用的训练方法有批量训练和在线训练等,预测方法也包括单次预测和多次预测。多次预测可以提高模型的准确性,但也会增加计算成本。 三、时序深度预测模型的实践应用 时序深度预测模型的实践应用非常广泛,包括股票价格预测、气象数据预测、人体姿态识别以及语音识别等。下面简要介绍几个典型的应用场景:

1. 股票价格预测:股票价格预测一直是金融行业的重要问题。利用时序深度预测模型可以预测股票未来的价格变化,有助于投资者制定更好的决策。

2.气象数据预测:气象数据预测可以用于提前预警自然灾害,同时也有助于农业决策。时序深度预测模型可以分析大规模气象数据,预测未来几天的天气变化情况。

3.人体姿态识别:时序深度预测模型可以应用于人体姿态识别,帮助运动员改善动作技巧,或者帮助病人康复。

基于神经网络的金融时间序列预测研究

基于神经网络的金融时间序列预测研究

基于神经网络的金融时间序列预测研究随着信息技术的不断发展,金融市场越来越依赖于数据分析和预测模型来做出决策。

在金融领域中,时间序列预测是一项关键任务。

传统的时间序列预测方法往往基于统计模型,如ARIMA模型、移动平均模型等。

然而,随着深度学习的兴起,神经网络被广泛应用于金融领域,并取得了卓越的预测性能。

本文将重点探讨基于神经网络的金融时间序列预测研究。

一、神经网络在金融时间序列预测中的应用神经网络是一种模拟生物神经系统结构和功能的算法模型。

它由输入层、隐藏层和输出层组成,通过权重和偏差的调整使得网络能够自动学习特征和模式。

在金融时间序列预测中,神经网络能够通过学习历史数据中的关联关系来预测未来趋势。

在神经网络应用于金融时间序列预测中,常见的网络结构包括前馈神经网络(Feedforward Neural Network,FNN)、循环神经网络(Recurrent Neural Network,RNN)和长短期记忆网络(Long Short-Term Memory,LSTM)。

FNN是最基本的神经网络结构,通过将输入向前传递到输出层来实现预测。

RNN在FNN的基础上增加了反馈连接,可以处理序列数据。

而LSTM是一种特殊的RNN,它通过引入门控机制来解决传统RNN中的梯度消失和梯度爆炸问题,适用于长期依赖关系的建模。

二、神经网络模型的设计与优化神经网络的设计和优化是金融时间序列预测中的关键问题。

首先,需要选择适当的网络结构和激活函数。

不同的网络结构和激活函数对于不同类型的金融数据有不同的适应性。

例如,对于非线性的时间序列数据,使用多层的前馈神经网络和非线性激活函数(如ReLU、sigmoid)可以更好地捕捉数据的非线性特征。

其次,神经网络需要进行适当的参数调整和训练。

网络的参数包括权重和偏差,在训练过程中通过反向传播算法进行调整。

在实际应用中,可以使用优化算法如梯度下降、牛顿法等来最小化损失函数,从而得到最优的网络参数。

利用神经网络技术预测时间序列数据

利用神经网络技术预测时间序列数据

利用神经网络技术预测时间序列数据时间序列数据是指随着时间推移而变化的数据集,如股票价格、气温、销售数据等。

在许多领域,预测未来的时间序列数据对于决策和规划至关重要。

近年来,神经网络技术在时间序列数据预测方面表现出色,成为了热门的研究方向。

本文将从以下几个方面介绍利用神经网络技术预测时间序列数据的方法和应用。

一、时间序列数据预处理在进行时间序列数据预测之前,通常需要对数据进行预处理。

例如,数据的缺失值需要进行填补,数据需要进行平稳化等操作。

在这里我们重点介绍平稳化操作。

时间序列数据通常具有趋势性、季节性和周期性。

为了便于预测,需要将这些变化因素从数据中去除,使之变得平稳。

可以通过两种方式进行平稳化:差分和对数变换。

差分是指将每个时间点的数据减去前一个时间点的数据,得到的差值序列就是一阶差分序列。

如果还存在趋势性,则可以继续进行差分操作,直到序列平稳为止。

对数变换则是将数据取对数后再进行预测。

对数变换可以减小数据的波动范围,使数据更加平稳。

二、神经网络模型神经网络是一种模仿人类神经系统结构和功能的数学模型。

神经网络由多个神经元组成,每个神经元接收多个输入信号并产生一个输出信号。

神经网络将多个神经元进行连接形成网络,实现对数据的预测。

在时间序列数据预测中,常用的神经网络模型有前馈神经网络(Feedforward Neural Network,简称FNN)、循环神经网络(Recurrent Neural Network,简称RNN)和长短时记忆神经网络(Long Short-Term Memory Neural Network,简称LSTM)等。

这里我们将重点介绍LSTM模型。

LSTM 是一种常用的 RNN 模型,可以有效地处理时间序列数据中的长期依赖关系。

LSTM 模型由输入门、遗忘门和输出门等单元组成,可以对时间序列数据进行状态更新、记忆和预测。

LSTM 模型可以有效地捕捉时间序列数据中的长期依赖性,是时间序列数据预测中常见的选择。

基于混合算法优化神经网络的混沌时间序列预测

龙源期刊网 基于混合算法优化神经网络的混沌时间序列预测作者:尹新,周野,何怡刚来源:《湖南大学学报·自然科学版》2010年第06期摘要:提出了一种混合算法优化神经网络的混沌时间序列预测模型。

将粒子群优化算法与模拟退火算法过程中概率突跳的思想相结合形成一种新的混合算法,并用此混合算法优化神经网络建立预测模型。

该模型克服了传统的神经网络收敛慢、易陷入局部最优等不足。

利用该模型对Mackey-Glass混沌时间序列和Henon映射进行实验仿真,结果表明,该模型收敛速度快,稳定性能好,预测精度高。

关键词:粒子群优化;模拟退火;神经网络;混沌时间序列;中图分类号:TP183文献标识码:APrediction of chaotic time series based on neural network optimizedby hybrid algorithmYin Xin,Zhou Ye,He Yigang(College of Electrical and Information Engineering, Hunan Univ, Changsha 410082,China)Abstract:The prediction model for time series is introduced in this paper, which use the hybrid algorithm to optimize the neural networks. The main idea is that build the new hybrid algorithm by combining particle swarm optimization with Simulated Annealing that has the idea in sudden jump, and then optimize the neural networks by the hybrid algorithm. Therefore, many shortcomings like convergence too slow of common neural networks, getting into partial optimization easily and getting prediction precocity of simplex particle swarm optimization, is worked out. In addition, in order to prove the validity and the value of the model, taking the Mackey-Glass chaotic time series and the Henon map tests and imitates. The results show that by this model the convergence is fast, the stability is good, and the precision of prediction is high.Keywords: particle swarm optimization; simulated annealing; neural network; chaotic time series;。

神经网络预测时间序列

神经网络预测时间序列如何作预测?理想方法是利用已知数据建立一系列准则,用于一般条件下预测,实际上由于系统的复杂性而不太可能,如股票市场预测。

另一种途径是假设一次观测中过去、未来值之间存在联系。

其中一种选择是发现一个函数,当过去观测值作为输入时,给出未来值作为输出。

这个模型是由神经网络来实现的。

1.2 神经网络预测时间序列(1) 简单描述在时间序列预测中,前馈网络是最常使用的网络。

在这种情形下,从数学角度看,网络成为输入输出的非线性函数。

记一个时间序列为}{n x ,进行其预测可用下式描述:),,(1+-1-+=m n n n k n x x x f x (1)时间序列预测方法即是用神经网络来拟合函数)(⋅f ,然后预测未来值。

(2) 网络参数和网络大小用于预测的神经网络性质与网络参数和大小均有关。

网络结构包括神经元数目、隐含层数目与连接方式等,对一个给定结构来说, 训练过程就是调整参数以获得近似基本联系,误差定义为均方根误差,训练过程可视为一个优化问题。

在大多数的神经网络研究中,决定多少输入与隐层单元数的定量规则问题目前尚未有好的进展,近有的是一些通用指导:首先, 为使网络成为一个完全通用的映射,必须至少有一个隐层。

1989年证明一个隐层的网可逼近闭区间内任意一个连续函数。

其次,网络结构要尽可能紧致,即满足要求的最小网络最好。

实际上,通常从小网络开始。

逐步增加隐层数目。

同样输入元数目也是类似处理。

(3) 数据和预测精度通常把可用的时间序列数据分为两部分:训练数据和检验数据。

训练数据一般多于检验数据两倍。

检验过程有三种方式:短期预测精度的检验。

用检验数据作为输入,输出与下一个时间序列点作比较,误差统计估计了其精度。

长期预测中迭代一步预测。

以一个矢量作为输入,输出作为下一个输入矢量的一部分,递归向前传播。

直接多步预测。

即用1+-1-m n n n x x x ,,直接进行预测,输出k n x +的预测值,其中1>k 。

神经网络在时间序列中的预测研究

神经网络在时间序列中的预测研究时间序列是指一系列按照时间顺序排列的数据。

如天气预报、股票价格、经济指数等时间序列数据是我们日常生活中经常接触的数据类型。

预测时间序列数据对决策和规划都有着重要的指导意义。

传统的预测方法多采用统计模型,如ARIMA、VAR等。

这些方法有一定的效果,但依赖于数据的平稳性和线性关系假设。

而神经网络具有自适应、非线性和概率学等优势,因此在时间序列预测领域也被广泛应用。

本文将对神经网络在时间序列中的预测研究进行探讨。

1. 神经网络在时间序列预测中的应用神经网络作为一种模仿人脑神经网络处理信息的计算模型,通过对样本数据进行学习,可以构建模型进行预测和分类等任务。

在时间序列预测中的应用包括但不限于以下两个方面。

1.1 单变量时间序列预测神经网络模型可以利用时间序列历史数据进行单变量变量预测。

其中,单变量时间序列指仅有一个变量的时间序列,比如股票价格或温度等变量只有自己变化,没有其他变量影响。

比如,利用前几天的温度值预测未来的温度值,就属于单变量时间序列预测。

神经网络模型在单变量时间序列预测中有着较好的表现,可以较好地捕捉序列中的非线性和时序相关性。

1.2 多变量时间序列预测除单变量时间序列外,许多时间序列数据还涉及到其他因素的影响,即存在多变量时间序列。

比如,预测股票价格会同时考虑到经济环境、市场心理等多个因素。

此时,神经网络模型需要考虑多个变量之间的关系,学习到变量之间的关系,通过对多个变量的综合利用,提高预测精度。

多变量时间序列预测是相对较难的问题,需要选取合适的特征和模型,加以分析、建模和预测。

2. 神经网络时间序列预测方法通常神经网络预测时间序列可以采用前馈神经网络、循环神经网络等不同的神经网络模型。

针对时间序列数据的不同特点,不同的神经网络模型有着各自的优缺点。

2.1 前馈神经网络前馈神经网络(FNN)是一种通过前向传递信号的生成模型,是一种多层感知机(multilayer perceptron, MLP)。

神经网络在时间序列预测中的应用分析

神经网络在时间序列预测中的应用分析随着计算机技术的不断发展,神经网络成为了人工智能领域中的一个热门研究方向。

神经网络通过学习大量数据来建立模型,对未知数据进行预测、分类等任务具有很强的能力。

作为一种强大的预测分析工具,神经网络已经在众多领域中得到了广泛的应用,其中时间序列预测是其中的一个重要应用方向。

那么,在时间序列预测中,神经网络是如何发挥作用的呢?本文将从模型概述、数据预处理、网络设计和优化等方面对神经网络在时间序列预测中的应用进行分析。

一、模型概述神经网络是一种基于生物神经元网络理论的数学模型,通过多层神经元之间的相互作用和逐层训练,实现输入数据与输出数据之间的映射。

在时间序列预测中,神经网络的基本思想是根据过去的数据或者时间序列,学习相关的知识和规律,从而预测未来的数据或者时间序列。

神经网络在时间序列预测中的主要优点是具有自适应性、非线性建模能力和信息融合能力等特点,能够有效地处理非线性、非平稳、非高斯等复杂的时间序列数据。

二、数据预处理在使用神经网络进行时间序列预测之前,需要进行数据预处理。

数据预处理包括数据清洗、数据平滑、数据标准化、特征提取等步骤。

其中,数据清洗是最为关键的一步,要确保数据的质量和完整性。

数据平滑是对时间序列进行平滑处理,消除异常点和噪声的影响,以便更好地挖掘数据的规律。

数据标准化是将数据转化为标准分布,提高神经网络的训练速度和效果。

特征提取是对时间序列进行特征提取,寻找关键点和规律,进一步优化神经网络的训练效果。

三、网络设计神经网络的结构是神经网络时间序列预测方法中最为重要的组成部分。

通常神经网络结构包括输入层、隐藏层和输出层。

其中,输入层是指把时间序列数据输入到神经网络中;隐藏层是指通过前层神经元的计算,把输入数据转化为合适的形式传递到下一层;输出层是指把转化后的数据输出预测结果。

在神经网络的时间序列预测中,我们常常使用循环神经网络(RNN)或长-短时记忆神经网络(LSTM)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1引言22MG时间序列22.1MG时间序列简介22.2利用dde23函数求解MG时间序列2 3BP神经网络43.1神经网络总体思路43.2MATLAB中的newff函数43.3BP神经网络的训练53.4构建输入输出矩阵63.5对MG时间序列未来值预测74参考文献85附录81 引言本文选用的神经网络的是BP 神经网络,利用MATLAB 编程实现。

首先通过求解Mackey-Glass 方程得到具有513个数据的Mackey-Glass 时间序列,其中一半用于训练神经网络,一半用于检测预测值。

BP 神经网络输入层神经元个数为4,隐含层为8,输出层为1。

利用BP 神经网络工具箱构建神经网络并对其进行训练,然后利用训练好的神经网络对未来值进行预测,画出比较图。

2 MG 时间序列2.1 MG 时间序列简介Mackey-Glass 混沌系统一类非常典型的混沌系统,混沌系统模型由以下的时滞微分方程来描述:)()(1)()(t x t x t x dt t dx βτταγ--+-= 其中 α =0.2,β =0.1,γ =10,τ是可调参数,x(t)是在t 时刻的时间序列的值。

MG 方程表现出了某种周期性与混沌特性,在τ<16.8时,表现出周期性,在 τ>16.8时,则表现出混沌特性。

2.2 利用dde23函数求解MG 时间序列本课程设计中取τ=10,也就是说MG 时间序列会表现为周期性。

可以利用MATLAB 求解MG 方程,MG 方程是一个时滞微分方程,其中一种求解方法是利用MATLAB 的dde23函数。

具体求解方法是:首先建立MG .m 函数文件,代码如下function y = MG(t,x,z)%UNTITLED Summary of this function goes here % Detailed explanation goes here xlag=z(1,:);y=ones(1,1);y(1)=(0.2*xlag(1))/(1+(xlag(1))^10)-0.1*x(1);end然后需要建立命令文件timeMG.m,代码如下clear,clc;tau=10;sol=dde23('MG',tau,0.92,[1,1000]);figure;plot(sol.x,sol.y,'r');xlabel('t','fontsize',20,'fontname','times new roman','FontAngle','italic');ylabel('x(t)','fontsize',20,'fontname','times new roman','FontAngle','italic');grid on;在执行完这个命令文件后会生成MG时间序列的图像,具有很明显的周期性改变一下 ,在程序里使tau=30,可以得到另一种图像,即具有混沌特性,本文不预测这种。

3BP神经网络3.1神经网络总体思路利用MATLAB里的BP神经网络工具箱建立一个两层BP神经网络(这里的两层分别指的是隐含层和输出层,而输入层通常不算作一层)。

其中输入层神经元个数为4,隐含层神经元个数为8,输出层个数为1。

利用训练好的神经网络对未来的值进行预测并与实际值比较。

3.2MATLAB中的newff函数BP神经网络的MATLAB实现可以采用MATLAB里的工具箱,通过调用newff来构建BP神经网络。

newff函数参数列表有很多的可选参数,这里使用newff函数的一种简单的形式。

语法:net = newff ( A, B, {C} ,Train)参数:A:一个n×2的矩阵,第i行元素为输入信号xi的最小值和最大值;B:一个k维行向量,其元素为网络中各层节点数;C:一个k维字符串行向量,每一分量为对应层神经元的激活函数;Train:训练函数,是一个字符串根据参考文献[1],选取各个参数,至于各个参数的到底该怎么设计我并没有研究。

关于参数A,使用maxmin函数得到输入矩阵没列的最大值和最小值。

关于参数B,两层的BP神经网络,隐含层为神经元个数为8,输出层为1,说以B为[8 1],是一个2维向量。

关于参数C,隐含层的激活函数采用S函数,输出层的激励函数选用线性函数,于是C为{'logsig' 'purelin'},是一个2维字符串向量。

关于参数Train,选用梯度下降自适应学习率训练函数Train取’traingdx’。

3.3BP神经网络的训练使用train函数对神经网络进行训练。

trian函数使用代码train(net,inputs,targets);inputs是输入矩阵,targets是输出矩阵,将在下一节介绍。

网络配置参数一些重要的网络配置参数如下:net.trainparam.goal :神经网络训练的目标误差net.trainparam.show :显示中间结果的周期net.trainparam.epochs :最大迭代次数net.trainParam.lr :学习率迭代次数的选择太小虽然训练耗时短,但容易导致预测失败。

所以在此选择10000。

本文中使用的代码如下%设置训练参数net.trainParam.lr=0.01;net.trainParam.epochs=10000;net.trainParam.goal=1e-6;net=train(net,inputs,targets);y=sim(net,inputs);MATLAB对BP神经网络进行训练的MATLAB工具箱界面3.4构建输入输出矩阵输出层神经元个数为4,于是需要构建一个4行N列的输入矩阵。

得到MG时间序列中有513个数据,准备使用其中一半训练神经网络,后一半用于检验预测结果。

以每4个连续数据作为输入,紧跟着的下一数据作为输出,一共可以得到200多组样本进行训练。

构建输入输出矩阵代码如下tau=10;sol=dde23('MG',tau,0.92,[1,1000]);lag=4;% 输入层神经元个数iinput=sol.y'; % sol.y为原始序列(行向量)n=length(iinput)/2;%数据用于神经网络的训练%准备输入和输出数据inputs=zeros(lag,n-lag);for i=1:n-laginputs(:,i)=iinput(i:i+lag-1)';endtargets=sol.y(lag+1:n);%输出矩阵3.5对MG时间序列未来值预测之前解出来的MG时间序列的一半用来训练BP神经网络,后一半用作为未来的实际值,与预测值进行比较。

预测200个数据,利用循环将网络输出重新输入,具体代码如下%预测与检验forecastn=200; %预测步数forecast_in=iinput(n-lag+1:n);forecast_out=zeros(1,forecastn); %预测输出% 多步预测时,用下面的循环将网络输出重新输入for i=1:forecastnforecast_out(i)=sim(net,forecast_in);forecast_in=[forecast_in(2:end);forecast_out(i)];endyy=[y,forecast_out];plot(yy);最终生成比较图,其中红色曲线为实际值,蓝色曲线为预测值。

从图中可以看到有一部分预测值比较精准,但有一部分并不是很理想。

4参考文献[1]赵新. 基于遗传神经网络的MG时间序列预测方法研究[D].武汉科技大学,2006.[2]陈阳,王涛. 基于区间二型单点Mamdani模糊逻辑系统的Mackey-Glass时间序列预测[J]. 辽宁工业大学学报(自然科学版),2015,01:1-5.5附录完整代码:MG.m中的代码如下,其主要功能是为dde23函数提供求解MG方程需要的函数句柄。

function y = MG(t,x,z)%UNTITLED Summary of this function goes here% Detailed explanation goes herexlag=z(1,:);y=ones(1,1);y(1)=(0.2*xlag(1))/(1+(xlag(1))^10)-0.1*x(1);endBP.m中的代码如下,是一个命令文件,实现MG时间序列的生成,神经网络的构建和训练,以及预测MG时间序列未来值。

clear,clc;tau=10;sol=dde23('MG',tau,0.92,[1,1000]);lag=4;% 输入层神经元个数iinput=sol.y'; % sol.y为原始序列(行向量)n=length(iinput)/2;%数据用于神经网络的训练%准备输入和输出数据inputs=zeros(lag,n-lag);for i=1:n-laginputs(:,i)=iinput(i:i+lag-1)';endtargets=sol.y(lag+1:n);%创建两层的BP神经网络;隐含层神经元个数为8,激活函数为Logarithmic sigmoid transfer%function;输出层神经元个数为1,激活函数为Linear transfer function;net = newff(minmax(inputs),[8 1],{'logsig' 'purelin'}, 'traingdx');%设置训练参数net.trainParam.lr=0.01;net.trainParam.epochs=10000;net.trainParam.goal=1e-6;net=train(net,inputs,targets);y=sim(net,inputs);%plot(y);% hold on;plot(sol.y(5:end),'r');hold on;%预测与检验forecastn=200; %预测步数forecast_in=iinput(n-lag+1:n);forecast_out=zeros(1,forecastn); %预测输出% 多步预测时,用下面的循环将网络输出重新输入for i=1:forecastnforecast_out(i)=sim(net,forecast_in);forecast_in=[forecast_in(2:end);forecast_out(i)]; endyy=[y,forecast_out];plot(yy);。

相关文档
最新文档