基于Matlab的改进BP神经网络及其应用

合集下载

BP神经网络的应用

BP神经网络的应用

基于MATLAB的BP神经网络应用人工神经网络(Artificial Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。

神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学习能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。

神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、微电子学、心理学、光计算、分子生物学等有关,是一门新兴的边缘交叉学科。

神经网络具有非线性自适应的信息处理能力,克服了传统人工智能方法对于直觉的缺陷,因而在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。

神经网络与其他传统方法相组合,将推动人工智能和信息处理技术不断发展。

近年来,神经网络在模拟人类认知的道路上更加深入发展,并与模糊系统、遗传算法、进化机制等组合,形成计算智能,成为人工智能的一个重要方向。

MATLAB是一种科学与工程计算的高级语言,广泛地运用于包括信号与图像处理,控制系统设计,系统仿真等诸多领域。

为了解决神经网络问题中的研究工作量和编程计算工作量问题,目前工程领域中较为流行的软件MATLAB,提供了现成的神经网络工具箱(Neural Network Toolbox,简称NNbox),为解决这个矛盾提供了便利条件。

神经网络工具箱提供了很多经典的学习算法,使用它能够快速实现对实际问题的建模求解。

在解决实际问题中,应用MATLAB 语言构造典型神经网络的激活传递函数,编写各种网络设计与训练的子程序,网络的设计者可以根据需要调用工具箱中有关神经网络的设计训练程序,使自己能够从烦琐的编程中解脱出来,减轻工程人员的负担,从而提高工作效率。

一、人工神经网络的研究背景和意义人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。

在Matlab中实现神经网络的方法与实例

在Matlab中实现神经网络的方法与实例

在Matlab中实现神经网络的方法与实例神经网络是一种模拟人类大脑神经系统的计算模型,它能够通过学习数据的模式和关联性来解决各种问题。

在计算机科学和人工智能领域,神经网络被广泛应用于图像识别、自然语言处理、预测等任务。

而Matlab作为一种功能强大的科学计算软件,提供了一套完善的工具箱,可以方便地实现神经网络的建模和训练。

本文将介绍在Matlab中实现神经网络的方法与实例。

首先,我们会简要介绍神经网络的基本原理和结构,然后详细讲解在Matlab中如何创建并训练神经网络模型,最后通过几个实例展示神经网络在不同领域的应用。

一、神经网络的原理和结构神经网络模型由神经元和它们之间的连接构成。

每个神经元接收输入信号,并通过权重和偏置进行加权计算,然后使用激活函数对结果进行非线性变换。

这样,神经网络就能够模拟复杂的非线性关系。

常见的神经网络结构包括前馈神经网络(Feedforward Neural Network)和循环神经网络(Recurrent Neural Network)。

前馈神经网络是最基本的结构,信号只能向前传递,输出不对网络进行反馈;而循环神经网络具有反馈连接,可以对自身的输出进行再处理,适用于序列数据的建模。

神经网络的训练是通过最小化损失函数来优化模型的参数。

常用的训练算法包括梯度下降法和反向传播算法。

其中,梯度下降法通过计算损失函数对参数的梯度来更新参数;反向传播算法是梯度下降法在神经网络中的具体应用,通过反向计算梯度来更新网络的权重和偏置。

二、在Matlab中创建神经网络模型在Matlab中,可以通过Neural Network Toolbox来创建和训练神经网络模型。

首先,我们需要定义神经网络的结构,包括输入层、隐藏层和输出层的神经元数量,以及每个神经元之间的连接权重。

例如,我们可以创建一个三层的前馈神经网络模型:```matlabnet = feedforwardnet([10 8]);```其中,`[10 8]`表示隐藏层的神经元数量分别为10和8。

基于MATLAB的BP神经网络实现研究

基于MATLAB的BP神经网络实现研究
,Leabharlann ・41 ・ 维普资讯
Mirc mp tr pi t n o. 2 N . ,0 6 co o ue l ai sV i2 , o 8 2 0 Ap c o
的 工 具 箱 。 在 神 经 网 络 工 具 箱 中 , 提供 了许 多 有 关 神 经 网 如 它 络 设 计 、 练 和仿 真 的 函数 。 户 只要 根据 自己 的需 要 调 用 相 训 用
图 1 三层 B P网 络 结 构 图
隐 层 输 入 层
输 出层
B 网 络 由正 向 传 播 和 反 向 传 播 组 成 , 正 向 传 播 阶 段 , P 在
和 仿 真 的 函数 和 方 便 、 友好 的 图形 用 户 界 面来 实现 B 网络 , 可 实 时 将 仿 真 结 果 可视 化 , 而 使 应 用B 网络 来 解 决许 多领 域 的 P 还 从 P
实际问题 变得非常方便和有效 。
关 ■ 词 :P 神 经 网 络 I B MATL ABI 真 仿 中 圈 分 类 号 : P13 T 8 文献标识码 : A
每一层神 经元 的状 态只影 响下一层神 经元 的状态 , 若在 输 出 层得不到期望的输 出值 , 则进行 误差的反 向传播 阶段 。 其具体
的学习过程和步骤如 下:
关 的程 序 , 而 免除 了编 写复杂 而庞 大 的算 法程 序 的困扰 。 从
20 0 4年 , MATL AB 的最 新 版本 产 品 MATL 7发 布 。 AB MAT — L 7在 编 程 和 代 码 效 率 、 图 和 可 视 化 、 学 运 算 、 据 读 AB 绘 数 数 写 等 方 面 都 有 了很 大 的 改 进 。
引言
人 工 神 经 网络 ( ric l ua Newok A A t ia Nerl t r , NN) f i 的理 论

BP神经网络原理及其MATLAB应用

BP神经网络原理及其MATLAB应用

BP神经网络原理及其MATLAB应用BP神经网络(Back Propagation Neural Network)是一种基于梯度下降算法的人工神经网络模型,具有较广泛的应用。

它具有模拟人类神经系统的记忆能力和学习能力,可以用来解决函数逼近、分类和模式识别等问题。

本文将介绍BP神经网络的原理及其在MATLAB中的应用。

BP神经网络的原理基于神经元间的权值和偏置进行计算。

一个标准的BP神经网络通常包含三层:输入层、隐藏层和输出层。

输入层负责接收输入信息,其节点数与输入维度相同;隐藏层用于提取输入信息的特征,其节点数可以根据具体问题进行设定;输出层负责输出最终的结果,其节点数根据问题的要求决定。

BP神经网络的训练过程可以分为前向传播和反向传播两个阶段。

前向传播过程中,输入信息逐层传递至输出层,通过对神经元的激活函数进行计算,得到神经网络的输出值。

反向传播过程中,通过最小化损失函数的梯度下降算法,不断调整神经元间的权值和偏置,以减小网络输出与实际输出之间的误差,达到训练网络的目的。

在MATLAB中,可以使用Neural Network Toolbox工具箱来实现BP神经网络。

以下是BP神经网络在MATLAB中的应用示例:首先,需导入BP神经网络所需的样本数据。

可以使用MATLAB中的load函数读取数据文件,并将其分为训练集和测试集:```data = load('dataset.mat');inputs = data(:, 1:end-1);targets = data(:, end);[trainInd, valInd, testInd] = dividerand(size(inputs, 1), 0.6, 0.2, 0.2);trainInputs = inputs(trainInd, :);trainTargets = targets(trainInd, :);valInputs = inputs(valInd, :);valTargets = targets(valInd, :);testInputs = inputs(testInd, :);testTargets = targets(testInd, :);```接下来,可以使用MATLAB的feedforwardnet函数构建BP神经网络模型,并进行网络训练和测试:```hiddenLayerSize = 10;net = feedforwardnet(hiddenLayerSize);net = train(net, trainInputs', trainTargets');outputs = net(testInputs');```最后,可以使用MATLAB提供的performance函数计算网络的性能指标,如均方误差、相关系数等:```performance = perform(net, testTargets', outputs);```通过逐步调整网络模型的参数和拓扑结构,如隐藏层节点数、学习率等,可以进一步优化BP神经网络的性能。

基于Matlab的优化BP神经网络在水稻虫害预测预报中的应用

基于Matlab的优化BP神经网络在水稻虫害预测预报中的应用
关键 词 : t b神经 网络 ; P神经 网络 ; Ma a ! B 水稻 虫害 ; 预测 预报 中图分 类号 : P 8 T 12 文 献标识 码 : A 文章 编号 : 6 1 7 2(0 0I .0 90 17 - 9 . 1 ) 1 1 3 4 2 O
Ab ta t I i p p r h w s e b c — r p g t n tan n n t n ema lb t a n f e f r r s r c : n t s a e , o t u et a k p o a ai ii gf c i si t t t i d o wa d h o h o r u o nh a o r e
水稻 的 主要 害 虫常年 义 水 稻造 成严 重 危 害 , 寸 使 汀南, 大地 区农 业经 济遭受严 重损 失 。根 据 害虫的 发生、 展规律, 发 以及 作 物 的 侯 物 和 气象 预 报 等 资 料 , 行 全 面分 析 , 出 其 未 米 的 发生 量 和 危 害程 进 做
保证水 稻的 高产 和稳定 。
层) 和输出层。上下层之间实现全连接, 而每层神经 元之 间无连接。当一对学 习样本提供给网络后 , 神
经 元 的激 活值 从输 入层 经 各 中 间层 向输 出层 传 播 ,
众所周知, 虫害的发生和 自然因素之间有着密 切的联系, 同时受气温 、 它 日照和降雨量等 因素的
报 预 的 由
应 用
trc l c u r n elv l f a d e t i u h u Ja g i r vn ev r e efa iib C ’ p e it emo e. o ia c re c e p d yp ss nF z o , in x o ic ei s h e sb l , rdci d 1 o e o p i f t i P v

MATLAB中的神经网络模型构建与训练

MATLAB中的神经网络模型构建与训练

MATLAB中的神经网络模型构建与训练神经网络模型是一种模拟人脑神经元活动的数学模型,其可以用于进行各种复杂的数据分析和问题求解。

在MATLAB中,我们可以利用其强大的工具和函数来构建和训练神经网络模型。

本文将介绍MATLAB中神经网络模型的构建过程及其相关训练方法。

一、神经网络模型简介神经网络模型是由一系列相互连接的神经元组成的网络结构。

每个神经元都有多个输入和一个输出,输入通过权重被加权后,经过激活函数激活输出。

神经网络可以分为三层:输入层、隐藏层和输出层。

输入层接收原始数据,隐藏层进行信息处理和特征提取,而输出层给出最终结果。

二、神经网络构建在MATLAB中,可以通过Neural Network Toolbox来构建神经网络。

首先,我们需要确定网络结构,包括输入层神经元数、隐藏层神经元数和输出层神经元数。

接下来,我们调用network函数来创建一个空的神经网络对象。

```matlabnet = network;```然后,我们可以通过net的属性来设置神经网络的各个参数,如输入层的大小、隐藏层的大小、激活函数等。

```matlabnet.numInputs = 1; % 设置输入层神经元数net.numLayers = 2; % 设置网络层数net.biasConnect = [1; 1]; % 设置偏置net.inputConnect = [1; 0]; % 设置输入连接yerConnect = [0 0; 1 0]; % 设置层连接net.outputConnect = [0 1]; % 设置输出连接yers{1}.size = 10; % 设置隐藏层神经元数yers{1}.transferFcn = 'tansig'; % 设置激活函数yers{2}.transferFcn = 'purelin'; % 设置激活函数```上述代码中,我们设置了一个具有10个隐藏层神经元的神经网络,其输入和输出分别为1个。

BP神经网络实验详解(MATLAB实现)

BP神经网络实验详解(MATLAB实现)BP(Back Propagation)神经网络是一种常用的人工神经网络结构,用于解决分类和回归问题。

在本文中,将详细介绍如何使用MATLAB实现BP神经网络的实验。

首先,需要准备一个数据集来训练和测试BP神经网络。

数据集可以是一个CSV文件,每一行代表一个样本,每一列代表一个特征。

一般来说,数据集应该被分成训练集和测试集,用于训练和测试模型的性能。

在MATLAB中,可以使用`csvread`函数来读取CSV文件,并将数据集划分为输入和输出。

假设数据集的前几列是输入特征,最后一列是输出。

可以使用以下代码来实现:```matlabdata = csvread('dataset.csv');input = data(:, 1:end-1);output = data(:, end);```然后,需要创建一个BP神经网络模型。

可以使用MATLAB的`patternnet`函数来创建一个全连接的神经网络模型。

该函数的输入参数为每个隐藏层的神经元数量。

下面的代码创建了一个具有10个隐藏神经元的单隐藏层BP神经网络:```matlabhidden_neurons = 10;net = patternnet(hidden_neurons);```接下来,需要对BP神经网络进行训练。

可以使用`train`函数来训练模型。

该函数的输入参数包括训练集的输入和输出,以及其他可选参数,如最大训练次数和停止条件。

下面的代码展示了如何使用`train`函数来训练模型:```matlabnet = train(net, input_train, output_train);```训练完成后,可以使用训练好的BP神经网络进行预测。

可以使用`net`模型的`sim`函数来进行预测。

下面的代码展示了如何使用`sim`函数预测测试集的输出:```matlaboutput_pred = sim(net, input_test);```最后,可以使用各种性能指标来评估预测的准确性。

利用matlab仿真的BP-ANN分类器设计

BP-ANN分类器设计1.引言从深层意义上看,模式识别和人工智能本质都是在解决如何让用机器模拟人脑认知的过程。

一方面,从需要实现的功能出发,我们可以将目标分解为子功能,采用自定而下的的分解法实现我们需要的拟合算法。

而另一方面,无论人脑多么复杂,人类的认知过程都可以认为若干个神经元组成的神经网络在一定机制下经由复杂映射产生的结果。

从神经元的基本功能出发,采用自下而上的设计方法,从简单到复杂,也是实现拟合算法的一条高效途径。

1.1什么是人工神经网络人工神经网络(Artificial Neural Network,ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。

在工程与学术界也常直接简称为神经网络或类神经网络。

神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。

每个节点代表一种特定的输出函数,称为激励函数(activation function)。

每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。

网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。

而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。

它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。

人工神经网络具有四个基本特征:(1)非线性非线性关系是自然界的普遍特性。

大脑的智慧就是一种非线性现象。

人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。

具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

(2)非局限性一个神经网络通常由多个神经元广泛连接而成。

一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。

通过单元之间的大量连接模拟大脑的非局限性。

(完整版)BP神经网络matlab实例(简单而经典)

p=p1';t=t1';[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络net.trainParam.show=2000; % 训练网络net.trainParam.lr=0.01;net.trainParam.epochs=100000;net.trainParam.goal=1e-5;[net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP 网络pnew=pnew1';pnewn=tramnmx(pnew,minp,maxp);anewn=sim(net,pnewn); %对BP网络进行仿真anew=postmnmx(anewn,mint,maxt); %还原数据y=anew';1、BP网络构建(1)生成BP网络=net newff PR S S SNl TF TF TFNl BTF BLF PF(,[1 2...],{ 1 2...},,,)PR:由R维的输入样本最小最大值构成的2R⨯维矩阵。

S S SNl:各层的神经元个数。

[ 1 2...]{ 1 2...}TF TF TFNl:各层的神经元传递函数。

BTF:训练用函数的名称。

(2)网络训练[,,,,,] (,,,,,,)=net tr Y E Pf Af train net P T Pi Ai VV TV(3)网络仿真=[,,,,] (,,,,)Y Pf Af E perf sim net P Pi Ai T{'tansig','purelin'},'trainrp'2、BP网络举例举例1、%traingdclear;clc;P=[-1 -1 2 2 4;0 5 0 5 7];T=[-1 -1 1 1 -1];%利用minmax函数求输入样本范围net = newff(minmax(P),T,[5,1],{'tansig','purelin'},'trainrp');net.trainParam.show=50;%net.trainParam.lr=0.05;net.trainParam.epochs=300;net.trainParam.goal=1e-5;[net,tr]=train(net,P,T);net.iw{1,1}%隐层权值net.b{1}%隐层阈值net.lw{2,1}%输出层权值net.b{2}%输出层阈值sim(net,P)举例2、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。

基于MATLAB的BP神经网络组合预测模型在公路货运量预测中的应用


果综 合起 来 ,以改善模 型 的拟 合能力 并 提高 预测 精 度 。 但 是 ,传 统 的 组 合 预 测 方 法 具 有 一 定 的 局 限
性。
济 意义 。可 见 ,公路 货运 量 的预测 举 足轻 重 ,可 靠
YANG Yu c o,W U Fe , YUAN Zh n— ho n— ha i e z u
( E e L b rt y fr U b n T a s ot in o p e S s m h o a d T c n lg ,B in i tn nv r t , MO K y a oa r o r a rnp r t C m lx yt s T e r n e h oo y e ig Ja o g U ies y o ao e y j o i B in 1 0 4 ,C ia e i 0 4 hn ) jg 0
或某 几个 方 面 ,反 映 了部分 因素 的影 响 。但公 路 货 运量 受到 多种 因素 的影 响 ,为 了最 大限 度地 反映 实 际情 况 ,可 采用组 合 预测 的方 法将各 种 单项 预测 结
运 输需 求预 测 是 公 路 网规 划 、区 域发 展 规 划 、
基 础建设 投 资决 策及 运输 生产 组织 管理 的基础 ,对 交 通运输 需 求 的预测 分析 具有 重大 的社 会 意义 和 经
关 键 词 :BP 经 网络 :货 运 量 :MAT AB;组 合 预 测 神 L 中图 分 类 号 :U4 1】 3 9 .1 文 献标 识码 :A 文章 编 号 : 1 0 — 7 6 2 0) 4 0 0 — 3 0 2 4 8 ( 01 0 — 2 7 0
DoI 1 3 6 / 1 0 — 7 62 1 .40 3 : 0.8 9i 0 2 4 8 .0 00 .6 .
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第26卷Vol 126 第1期No 11西华师范大学学报(自然科学版)Journal of China W est Nor mal University (Natural Sciences )2005年3月Mar 12005文章编号:100128220(2005)0120070204基于Matlab 的改进BP 神经网络及其应用①范 磊,张运陶,程正军(西华师范大学应用化学研究所,四川南充637002)摘 要:讨论了BP 神经网络及几种改进BP 神经网络性能的算法.用Matlab 编制出相应的BP 神经网络算法程序,并将其用于处理紫外分光光度法同时测定Fe,Co,N i,Cu,V 的实验数据,结果表明L -M 法收敛最快,精度最高.关键词:BP 神经网络;Matlab;多组分同时测定中图分类号:TP -399 文献标识码:B人工神经网络(A rtificial Neural Net w ork,简称ANN )是基于模仿生物大脑的结构和功能而构成的一种信息处理系统.它具有信息的分布存储、并行处理以及自学习等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用[1-4].近年来,有越来越多的化学工作者开始将ANN 应用于解决化学问题,并取得了一些成果.BP 神经网络是目前应用最多的神经网络,它采用多层前向网络的反向传播算法,优点是只要有足够的隐层和隐结点,BP 网络可以逼近任意的非线性映射.但BP 神经网络易出现学习速度慢和陷入局部最小区及对参数选择敏感等问题.为此,人们对BP 算法进行了许多改进.改进主要有两类:一类采用启发式技术,如附加动量法、自适应学习率法;另一类是采用数字优化技术,如共轭梯度法,拟牛顿法、Levenberg -Marquardt (L -M )法[5].本文讨论了几种改进的BP 算法,利用Matlab 编制了仿真程序,并把它们用于多组分同时测定中,取得了良好的效果.1 标准BP 算法及其改进1.1 标准BP 算法[6-7]BP 神经网络的学习过程分为信息的正向传播过程和误差的反向传播过程两个阶段.外部输入的信号经输入层、隐含层的神经元逐层处理向前传播到输出层给出结果.如果在输出层得不到期望输出,则转入逆向传播过程,将实际值与网络输出之间误差沿原来联结的通路返回,通过修改各层神经元的联系权值,使误差减少,然后再转入正向传播过程,反复迭代,直到误差小于给定的值为止.以一个三层网络为例,网络由N 个输入神经元,K 个隐层神经元,M 个输出神经元组成(如图1).O 2pm 和O 1pk 分别为输出层和隐层的输出值,w 2km 和w 1nk 分别为隐层到输出层和输入层到隐层的连接权值,设输入学习样本为x pn ,其对应的希望输出值为t pm .标准算法步骤如下:(1)初始化权值,设定学习率μ,允许误差ε,最大迭代次数,置循环步数i =0.(2)正向计算:将第p 个样本(X p ={x p1…x pN })顺序输入到网络中,按下式分别计算O 1pk 和O 2pm :①收稿日期:2004-12-20作者简介:范 磊(1981-),男,江苏扬州人,西华师范大学化学化工学院硕士研究生,主要研究计算机化学.通讯作者:张运陶(1948-),男,四川南充人,西华师范大学化学化工学院教授,主要从事计算机化学研究. 第26卷第1期范 磊,等:基于Matlab 的改进BP 神经网络及其应用71 O 1pk (i )=f (∑Nn =1w 1nk (i )x pn ),(1)O 2p m (i )=f (∑Kk =1w 2km(i )O 1pk (i )).(2)激活函数常采用S 型sig moid 函数:f (x )=1/(1+e -x ).(3)计算均方误差E =1M∑M m =1(t p m -O 2p m )2,若E ≤ε,则停止迭代,否则执行下一步.(4)反向计算:计算权值的改变量.公式如下:Δw 1nk (i +1)=μ∑pp =1δpk (i )x pn .(3)Δw 2km (i +1)=μ∑δp m (i )O 1pk (i ).(4)而δp m (i )=(t p m -O 2p m (i ))O 2p m (i )(1-O 2p m (i )).(5)δpk (i )=O 1pk (i )(1-O 1pk (i ))∑Mm =1δp m(i )w km (i ).(6)更改权值:w 1nk (i +1)=w 1nk (i )+Δw 1nk (i +1).(7)w 2km (i +1)=w 2km (i )+Δw 2km (i +1).(8)(5)置i =i +1,返回(2).1.2 BP 算法的改进1.2.1 附加动量法[8]附加动量法就是在网络调整权值时不仅考虑误差在梯度上的作用,而且考虑在误差曲面上的变化趋势的影响.在每个权重的变化上加上一项正比于前次权重变化量的值,并以此i +1)=m c ×Δw (i )+μ×m c ×9E9w.m c 为动量因子,一般取0-1之间的数值.加入动量项能有效加速收敛,防止振荡.1.2.2 自适应调整学习率法BP 算法的学习率是凭经验给出的一个固定常数,μ一般取0至1之间的数.由于μ是固定的,在靠近极小点的时候,容易产生来回摆动的现象,造成算法难以收敛到极小解.通常调整学习率的准则是:检查权重的修正值是否真正降低了误差函数,如果确实如此,则说明所取的学习速率值小了,可以对其增加一个量;若相反,则产生了过调,应减小学习速率的值.具体调整公式为:μ(i +1)=1.05μ(i ) if E (i +1)<E (i ),0.7μ(i )if E (i +1)>1.04E (i ),μo ther w ise .1.2.3 弹性BP 算法[5]一般BP 网络的隐含层激活函数采用S 型(Sig moid )函数,S 型函数将神经元的输入范围从(-∞,+∞)映射到(0,1),当输入变量很大时,S 型函数的斜率将接近于0,这可能会导致产生在利用S 型函数训练BP 网络中梯度下降的问题,由于即使梯度有很小的变化,也会引起权值的变化,使权值远离最优值.弹性BP 算法的原理就是打算消除对偏导数的大小有害的影响权步,因此,惟有导数的符号被认为表示权更新的方向,而导数的大小对权值更新没有影响.权值改变量的大小仅由专门的“更新值”Δ(i )来确定:Δw (i +1)=-Δ(i +1) if 9E9w>0,+Δ(i +1)if 9E9w<0,0other wise .72 西华师范大学学报(自然科学版) 2005年1.2.4 Levenberg-Marquardt优化方法其权值的调整方法为:Δw=(J T j+m I)-1J T E.其中,J为误差对权值微分的Jacobian矩阵,E为误差向量.m为一个标量,依赖于m的幅值.该方法光滑地在两种极端情况之间变化:即牛顿法(当m→0时)和最陡下降法(当m→∞时).L-M法的收敛速度较快.1.2.5 正则化方法[9]网络的推广能力是衡量神经网络性能好坏的重要标志.为了提高BP神经网络的推广性能,可采用正则化方法.网络的推广能力与网络的规模直接相关.如果神经网络的规模远远小于训练样本集的大小,则发生过度训练的机会就很小,但是对于特定的问题,确定适合的网络是一件十分困难的事情.正则化方法是通过修正神经网络的训练性能函数来提高推广能力的.一般神经网络的训练性能函数采用均方误差函数m se,即:m se=1M∑Mm=1(tp m-O2p m)2.在正则化方法中,网络性能函数经改进变为如下形式:m sereg=γ・m se+(1-γ)m s w.其中,γ为比例系数,m s w为所有网络权值平方和的平均值,即m s w=1N∑Nj=1w2j.通过采用新的性能指标函数m sereg,可以在保证网络训练误差尽可能小的情况下使网络具有较小的权值,即使得网络的有效权值尽可能的少,这实际上相当于自动缩小了网络的规模.常规的正则化方法通常很难确定比例系数γ的大小,而贝叶斯正则化方法则可以在网络训练过程中自适应地调整γ的大小,并使其达到最优.2 应用实例根据前面介绍的BP算法及各种改进方法,采用Matlab编制程序,并将程序用于对溶液中多组分同时测定的计算.用紫外分光光度法同时测定样品中的铁、钴、镍、铜、钒,波长选择从540n m至620n m,每隔2n m取一个点,测定其吸光度,建立其吸光度矩阵,再测定相应的未知合成样吸光度矩阵.在一系列样本中选择60个作为校正样,5个作为预测样.BP神经网络采用的结构为:41个输入神经元,30个隐层神经元,5个输出神经元,设定最大迭代次数为50000次,目标收敛精度为0.01.用以上算法分别对其进行预测拟合,结果如表1.表1 不同BP算法的计算效果比较Tab.1 The co mpute effect of different BP algorith m s训练函数BP算法训练次数收敛精度Trainb标准bp算法500000.0696Traingd m动量BP算法500000.0294Traingdx自适应学习率动量法500000.0199Trainr p弹性反向传播算法500000.0091Trainl m Levenberg-Marquardt540.0097Trainbr正则化方法1300.0098由表1可以看出,在不影响精度的情况下,采用Levenberg-Marquardt(L-M)优化算法是最快捷的.对L-M神经网络进一步优化,隐节点数减少至6个,提高目标收敛精度至0.001,训练曲线见图2,所得结果如表2. 第26卷第1期范 磊,等:基于Matlab的改进BP神经网络及其应用73 从图2可以看出网络以很快的速度收敛至所要求的精度,没有陷入局部极小点.表2 L-M法的输出结果与期望值对比Tab.2 Comparis on of L-M test results expected样本号测 试 值N i Co Cu 值i Co Cu V Fe11.00802.99731.2.1.03.01.53.02.522.02012.0066.93.99832.02.01.53.54.032.996913.52292.54013.02.02.03.52.542.1.92.46712.50813.51783.01.02.52.53.552521.96164.39283.54972.01.02.04.53.51.271.530.871.14…………… 注 =1/5∑(|期望值∃测试值|/期望值)从表2可以看出所得的相对百分误差非常小,说明网络模型的预测准确性很高.3 结 语用6种BP算法对多组分同时测定的结果进行预测,结果是比较令人满意的.结果表明,利用三层网络处理紫外分光光度法同时测定溶液中的金属离子的问题是可行的,而且有良好的外延性.就收敛速度来说, L-M算法是最快的,而且精度也较高,其它算法就相对逊色一些.L-M算法很适合于一些大容量样本的训练[10].参考文献:[1] 尹念东.BP神经网络的应用设计[J].信息技术,2003,27(6):18-20.[2] 吴凌云.BP神经网络学习算法的改进及其应用[J].信息技术,2003,27(7):42-44.[3] 张文鸽,吴泽宁.BP神经网络的改进及应用[J].河南科学,2003,21(2):202-206.[4] 张卓勇,刘思东,王 勇.反向传播人工神经网络在分析化学重叠信号解析中的应用[J].抚顺石油学院学报,1998,16(3):17-20.[5] 苏高利,邓芳萍.论基于Matlab语言的BP神经网络的改进算法[J].科技通报,2003,19(2):130-135.[6] RUME LHART D E.Learning Rep resentati on by BP err ors[J].Natrue(London),1986,7:64-70.[7] NG S C,CHE UNG C C,LE UNG S H.Fast Convergence for Back-Pr opagati on Net w ork with M agnified Gradient Functi on[J].I EEE,2003,9(3):1903-1908.(下转第104页)104 西华师范大学学报(自然科学版) 2005年Extracti on of the General Ter m For mul a of Fracti onal Recursi veSequence of Nu mber———x n=ax n-1+bcx n-1+d by Applyi n g Matri x M ethodY UAN Xiu2p ing(School of Mathe matics and I nf or mati on,China W est Nor mal University,Nanchong637002,China)Abstract:This article,based on the theory of characteristic value of matrices,obtains a si m p le and convenient gen2eral la w of extracting the general ter m f or mula of fracti onal recursive sequence of number———x n=ax n-1+b cx n-1+d.Key words:matrix;characteristic value;recursive sequence of nu mber;general ter m for mula(上接第73页)[8] 徐 敬,王秀坤,胡家升.基于神经网络的无源多传感器属性数据关联[J].系统仿真学报,2003,15(1):127-129.[9] 许 东,吴 铮.基于MAT LAB6.x的系统分析与设计———神经网络(第二版)[M].西安:西安电子科技大学出版社,2002,9:23-24.[10] 张吉军,曹永强.改进B-P算法及其在围岩稳定性分类中的应用[J].煤炭技术,2004,23(4):1-3.Appli cati on of I mproved BP Neural Network Based on Matl abFAN Lei,ZHANG Yun2tao,CHENG Zheng2jun(I nstitute of App lied Che m istry,China W est Nor mal University,Nanchong637002,China)Abstract:This paper talks about s ome i m p r oved BP algorithm s.W e use s ome p r ogra m s based on Matlab t o deal with the p r oble m of multi-component si m ultaneous deter m inati on,on this basis,choose an op ti m u m one,and then test.It shows that the L-M algorithm is the best.Keywords:BP neural net w ork;Matlab;multi-component si m ultaneous deter m inati on。

相关文档
最新文档