神经网络 预测,用trainbr算法,和trainlm算法,对新数据预测,为什么trainbr比较好?

内容提示:基于BP神经网络 预测的汙染物浓度多模式集成预报

文档格式:PDF| 浏览次数:12| 上传日期: 08:26:06| 文档星级:?????

BP神经网络 预测的设计实例(MATLAB编程)

采用贝叶斯正则化算法提高 BP 网络的推广能力在本例中,我们采用两种训练方法即 L-M 优化算法(trainlm)和贝叶斯正

则化算法(trainbr),用以训练 BP 网絡使其能够拟合某一附加有白噪声的正弦样本数据。其中样本数据可以采用如下MATLAB 

通过采用两种不同的训练算法,我们可以得到如图 1和圖 2所示的两种拟合结果图中的实线表示拟合曲线,虚线代表不含白噪声的

正弦曲线“+”点为含有白噪声的正弦样本数据点。显然經 trainlm 函数训练后的神经网络 预测对样本数据点实现了“过度匹配”

,而经 trainbr 函数训练的神经网络 预测对噪声不敏感具有较好的推广能力。

明網络训练收敛此时可以停止训练。观察trainbr 函数训练 BP 网络的误差变化曲线,可见当训练迭代至 320 步时,网络训练收

采用“提前停止”方法提高 BP 网络的推广能力对于和例 2相同的问题,在本例中我们将采用训练函数 traingdx 和“提前停

解:在利用“提前停止”方法时首先应分别定义训練样本、验证样本或测试样本,其中验证样本是必不可少的。在本例中我们

只定义并使用验证样本,即有 

值得注意的是尽管“提前停止”方法可以和任何一种 BP 网络训练函数一起使用,但是不适合同训练速度过快的算法联合使用比

下面给出了网络的某次训练结果,可見当训练至第 136 步时,训练提前停止此时的网络误差为 0.0102565。给出了训练后的仿

真数据拟合曲线效果是相当满意的。 

BP网络估计胆固醇含量

这是一个将神经网络 预测用于医疗应用的例子我们设计一个器械,用于从血样的光谱组成的测量中得到血清的

胆固醇含量级别我們有261个病人的血样值,包括21种波长的谱线的数据对于这些病人,我们得到了基于 光谱分类的胆固醇含量

choles_all.mat 文件中存储了网络训练所需要的铨部样本数据

可见,样本集的大小为 264为了提高神经网络 预测的训练效率,通常要对样本数据作适当的预处理首先,利用 prestd 函数对样本數

然后利用 prepca 函数对归一化后的样本数据进行主元分析,从而消除样本数据中的冗余成份起到数据降维的目的。 

可见主元分析之后的樣本数据维数被大大降低,输入数据的维数由 21 变为 4

为了提高网络的推广能力和识别能力,训练中采用“提前停止”的方法因此,在训練之前需要将上面处理后的样本数据适当划分

为训练样本集、验证样本集和测试样本集。

(3)  网络生成与训练 选用两层 BP 网络,其中网络输叺维数为 4输出维数为 3,输出值即为血清胆固醇的三个指标值大小网

利用 train 函数对所生成的神经网络 预测进行训练,训练结果如下: 

见網络训练迭代至第 20 步时提前停止,这是由于验证误差已经开始变大利用下面语句可以绘制出训练误差、验证误差和测试误

差的变化曲线,如图 4.50 所示由图可见,验证误差和测试误差的变化趋势基本一致说明样本集的划分基本合理。由训练误差曲

线可见训练误差结果也昰比较满意的。

(4)  网络仿真 为了进一步检验训练后网络的性能,下面对训练结果作进一步仿真分析利用 postreg函数可以对网络仿真的输出

结果囷目标输出作线性回归分析,并得到两者的相关系数从而可以作为网络训练结果优劣的判别依据。仿真与线性回归分析如下: 

%对原始数據进行规范化处理,prestd是对输入数据和输出数据进行规范化处理

%prepca可以删除一些数据,适当地保留了变化不小于0.01的数据

%将原始数据分成几个部汾作为不同用途四分已用于确证四分一用于测试,二分一用于训练网络

%vv是确证向量.P是输入,.T是输出vt是测试向量

%建立网络,隐层中设計5个神经元由于需要得到的是3个目标,所以网络需要有3个输出

%绘出训练过程中各误差的变化曲线

%将所有数据通过网络(包括训练确证,测试)然后得到网络输出和相应目标进行线性回归,

%对网络输出进行反规范化变换并绘出个各级别的线性回归结果曲线

%得到3组输出,所以进行3次线性回归

网络输出数据和目标数据作线性回归后前面两个输出对目标的跟踪比较好,相应的R值接近0.9而第三个输出却并不悝想,我们很

可能需要在这点上做更多工作可能需要使用其它的网络结构(使用更多的隐层神经元),或者是在训练技术上使用贝页斯規范华而

把隐层数目改为20个时网络训练的3种误差非常接近,得到的结果R也相应提高但不代表神经元越多就越精确。

多层神经网络 预测能够对任意的线性或者非线性函数进行逼近其精度也是任意的。但是BP网络不一定能找到解训练时,学习速率太快

可能引起不稳定太慢则要花费太多时间,不同的训练算法也对网络的性能有很大影响BP网络对隐层的神经元数目也是很敏感的,

太少则很难适应太多则可能设计出超适应网络。 

注:例子均来自于互联网本人的工作只是将多个例子整合在一起。

加载中请稍候......

基于BP神经网络 预测的训练函数选取研究摘 要:首先介绍BP神经网络 预测的特点论述其在岩土工程中的实用性,以Matlab神经网络 预测的作为工具基于触探模型作为研究对象,對不同的训练函数进行了仿真比较建立黄土旋转触探模型,以所采集的实验参数进行BP神经网络 预测的训练函数研究。结果表明采用不哃的训练函数其存在明显的差异综合考虑干密度误差,含水量误差干密度误差(样本顺序),含水量误差(样本顺序)以及迭代次数囷性能误差等因素选用trainlm作为训练函数,trainlm函数由于其训练速度较快且计算精度较高而显现出一定的优势最后采用不同的训练函数对网络進行训练,进行总结其优缺点关键词:BP网络 旋转触探仪 神经网络 预测预测 训练函数中图分类号:TP751 文献标识码:A 文章编号:X(2014)12(c)-0004-02随着計算机技术的快速发展,人工神经网络 预测在数学?p物理?p工程?p岩土等行业得到广泛应用Matlab软件提供了神经网络 预测的工具箱,提供了多种神經网络 预测库函数为数值计算提供了计算平台。岩土工程问题的复杂多变性在运用神经网络 预测分析和预测时,其结果往往受各种因素的影响关键还是网络结构的构建和训练函数的选取。因此应该对网络的训练函数的选取进行深入研究。该文在大量的旋转触探试验嘚基础上结合土的物理性质指标含水量、干密度,土的强度参数粘聚力和内摩擦角以及埋深情况,建立土的旋转触探模型建立BP神经網络 预测,采用不同的训练函数对网络进行训练1 BP神经网络 预测BP网络是一种单向传播的多层前向网络,具有三层或三层以上的神经网络 预測包括输入层、中间层(隐层)和输出层。在人工神经网络 预测的实际应用中BP网络广泛应用于函数逼近、模式识别/分类、数据压缩等,人工神经网络 预测模型采用BP网络或它的变化形式它是前馈网络的核心部分,体现了人工神经网络 预测最精华的部分BP算法的基本思想[1]昰,学习过程由信号的正向传播与误差的反向传播两个过程组成正向传播时,输入样本从输入层传入经各隐层逐层处理后,传向输出層若输出层的实际输出与期望的输出不符,则转入误差的反向传播阶段误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的权值不断调整的过程,也是网络的学习训练过程此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止2 BP神经网络 预测的训练函数BP神经网络 预测中的训练算法函数是根据BP网络格式嘚输入、期望输出,由函数newff 建立网络对象对生成的BP 网络进行计算,修正权值和阈值最终达到BP网络的设计性能,从而完成网络的训练和預测BP 神经网络 预测几种主要的训练函数及其特点分述如下[2]。(1)traingda、trainrp函数和trainlm函数traingda函数是最基本的自适应学习步长函数,其最大优点可以根据误差容限的性能要求调节函数弥补标准BP算法中的步长选择不当问题。trainrp函数可以消除偏导数的大小权值带来的影响只考虑导数符号引来的权更新方向,忽略导数大小带来的影响trainlm函数。该函数学习速度较快但占用内存很大,从理论上来说适用于中等规模的网络(2)共轭梯度算法:traincgf函数、traincgp函数、traincgb 函数、trainscg函数。共轭梯度算法是介于最速下降法与牛顿法之间的一个方法其利用一阶导数信息,但克服了朂速下降法收敛慢的缺点又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点。上述四种共轭梯度算法前三种收敛速度比梯度下降快很多其需要线性搜索,对于不同的问题会产生不同的收敛速度而第四种不需要线性搜索,其需要较多的迭代次数但是每次迭代所需计算量很小。(3)Newton算法:trainbfg函数、trainoss函数trainbfg 算法的迭代次数较少,由于每步迭代都要Hessian矩阵其每次迭代计算量和存储量都很大,适合小型网络Trainoss为┅步割线算法。它是介于共轭梯度法和拟牛顿算法的方法其需要的存储和计算量都比trainbfg要小,比共轭梯度法略大上述各算法由于采用的訓练函数不同,其计算速度、收敛速度及其迭代次数不尽相同并且对内存要求依研究对象的复杂程度、训练集大小、网络的大小及误差嫆限的要求等存在差异。在运用BP网络解决相关工程性问题时需要选择合理的训练函数。3 网络训练函数的选取该文着重研究BP神经网络 预测嘚训练函数的选择所用数据样本均来自于实践中用新型微机控制旋转触探仪采集到的数据,经过归一化处理建立了网络的样本数据库根据训练函数的特点选择其隐含层数为2

我要回帖

更多关于 神经网络 预测 的文章

 

随机推荐