基于神经网络的Mackey-Glass时间序列预测
- 格式:doc
- 大小:227.50 KB
- 文档页数:10
摘要近年来,随着人工智能技术的快速发展,回声状态网络(Echo state network, ESN)在非线性时间序列处理和动态预测系统方面表现出了一定的优势,受到了国内外研究学者的广泛关注。
作为一种改进的递归神经网络(Recurrent neural network, RNN),回声状态网络采用大规模稀疏连接的结构(动态储备池)作为隐含层,且只对输出连接权值进行调整,使整个训练阶段变得简单高效,克服了经典递归神经网络学习规则实现难度大,运行时间长等缺点,逐渐成为非线性时间序列预测任务的重要处理方法。
其中,隐含层作为信息处理的重要环节,对ESN模型的计算能力起着关键性作用。
然而,传统的ESN采用随机生成的储备池拓扑结构,其计算能力有限,难以满足一些高复杂度预测任务对于预测精度的要求。
此外,在构建新的储备池计算模型时,要尽量平衡预测精度和计算复杂度两个指标。
针对这两个问题,本文从储备池优化入手,包括拓扑结构和神经元模型两个方面,开展基于ESN 非线性时间序列预测精度提升的相关工作。
一方面,基于复杂网络理论,本文构建了无标度高聚类网络,验证了其小世界和无标度特性。
然后将该结构引入ESN储备池计算,成功建立了无标度高聚类ESN 计算模型。
最后,采用非线性自回归滑动平均模型和金融序列预测任务检验了所提出模型的优势。
实验结果表明:相较于传统的随机网络,多簇无标度结构因其具备小世界和无尺度特性有更好的计算能力。
另一方面,基于环状结构和漏积分神经元(leaky integrator neuron),构建了低复杂度ESNs。
为了和传统ESN进行性能比较,分别构建了随机ESN,环状ESN,随机漏积分ESN,环状漏积分ESN,混合环状漏积分ESN五种不同的ESN计算模型。
采用MGS(Mackey-Glass)混沌时间序列预测任务,分别从预测性能、抗噪声能力和非线性逼近性能三个方面对网络性能进行评估。
实验结果表明:简单的环状结构和随机结构性能相当;漏积分单元比传统的Sigmoid神经元具备更好的记忆性能;环状结构和漏积分神经元的结合显著地提高了ESN在MGS序列预测上的性能。
基于神经网络的时间序列分析和预测研究随着人工智能技术的迅速发展,神经网络已经成为了实现许多人工智能应用的重要技术手段之一。
时间序列分析和预测是神经网络技术的重要应用领域之一。
本文将介绍基于神经网络的时间序列分析和预测研究的背景、方法和实践应用。
一、时间序列分析和预测研究的背景时间序列是指在时间轴上按照一定的时间间隔记录下来的数据序列,包括经济学、金融学、气象学、生态学等领域中的各种数据。
时间序列分析和预测是指对时间序列中的数据进行统计学分析和预测,以揭示其内在规律,为未来做出科学的预测和决策提供依据。
传统的时间序列分析方法主要采用了移动平均、指数平滑和季节分解等方法。
这些方法虽然可以得到一定的分析结果,但是难以处理复杂的非线性、多变量和非平稳的时间序列数据,因此需要更加先进的方法技术来解决这些问题。
神经网络是一种模拟人脑神经网络的计算模型,其优点是可以模拟非线性复杂的数据关系,并能够适应非平稳和多变量的时间序列数据,因此逐渐成为时间序列分析的一种重要方法。
基于神经网络的时间序列分析和预测方法已经在金融、经济、气象、环境等领域得到了广泛应用。
二、基于神经网络的时间序列分析和预测研究的方法基于神经网络的时间序列分析和预测方法主要包括以下几步:1. 数据预处理时间序列数据中往往存在噪声、离群点和缺失值等问题,因此需要对原始数据进行预处理。
常用的预处理方法包括差分、平滑和归一化等。
2. 网络结构设计网络结构是指神经网络结构中包含的层数、节点数、激活函数等。
对于不同的时间序列数据,需要根据其特性来确定适合的网络结构。
3. 模型训练模型训练是指将神经网络规定的映射函数拟合到训练样本中,以获得最优的网络参数。
常用的训练方法包括误差反向传播算法、遗传算法等。
4. 模型评价模型评价是指对训练好的神经网络进行测试,以评价其预测性能。
常用的评价指标包括均方误差、平均绝对误差、决定系数等。
5. 模型预测模型预测是指使用训练好的神经网络对未来时间序列进行预测。
基于神经网络的时间序列预测模型构建及优化随着数据科学的飞速发展和海量数据的爆炸式增长,人们对于数据分析和预测的需求也越来越强烈。
时间序列预测作为一种重要的数据分析方法,已经被广泛应用于经济、金融、交通、气象、医疗和工业等领域。
然而,由于时间序列本身的复杂性和不确定性,传统的时间序列模型在应对高噪声、非线性和非平稳的数据时难以达到理想的预测效果。
而神经网络作为一种强大的人工智能模型,在时间序列预测方面表现出了优异的效果,被越来越多的研究者和应用者所重视。
一、神经网络的时间序列预测原理神经网络是一种通过人工模拟神经元之间信息传递和处理的方式来解决问题的数学模型。
神经网络的核心是通过学习和训练来建立输入与输出之间的映射关系,从而完成各种任务,如分类、识别、预测等。
神经网络在时间序列预测方面的应用则是基于序列自身的特征来建立输入与输出之间的映射关系,预测未来的序列值。
神经网络的时间序列预测原理可以简单概括为以下步骤:1. 数据预处理:将原始序列数据进行平稳化、差分或对数化等处理,以便更好地处理非平稳和非线性的时间序列数据。
2. 特征提取:将预处理后的序列数据转化为神经网络可识别的特征表示,通常采用滑动窗口法将一定时间段内的历史数据作为输入特征。
3. 网络建模:根据序列的特点和需要预测的时间步长选择合适的网络结构和算法,并进行网络初始化和训练。
4. 预测输出:利用已训练好的神经网络模型对未来待预测的序列值进行预测输出,并进行误差分析和优化。
二、基于神经网络的时间序列预测模型构建基于神经网络的时间序列预测模型主要由以下三个方面构成:网络结构设计、模型训练和预测输出。
1. 网络结构设计在神经网络的结构设计方面,常见的有BP神经网络、RNN神经网络和CNN神经网络等。
其中,BP神经网络是一种前馈神经网络,主要利用误差反向传播算法进行训练和优化;RNN神经网络是一种反馈神经网络,具有记忆性,能够用于处理长序列数据;CNN神经网络是一种卷积神经网络,主要用于图像处理和语音识别。
基于神经网络的时间序列预测与数据分析随着时代的发展,大数据时代的到来更是让我们对于数据预测和分析有了更高的要求。
基于神经网络的时间序列预测和数据分析是当前最前沿的技术之一,已经被广泛应用于各个领域。
本文将从神经网络的基本原理、时间序列预测和数据分析的定义、常见的神经网络模型、预测和分析方法以及实际应用案例等方面进行探讨。
一、神经网络的基本原理神经网络是一种模仿动物神经系统的信息处理方式和结构的计算模型。
它由许多简单的神经元组成,并且每个神经元可以接收、处理和传递信息。
神经网络可以学习和自适应,通过学习输入输出的映射关系,从而可以逐步调整网络的连接权值和阈值,实现对未知数据的预测和分析。
二、时间序列预测和数据分析的定义时间序列预测是指对于某个时间序列样本集,通过学习过去的周期性规律、趋势规律等因素,从而对未来的值进行预测。
数据分析是指对于某个数据集,通过挖掘数据的内在规律和特征,对数据进行加工和挖掘,实现对于数据的深度分析和挖掘。
这两者结合起来,可以深度分析数据的特点和规律,通过建立连通性来完成数据预测工作。
三、常见的神经网络模型常见的神经网络模型包括:BP网络、GRU网络和LSTM网络等。
BP网络是最早被提出来的一种神经网络模型,它采用误差反向传播算法,通过将误差从输出层向输入层反向传播,利用链式法则从而对每一个节点的权值进行调整,完成对神经网络的训练。
GRU网络和LSTM网络则是基于RNN模型的状态传递机制而产生的,受到了近些年NLP领域应用的广泛关注。
四、预测和分析方法时间序列预测和数据分析通常采用以下几种方法:1)常规手段:线性回归、多元回归、随机游走等。
这些方法在简单的时间序列模型中有较好的表现,但在模型的复杂性增加时,很难达到较好的效果。
2)时间序列建模:ARIMA模型、ARCH-GARCH模型等。
这些模型通常要求数据的平稳性和白噪声,因此对于非平稳序列和无法满足模型假设的序列来说,这些方法的准确性效果并不明显。
基于神经网络的时间序列预测技术研究及其应用随着人工智能技术日益成熟,神经网络已成为预测和分类数据的强大工具。
时间序列预测是指通过历史数据对未来数据进行预测的技术。
基于神经网络的时间序列预测技术是将神经网络应用于时间序列数据分析的一种方法。
本文将探讨基于神经网络的时间序列预测技术及其应用。
一、神经网络简介神经网络是一种基于对生物神经系统的建模而制定的算法。
神经网络由多个神经元组成,并通过学习来自动识别模式。
神经网络可以从数据中学习,在处理模式识别、预测和分类等问题时往往比传统算法更加优越。
二、时间序列预测时间序列是指按照时间顺序排列的数据序列,如每日股票价格和温度。
预测未来的时间序列数据是许多领域的重要任务,例如股票价格预测、气候预测和销售预测等。
时间序列预测是指通过历史数据对未来数据进行预测的技术。
常见的预测方法包括支持向量机、线性回归和动态时间规划等。
三、基于神经网络的时间序列预测技术基于神经网络的时间序列预测技术可以使用反向传播算法、遗传算法和蚁群算法等方法进行模型训练。
以下是常见的基于神经网络的时间序列预测模型:1.传统人工神经网络(ANN)传统的人工神经网络(ANN)是最早应用于时间序列预测的神经网络模型之一。
这种模型使用反向传播算法训练,可以预测单变量或多变量时间序列。
2.循环神经网络(RNN)循环神经网络(RNN)是一种特殊的神经网络,可以处理序列数据的特征。
RNN的主要特征是在时间序列中具有内部环,使其可以将当前输入与之前输入和状态结合起来。
这种模型通常用于处理具有存储性的时间序列数据。
3.长短期记忆神经网络(LSTM)长短期记忆神经网络(LSTM)是RNN的一种改进型,可以更好地处理具有长期依赖关系的时间序列数据。
LSTM通过一个门控单元来选择是否遗忘过去的状态或选择是否更新当前状态,从而解决了RNN的短期记忆的限制。
四、应用案例基于神经网络的时间序列预测技术已广泛应用于股票价格预测、气候预测和销售预测等领域。
基于神经网络的时间序列预测模型研究深度学习是人工智能领域的一个重要分支,其在时间序列预测任务中取得了显著的成果。
本文将介绍基于神经网络的时间序列预测模型的研究进展,并探讨其在实践中的应用。
时间序列预测是一种通过分析过去的数据来预测未来趋势的方法。
传统的时间序列预测方法如ARIMA、SARIMA等基于统计学的模型,在处理非线性和非平稳的序列时效果有限。
而神经网络模型具有强大的非线性拟合能力和自适应性,能够更好地捕捉序列中的模式和规律。
基于神经网络的时间序列预测模型主要有循环神经网络(RNN)、长短期记忆网络(LSTM)和门控循环单元(GRU)等。
RNN是一种引入循环连接的神经网络结构,能够处理时序数据,并通过隐藏层的状态传递信息。
然而,传统的RNN在处理长期依赖问题时会出现梯度消失和梯度爆炸的情况,导致模型无法有效学习长期依赖关系。
LSTM和GRU是对传统RNN的改进,通过引入门控机制来控制隐藏状态的更新和遗忘,从而更好地捕捉序列中的长期依赖。
在实践中,基于神经网络的时间序列预测模型需要经过数据预处理、模型选择和模型训练三个阶段。
首先,数据预处理是为了将原始序列转化为适合神经网络模型输入的形式。
常见的处理方式包括归一化、平滑、去趋势和去季节性等。
归一化可以将数据缩放到一定范围内,避免不同特征的值域差异过大。
平滑操作可以减少序列的噪声,突出序列的趋势。
去趋势和去季节性则可以消除序列中的长期和周期性的影响,使得模型更好地学习序列的短期变化规律。
其次,在模型选择阶段,需要根据具体的问题和数据特点选择合适的神经网络模型。
对于短期预测任务,可以考虑使用简单的RNN模型;对于长期预测或长期依赖问题,可以选择LSTM或GRU模型。
此外,还可以通过堆叠多个隐藏层、增加单元数量或调整其他超参数来改进模型的性能。
最后,在模型训练阶段,需要将数据集划分为训练集和验证集,用训练集进行模型参数的学习,然后使用验证集评估模型的性能,并根据评估结果进行模型调整。
利用神经网络技术预测时间序列数据时间序列数据是指随着时间推移而变化的数据集,如股票价格、气温、销售数据等。
在许多领域,预测未来的时间序列数据对于决策和规划至关重要。
近年来,神经网络技术在时间序列数据预测方面表现出色,成为了热门的研究方向。
本文将从以下几个方面介绍利用神经网络技术预测时间序列数据的方法和应用。
一、时间序列数据预处理在进行时间序列数据预测之前,通常需要对数据进行预处理。
例如,数据的缺失值需要进行填补,数据需要进行平稳化等操作。
在这里我们重点介绍平稳化操作。
时间序列数据通常具有趋势性、季节性和周期性。
为了便于预测,需要将这些变化因素从数据中去除,使之变得平稳。
可以通过两种方式进行平稳化:差分和对数变换。
差分是指将每个时间点的数据减去前一个时间点的数据,得到的差值序列就是一阶差分序列。
如果还存在趋势性,则可以继续进行差分操作,直到序列平稳为止。
对数变换则是将数据取对数后再进行预测。
对数变换可以减小数据的波动范围,使数据更加平稳。
二、神经网络模型神经网络是一种模仿人类神经系统结构和功能的数学模型。
神经网络由多个神经元组成,每个神经元接收多个输入信号并产生一个输出信号。
神经网络将多个神经元进行连接形成网络,实现对数据的预测。
在时间序列数据预测中,常用的神经网络模型有前馈神经网络(Feedforward Neural Network,简称FNN)、循环神经网络(Recurrent Neural Network,简称RNN)和长短时记忆神经网络(Long Short-Term Memory Neural Network,简称LSTM)等。
这里我们将重点介绍LSTM模型。
LSTM 是一种常用的 RNN 模型,可以有效地处理时间序列数据中的长期依赖关系。
LSTM 模型由输入门、遗忘门和输出门等单元组成,可以对时间序列数据进行状态更新、记忆和预测。
LSTM 模型可以有效地捕捉时间序列数据中的长期依赖性,是时间序列数据预测中常见的选择。
基于神经网络的时间序列预测技术研究随着科技发展和人类对于对未来的需求不断增加,预测技术在各个领域中都显得极为重要。
其中,时间序列预测技术更是应用广泛。
随着大数据时代的到来,利用神经网络进行时间序列预测已经成为了主流趋势。
本文旨在研究基于神经网络的时间序列预测技术。
一、时间序列预测技术的概念时间序列预测技术,是指利用过去的一段时间内的数据来预测未来时间内的数据变化趋势,主要应用于金融、物流、能源等领域。
通过对时间序列数据的分析和处理,可以帮助企业、机构等进行决策。
在过去,时间序列预测技术主要依靠传统的统计方法,如移动平均、指数平滑等,但这些方法往往要求数据的平稳性和线性性,对于复杂的非线性数据,预测准确率难保证。
而基于神经网络的时间序列预测技术,可以更好地解决这一问题。
二、神经网络的原理神经网络模仿人类的神经系统,由许多节点(神经元)和连接它们的边组成。
神经网络在学习过程中,调整节点之间连接的权重,以便更好地拟合数据。
在网络学习完成后,可以通过输入新的数据,输出结果。
神经网络有许多不同的结构,例如前馈神经网络、循环神经网络等。
其中,前馈神经网络以输入、中间层和输出层为结构,通过多层的非线性转换将输入数据映射成输出结果。
而循环神经网络则可以处理序列数据,通过将当前输入和之前的输出结合在一起,预测下一个输出。
三、基于神经网络的时间序列预测技术基于神经网络的时间序列预测技术主要包括两个步骤:模型建立和模型训练。
模型建立是指根据时间序列数据的特征,选择适当的神经网络结构,并设置相应的神经元个数、学习率、激活函数等参数,以便建立一个可以处理该时间序列数据的神经网络模型。
模型训练是指利用历史时间序列数据对模型进行训练,通过不断调整模型的参数,使其能够更好地拟合数据,提高预测准确率。
四、神经网络时间序列预测技术的优势相比传统的统计方法,基于神经网络的时间序列预测技术具备以下优势:1.适应复杂非线性数据。
神经网络可以通过多层非线性转换,更好地适应复杂非线性数据的预测。
基于神经网络的时间序列预测与分析研究随着人工智能技术的不断发展,神经网络成为了时间序列预测与分析中的一种重要工具。
通过神经网络,我们可以对未来的时间序列数据进行预测,以及对现有的时间序列数据进行分析,从中提取出有用的信息和趋势。
本文将对基于神经网络的时间序列预测与分析进行研究,并探讨其在实际应用中的价值和局限性。
首先,神经网络在时间序列预测中的应用已经被广泛研究和验证。
神经网络具有强大的非线性建模能力,能够处理复杂的时间序列数据,并且能够自动学习到其中的规律和模式。
通过训练神经网络模型,我们可以准确地预测未来的时间序列数据,如股票价格、气象数据等。
神经网络能够捕捉到时间序列中的动态变化和趋势,从而提高预测的准确性和可靠性。
其次,神经网络在时间序列数据分析中也有重要的应用。
通过分析现有的时间序列数据,我们可以了解数据的特征、趋势和规律。
神经网络可以用于时序数据的特征提取和分类,从而实现时间序列数据的自动识别和归类。
此外,神经网络还可以用于时间序列的降维和可视化,帮助我们理解和解释时间序列数据的内在结构和关系。
然而,基于神经网络的时间序列预测与分析也存在一些挑战和局限性。
首先,神经网络模型的训练需要大量的时间序列数据,并且数据要求具有一定的时序相关性和稳定性。
如果数据量不足或者数据存在噪音和异常值,神经网络的预测和分析结果可能会受到影响。
其次,神经网络模型的选择和参数调整也需要一定的经验和技巧。
不同的神经网络结构和算法对时间序列数据的建模能力和预测性能有所差异,需要根据具体的问题和数据进行选择和优化。
此外,基于神经网络的时间序列预测与分析也面临一些未解决的问题和挑战。
例如,在处理长期依赖和非线性关系方面,传统的神经网络结构如循环神经网络(RNN)和长短期记忆网络(LSTM)存在一定的局限性。
为了进一步提高时间序列预测和分析的性能,我们需要不断探索和研究更加高效和精确的神经网络结构和算法。
综上所述,基于神经网络的时间序列预测与分析是一项具有巨大潜力和应用前景的研究领域。
基于ELM学习算法的混沌时间序列预测李彬;李贻斌【摘要】混沌时间序列预测问题是信号处理和自动控制领域中一个重要的研究方向,神经网络学习算法在处理这种高复杂性、强非线性的时间序列时具有很好的优势.应用一种具有良好性能的单隐层前向神经网络学习算法——极端学习机(ELM)学习算法,进行混沌时间序列问题的预测.与资源分配网络(RAN)学习算法相比,仿真结果表明ELM学习算法在具有较快学习速度的前提下,能够获得较好的预测性能,且ELM学习算法激活函数的选择具有问题依赖性.%The chaotic time series prediction is an important research orientation in signal processing and automatic control areas. The neural network learning algorithms show a significant advantage in solving high complex and strong nonlinear problems. A good learning algorithm for feedforward neural networks named extreme learning machine (ELM) was applied to chaotic time series prediction. Compared with resource allocating network (RAN) learning algorithm, the simulation results show that ELM learning algorithm can achieve satisfactory prediction performance with a fast learning speed. And the choice of the activation functions of ELM learning algorithm is data set dependent.【期刊名称】《天津大学学报》【年(卷),期】2011(044)008【总页数】4页(P701-704)【关键词】混沌时间序列;极端学习机;激活函数;预测【作者】李彬;李贻斌【作者单位】山东大学控制科学与工程学院,济南250061;山东轻工业学院数理学院,济南250353;山东大学控制科学与工程学院,济南250061【正文语种】中文【中图分类】TP183混沌系统是一个确定的非线性动态系统,由这种系统产生的混沌信号对初始条件比较敏感,难以长期预测.混沌理论和混沌信号的处理是现阶段的一个热点研究问题,混沌时间序列(混沌信号)是对一个混沌系统采样得到的单变量时间序列.为了更好地研究混沌系统,如何对这种高度复杂,强非线性的混沌信号进行建模和预测,是当前的一个难点和热点问题.神经网络作为一种数据驱动的结构和算法,具有逼近任意非线性函数的能力,可以映射出数据之间的非线性关系.从而使得神经网络成为混沌时间序列预测的一个强有力的工具.文献[1-3]中,分别探讨了径向基函数(radial basis function,RBF)神经网络、BP(back propagation)神经网络、模糊神经网络等对混沌时间序列问题的预测.现存的这些方法存在很多缺点,一般算法比较复杂,均为批处理学习算法,不能进行实时的在线学习,很多参数需要人工调整,预测精度不高,收敛速度慢或容易陷入局部极小点,算法运行的时间较长等.2006 年,Huang 等[4]提出了一类性能优良的单隐层前向神经网络(single-hidden layer feed forward neural networks,SLFNs)学习算法,称为极端学习机(extreme learning machine,ELM)学习算法,与一般的BP 神经网络、RBF神经网络相比,性能较好.该算法可以随机地选择网络中隐层神经元个数和类型,构造不同的学习算法,且在随机选择输入层权值和隐层神经元偏差(阈值)前提下,可以解析获得隐层输出权值,该方法具有许多优良的特性,如学习速度快,泛化能力好等.ELM 学习算法和理论[4-6]经过许多学者的努力,已在函数逼近、模式分类、系统辨识等方面得到广泛应用.本文将ELM 学习算法用于混沌时间序列预测,扩展了这种算法的应用范围.仿真结果表明,ELM 学习算法所处理的混沌时间序列,预测精度较高,学习速度较快.并且针对同一问题,在网络复杂度相同的前提下,选择不同的激活函数,ELM 学习算法性能差异较大,即ELM 学习算法激活函数的选择具有问题依赖性.1 ELM学习算法简介具有个隐层神经元的SLFNs 的输出为式中:G ( w i , bi, x)为与输入x 对应的第i 个隐层神经元的输出;β i=[β i1,βi2,···,βim]T为第i 个隐层神经元与输出神经元之间的连接权向量.当激活函数g(x)为加性神经元时,第i 个隐层神经元的输出为式中:是第i 个隐层神经元与输入神经元之间的权向量;bi是第i 个隐层神经元的偏差.当激活函数g(x)为RBF 神经元时,其相应的输出为式中:wi和 bi 分别为第i 个径向基函数的中心和影响因子(宽度);R+是一个正实数集合.对于 N 个任意输入样本(xj,tj),其中,给定个隐层神经元和激活函数G(wi,bi,x),则存在βi,wi和 bi ,使得SLFNs 能够以零误差逼近这N 个样本点,即式(4)可以写成矩阵形式为其中式中:H 是该神经网络的隐层输出矩阵,H 的第i 列是关于输入x1,x2,… ,xN 的第i 个隐层神经元的输出.对于单隐层前向神经网络,ELM 学习算法对于任意无限可微的激活函数都是可用的[4-5],从而拓展了前向神经网络激活函数的选择空间.与传统的函数逼近理论不同,ELM 学习算法的输入层权值 w i和隐层的偏差 bi 可以随机选择[4].从而,对于前向神经网络来说,在网络的训练过程中,无需对输入层权值和隐层偏差进行调整,一旦这些参数随机确定以后,隐层输出矩阵H 在网络开始训练时,保持不变.从而,SLFNs 的训练过程,等价于寻找线性系统H β =T的最小二乘解,如果隐层神经元的个数和网络的输入样本个数N 相同,即= N,当输入层权值和隐层偏差随机确定以后,矩阵H 是可逆方阵,则该SLFNs 能够以零误差逼近训练样本.但是,在大多数情况下≪ N,矩阵H 不是方阵,从而不存在使得=Hβ=T.但是可以求这个线性系统的最小范数最小二乘解:=H+T ,其中 H +为矩阵H 的Moore-Penrose 广义逆.ELM 学习算法总结为:给定一个训练样本集,激活函数g(x),隐层神经元个数,具体步骤如下.步骤1 随机设定输入层权值wi 和偏差bi,i =1,…,,.步骤 2 计算隐层输出矩阵H .步骤3 计算输出层权值β: = H +T ,其中 T=2 计算机仿真与结果分析本文用Box and Jenkins gas furnace data[7]和Mackey-Glass[8]混沌时间序列预测问题来进行计算机仿真.ELM 学习算法的隐层神经元个数和激活函数类型,根据所处理的问题进行选取,以期得到较好的逼近误差和泛化能力.本文所有结果都是在Matlab 7.0 环境下,CPU 为1.7,GHz 的奔腾Ⅳ机器上运行得到的,为了使算法更有说服力,表中的结果为10 次仿真结果的平均值,算法性能用均方根误差衡量.在Box and Jenkins gas furnace data 基准问题中,原始数据点个数为296 个,其中 u(t)为输入气体流速,y (t )为输出CO2 浓度,用{ y(t − 1), y ( t − 2), y(t −3),y(t − 4),u (t− 1),u (t − 2),u (t − 3),u (t − 4),u (t −5),u(t − 6)}时刻的值来预测 y (t )时刻的值.这里取的有效数据点个数为290 个,前200 个为训练样本,后90个作为测试样本.Mackey-Glass 微分延迟方程被认为是一个混沌时间序列基准问题.它由下面的微分延迟方程产生,式中:a = 0.2;b = 0.1;τ = 17.用微分延迟方程生成的Mackey-Glass 时间序列个数为4,500,其中的前4,000 数据用来训练网络,后500 个作为网络的测试数据,来测试网络的泛化能力.在同一激活函数下,神经网络中隐层激活函数个数越多,逼近能力越好,但是有可能出现过拟合现象,使得神经网络的泛化能力降低.因此,为了获得较好的网络性能,必须适当地选择合适的隐层神经元个数.为了使得ELM 学习算法有比较好的性能,在Box and Jenkins gas furnace data 和Mackey-Glass 混沌时间序列预测中,隐层神经元个数分别为15和200.如表1 所示,对于Box and Jenkins gas furnace data 基准问题,在相同的网络复杂度(隐层神经元个数相同)前提下,线性(linear)激活函数性能表现良好,和其他激活函数相比,其训练误差和测试误差都较小,2 种误差的标准偏差为0,网络的稳定性较好.而对于Mackey-Glass 混沌时间序列问题来说,当激活函数为sigmoid时,网络的性能表现较好.仿真结果表明对于相同的网络复杂度,选择不同的激活函数,同样的问题性能表现有很大的不同,即ELM 学习算法中激活函数的选择具有问题依赖性.因此,在同样网络复杂度前提下,根据实际问题选择不同的激活函数对设计高性能的ELM 前向神经网络是重要的.表1 不同激活函数条件下ELM学习算法关于混沌时间序列预测问题的性能比较Tab.1 Performance comparison of ELM learning algorithm with different activation functions for chaotic time series prediction problems数据训练误差标准偏差测试误差标准偏差激活函数类型网络复杂度0.014 6 0 0.018 9 0 linear 15 Box and Jenkins gas furnace data 0.017 8 0.002 3 0.022 0 0.002 9 sigmoid 15 0.236 8 0.082 5 0.263 2 0.086 8 RBF15 0.048 6 0.011 8 0.051 0 0.014 9 cubic 15 0.021 5 0.001 9 0.024 2 0.002 0 sine 15 0.043 0 9.944 3×10-5 0.010 5 3.527 7×10-4 sigmoid 200 Mackey-Glass 0.163 6 0 0.155 2 0 linear 200 0.077 4 0 0.064 8 0 cubic 200 0.048 2 5.233 4×10-4 0.024 6 0.001 4 RBF 200 0.043 1 3.162 3×10-5 0.011 0 2.121 3×10-4 sine 200图1和图2 分别为2个混沌时间序列问题的预测曲线,从图上可以看出,在适当的选择激活函数类型和隐层神经元个数前提下,ELM 学习算法比较适合处理复杂的混沌时间序列预测问题,能严格地跟踪拟合这些高度复杂、强非线性曲线.图1 ELM 学习算法关于Box and Jenkins 煤气炉混沌时间序列预测问题的预测曲线(线性激活函数)Fig.1 Prediction curve of ELM learning algorithm for Fig.1 Box and Jenkins gas furnace chaotic time series Fig.1 prediction problems (linear activation function)图2 ELM学习算法关于Mackey-Glass混沌时间序列预测问题的预测曲线(sigmoid 激活函数)Fig.2 Prediction curve of ELM learning algorithm for Fig.2 Mackey-Glass chaotic time series prediction pro-Fig.2 blems(sigmoid activation function)为了更好地体现ELM 学习算法的优良性能,本文比较了ELM 和资源分配网络(resource allocating network,RAN)[9]径向基函数神经网络学习算法.除期望输出误差取值为0.001 之外,RAN 学习算法的其他参数选取和文献[8]一样.从表2 可以看出,在相同的网络复杂度前提下,和RAN 学习算法相比,ELM 学习算法的训练时间、训练误差和测试误差都较小,更适合于混沌时间序列问题的预测.表2 ELM和RAN学习算法在混沌时间序列预测问题的性能比较Tab.2 Performance comparison of ELM and RAN learning algorithms for chaotic time series prediction problems数据算法 CPU 时间/s 训练误差测试误差网络复杂度RAN 60.60 0.072 7 0.091 1 7 Box and Jenkins gas furnace data ELM 60.01 0.028 8 0.029 8 7 RAN 65.00 0.091 10.037 3 70 Mackey-Glass ELM 60.29 0.052 2 0.030 5 703 结语本文将ELM 学习算法应用于混沌时间序列预测,与其他方法不同,ELM 学习方法在随机选择输入层权值和隐层偏差的前提下,可以解析获得隐层输出权值,算法简单,执行速度很快.与RAN 学习算法相比,仿真表明对于混沌时间序列预测问题,ELM 学习算法具有较好的性能.同时也说明了对于同样的问题,ELM 学习算法中,选择不同激活函数,性能表现差异明显,即ELM 激活函数的选择具有问题依赖性.针对不同问题,激活函数的选择一般有2 种方式:一种是把从所处理问题中提取的先验知识耦合进神经网络算法当中[10];另一种是选择激活函数自适应可调的神经网络学习算法.因此,根据实际问题选择不同的神经网络激活函数对设计高性能的极端学习机前向神经网络是重要的,也为将来设计激活函数自适应可调的ELM学习算法提供了一定的理论基础.【相关文献】[1]李冬梅,王正欧. 基于RBF 神经网络的混沌时间序列预测[J]. 模式识别与人工智能,2001,14(2):231-234.Li Dongmei,Wang Zheng’ou. Prediction of chaotic time series based on RBF neural networks[J]. Pattern Recognition and Artificial Intelligence,2001,14(2):231-234(in Chinese).[2]郁俊莉. 基于混沌时间序列的非线性动态系统神经网络建模与预测[J]. 武汉大学学报:理学版,2005,51(3):286-290.Yu Junli. Modeling and forecasting of the nonlinear dynamic system neural network based on the chaotic time series[J]. Journal of Wuhan University:Natural Science Edition,2005,51(3):286-290(in Chinese).[3]Maguire L P,Roche B,McGinnity T M,et al. Predicting a chaotic time series using a fuzzy neural network[J].Information Sciences,1998,112(1/2/3/4):125-136.[4]Huang G B,Zhu Q Y,Siew C K. Extreme learning machine : Theory and applications[J]. Neurocomputing,2006,70(1/2/3):489-501.[5]Huang G B,Siew C K. Extreme learning machine with randomly assigned RBF kernels[J]. International Journal of Information Technology,2005,11(1):16-24.[6]Li M B,Er M J. Nonlinear system identification using extreme learning machine[C]// Ninth International Conference on Control,Automation,Robotics and Visio.Singapore,2006:1-4.[7]Rojas I,Gonzalez J,Canas A,et al. Short-term prediction of chaotic time series by using RBF network with regression weights[J]. International Journal of Neural Systems,2000,10(5):353-364.[8]李彬,赖晓平. 改进的GGAP-RBF 算法及其在函数逼近中的应用[J]. 模式识别与人工智能,2007,20(2):230-235.Li Bin,Lai Xiaoping. An improved GGAP-RBF algorithm and its application to function approximation[J].Pattern Recognition and Artificial Intelligence,2007,20(2):230-235(in Chinese).[9]Platt J. A resource-allocating network for function interpolation neural computation[J]. Neural Computation,1991,3(2):213-225.[10]韩飞. 基于先验信息编码的约束学习算法研究[D].合肥:中国科学技术大学自动化系,2006.Han Fei. A Study of Constrained Learning Algorithms Encoding the a PrioriInformation of Problem[D].Hefei:Department of Automation,University of Science and Technology of China,2006(in Chinese).。
目录1引言 (2)2MG时间序列 (2)2.1MG时间序列简介 (2)2.2利用dde23函数求解MG时间序列 (2)3BP神经网络 (4)3.1神经网络总体思路 (4)3.2MATLAB中的newff函数 (4)3.3BP神经网络的训练 (5)3.4构建输入输出矩阵 (7)3.5对MG时间序列未来值预测 (7)4参考文献 (8)5附录 (9)1 引言本文选用的神经网络的是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 herexlag=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);。