Matlab神经网络工具箱介绍与数值试验
- 格式:doc
- 大小:157.00 KB
- 文档页数:17
MATLAB 图形用户界面功能:——作者:强哥1573:2017-09-01 nnstart - 神经网络启动GUInctool - 神经网络分类工具nftool - 神经网络的拟合工具nntraintool - 神经网络的训练工具nprtool - 神经网络模式识别工具ntstool - NFTool神经网络时间序列的工具nntool - 神经网络工具箱的图形用户界面。
查看- 查看一个神经网络。
网络的建立功能。
cascadeforwardnet - 串级,前馈神经网络。
competlayer - 竞争神经层。
distdelaynet - 分布时滞的神经网络。
elmannet - Elman神经网络。
feedforwardnet - 前馈神经网络。
fitnet - 函数拟合神经网络。
layrecnet - 分层递归神经网络。
linearlayer - 线性神经层。
lvqnet - 学习矢量量化(LVQ)神经网络。
narnet - 非线性自结合的时间序列网络。
narxnet - 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
newhop - 建立经常性的Hopfield网络。
newlind - 设计一个线性层。
newpnn - 设计概率神经网络。
newrb - 径向基网络设计。
newrbe - 设计一个确切的径向基网络。
patternnet - 神经网络模式识别。
感知- 感知。
selforgmap - 自组织特征映射。
timedelaynet - 时滞神经网络。
利用网络。
网络- 创建一个自定义神经网络。
SIM卡- 模拟一个神经网络。
初始化- 初始化一个神经网络。
适应- 允许一个神经网络来适应。
火车- 火车的神经网络。
DISP键- 显示一个神经网络的属性。
显示- 显示的名称和神经网络属性adddelay - 添加延迟神经网络的反应。
closeloop - 神经网络的开放反馈转换到关闭反馈回路。
Matlab的神经网络工具箱入门在command window中键入help nnet>> help nnetNeural Network ToolboxVersion 7.0 (R2010b) 03-Aug-2010神经网络工具箱版本7.0(R2010b)03八月,2010图形用户界面功能。
nnstart - 神经网络启动GUInctool - 神经网络分类工具nftool - 神经网络的拟合工具nntraintool - 神经网络的训练工具nprtool - 神经网络模式识别工具ntstool - NFTool神经网络时间序列的工具nntool - 神经网络工具箱的图形用户界面。
查看- 查看一个神经网络。
网络的建立功能。
cascadeforwardnet - 串级,前馈神经网络。
competlayer - 竞争神经层。
distdelaynet - 分布时滞的神经网络。
elmannet - Elman神经网络。
feedforwardnet - 前馈神经网络。
fitnet - 函数拟合神经网络。
layrecnet - 分层递归神经网络。
linearlayer - 线性神经层。
lvqnet - 学习矢量量化(LVQ)神经网络。
narnet - 非线性自结合的时间序列网络。
narxnet - 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
newhop - 建立经常性的Hopfield网络。
newlind - 设计一个线性层。
newpnn - 设计概率神经网络。
newrb - 径向基网络设计。
newrbe - 设计一个确切的径向基网络。
patternnet - 神经网络模式识别。
感知- 感知。
selforgmap - 自组织特征映射。
timedelaynet - 时滞神经网络。
利用网络。
网络- 创建一个自定义神经网络。
SIM卡- 模拟一个神经网络。
初始化- 初始化一个神经网络。
Matlab神经网络工具箱介绍与数值试验第一章Matlab神经网络工具箱介绍与数值试验1.1Matlab神经网络工具箱中BP网络相关函数介绍MATLAB神经网络工具箱中包含了许多用于BP网络分析和设计的函数。
BP网络的常用函数如表4-1所示。
[10,12]表4-1 BP网络的常用函数1.2数值试验1.2.1.“异或”问题“异或”问题(XOR)是典型的非线性划分问题。
这里以它为例,简单介绍BP网络的应用。
在Matlab7.0环境下,建立一个三层的BP神经网络,其中输入层和隐层分别各有两个神经元,输出层有一个神经元。
现要求训练这一网络,使其具有解决“异或”问题的能力。
“异或”问题的训练输入和期望输出如表5-1。
表5-1 异或问题的训练输入和期望输出1)基于标准BP 算法结果如下及图5.1所示:横轴表示迭代次数,纵轴表示误差。
迭代到第240次时达到预设精度。
迭代停止时,误差为9.97269e-005,此时的梯度为0.00924693。
5010015020010-410-310-210-110101240 EpochsT r a i n i n g -B l u e G o a l -B l a c kPerformance is 9.97269e-005, Goal is 0.0001图5.1 基于标准BP 算法的“异或”问题2)基于共轭梯度法结果如下及图5.2所示:横轴表示迭代次数,纵轴表示误差。
迭代到第16次时达到预设精度。
迭代停止时,误差为9.0770e-005,此时的梯度为0.00318592。
024681012141610-410-310-210-11010116 EpochsT r a i n i n g -B l u e G o a l -B l a c k Performance is 9.07705e-005, Goal is 0.0001图5.2 基于共轭梯度法的“异或”问题3)基于LM 算法结果如下及图5.3所示:横轴表示迭代次数,纵轴表示误差。
matlab神经网络工具箱简介MATLAB软件中包含MATLAB神经网络工具箱,工具箱以人工神经网络为基础,只要根据自己需要调用相关函数,就可以完成网络设计、权值初始化、网络训练等,MATLAB神经网络工具箱包括的网络有感知器、线性网络、BP神经网络、径向基网络、自组织网络和回归网络,BP神经网络工具箱主要包括newff,sim和train三个神经网络函数各函数的解释如下:1 newff::::BP神经网络参数设置函数神经网络参数设置函数神经网络参数设置函数神经网络参数设置函数函数功能:构建一个BP神经网络。
函数形式:net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)P:输入数据矩阵T:输出数据矩阵S:隐含层节点数TF:节点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传递函数hardlims,线性传递函数purelin,正切S型传递函数tansig,对数S型传递函数logsigBTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数traingdx,Levenberg_Marquardt 的BP算法训练函数trainlmBLF:网络学习函数,包括BP学习规则learngd,带动量项的BP 学习规则learngdmPF:性能分析函数,包括均值绝对误差性能分析函数mae,均方差性能分析函数mse IPF:输入处理函数OPF:输出处理函数DDF:验证数据划分函数一般在使用过程中设置前六个参数,后四个参数采用系统默认参数。
2 train::::BP神经网络训练函数神经网络训练函数神经网络训练函数神经网络训练函数函数功能:用训练数据训练BP神经网络。
函数形式:[net,tr] = train(NET,X,T,Pi,Ai)NET:待训练网络X:输入数据矩阵T:输出数据矩阵Pi:初始化输入层条件Ai:初始化输出层条件net:训练好的网络tr:训练过程记录一般在使用过程中设置前三个参数,后两个参数采用系统默认参数。
Matlab中的神经网络工具箱介绍与使用神经网络是一种模拟人脑思维方式的计算模型,它通过由多个神经元组成的网络,学习数据的特征和规律。
在计算机科学领域,神经网络被广泛应用于模式识别、数据挖掘、图像处理等诸多领域。
Matlab作为一种功能强大的科学计算软件,提供了专门用于神经网络设计和实现的工具箱。
本文将介绍Matlab中的神经网络工具箱,并探讨其使用方法。
一、神经网络工具箱的概述Matlab中的神经网络工具箱(Neural Network Toolbox)是一款用于构建和训练神经网络的软件包。
它提供了丰富的函数和工具,可用于创建不同类型的神经网络结构,如前向神经网络、反向传播神经网络、径向基函数神经网络等。
神经网络工具箱还包括了各种训练算法和性能函数,帮助用户对神经网络进行优化和评估。
二、神经网络的构建与训练在使用神经网络工具箱前,我们需要先了解神经网络的基本结构和原理。
神经网络由输入层、隐藏层和输出层组成,每一层都包含多个神经元。
输入层接受外部输入数据,通过权重和偏置项传递给隐藏层,最终输出到输出层,形成网络的输出结果。
构建神经网络的第一步是定义网络的结构,可以使用神经网络工具箱中的函数创建不同层和神经元的结构。
例如,使用feedforwardnet函数可以创建一个前向神经网络,输入参数指定了每个隐藏层的神经元数量。
然后,可以使用train函数对神经网络进行训练。
train函数可以选择不同的训练算法,如标准反向传播算法、Levenberg-Marquardt算法等。
通过设置训练参数,例如训练迭代次数和学习速率等,可以对网络进行优化。
三、神经网络的应用案例神经网络在许多领域都有广泛的应用,下面以图像分类为例,介绍如何使用神经网络工具箱来训练一个图像分类器。
首先,我们需要准备训练数据和测试数据。
训练数据通常包含一组已经标记好的图像和相应的标签。
为了方便处理,我们可以将图像转化为一维向量,并将标签转化为二进制编码。
MATLAB中的神经网络工具箱详解神经网络是一种模拟人脑神经系统工作方式的计算模型,广泛应用于科学、工程和金融等领域。
而在MATLAB软件中,也有专门的神经网络工具箱,提供了丰富的功能和算法,用于实现神经网络的建模、训练和应用。
本文将对MATLAB中的神经网络工具箱进行详细的解析和介绍。
一、神经网络基础知识在深入了解MATLAB神经网络工具箱之前,我们首先来了解一些神经网络的基础知识。
1. 神经元和激活函数神经元是神经网络的基本单位,它接收来自其他神经元的输入,并通过激活函数将输入转化为输出。
在MATLAB中,可以使用`newff`函数创建一个前馈神经网络,可以通过`sim`函数进行网络的模拟和计算。
2. 训练算法神经网络的训练是指通过一系列的输入和输出样本来调整网络的参数,使得网络能够正确地学习和推断。
常用的训练算法包括误差逆传播算法(Backpropagation)、Levenberg-Marquardt算法等。
在MATLAB中,可以使用`train`函数进行网络的训练,可以选择不同的训练算法和参数。
二、MATLAB神经网络工具箱的使用1. 创建神经网络对象在MATLAB中,可以使用`newff`函数创建一个前馈神经网络对象,该函数的参数包括网络的结构、激活函数等。
例如,`net = newff(input, target, hiddenSize)`可以创建一个具有输入层、隐藏层和输出层的神经网络对象。
2. 设置神经网络参数创建神经网络对象后,可以使用`setwb`函数设置网络的权重和偏置值,使用`train`函数设置网络的训练算法和参数。
例如,`setwb(net, weights, biases)`可以设置网络的权重和偏置值。
3. 神经网络的训练神经网络的训练是通过提供一系列的输入和输出样本,调整网络的参数使得网络能够正确地学习和推断。
在MATLAB中,可以使用`train`函数进行网络的训练,该函数的参数包括训练集、目标值、训练算法和其他参数。
Matlab各工具箱功能简介(部分)Toolbo某工具箱序号工具箱备注一、数学、统计与优化1 Symbolic Math Toolbo某符号数学工具箱Symbolic Math Toolbo某? 提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。
您可以通过分析执行微分、积分、化简、转换以及方程求解。
另外,还可以利用符号运算表达式为 MATLAB?、Simulink? 和Simscape? 生成代码。
Symbolic Math Toolbo某包含 MuPAD? 语言,并已针对符号运算表达式的处理和执行进行优化。
该工具箱备有 MuPAD 函数库,其中包括普通数学领域的微积分和线性代数,以及专业领域的数论和组合论。
此外,还可以使用 MuPAD 语言编写自定义的符号函数和符号库。
MuPAD 记事本支持使用嵌入式文本、图形和数学排版格式来记录符号运算推导。
您可以采用 HTML 或 PDF 的格式分享带注释的推导。
2 Partial Differential Euqation Toolbo某偏微分方程工具箱偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次使用有限元分析。
它可以让你指定和网格二维和三维几何形状和制定边界条件和公式。
你能解决静态,时域,频域和特征值问题在几何领域。
功能进行后处理和绘图效果使您能够直观地探索解决方案。
你可以用偏微分方程工具箱,以解决从标准问题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电磁学,以及自定义,偏微分方程的耦合系统偏微分方程。
3 Statistics Toolbo某统计学工具箱Statistics and Machine Learning Toolbo某提供运用统计与机器学习来描述、分析数据和对数据建模的函数和应用程序。
您可以使用用于探查数据分析的描述性统计和绘图,使用概率分布拟合数据,生成用于Monte Carlo 仿真的随机数,以及执行假设检验。
的神经网络工具箱实用指南文章摘要:第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结构和符号的基本材料以及建立神经网络的一些基本函数,例如、、和。
第三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。
第一章介绍.神经网络神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。
在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。
一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。
如下图所示。
这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。
作为典型,许多输入目标对应的方法已被用在有监督模式中来训练神经网络。
神经网络已经在各个领域中应用,以实现各种复杂的功能。
这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。
如今神经网络能够用来解决常规计算机和人难以解决的问题。
我们主要通过这个工具箱来建立示范的神经网络系统,并应用到工程、金融和其他实际项目中去。
一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。
无监督网络可以被应用在数据组的辨别上。
一些线形网络和网络是直接设计的。
总的来说,有各种各样的设计和学习方法来增强用户的选择。
神经网络领域已经有年的历史了,但是实际的应用却是在最近年里,如今神经网络仍快速发展着。
因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。
我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理轮廓。
我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。
因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用它们,并且举例说明它们的成功和失败。
我们相信要成功和满意的使用这个工具箱,对范例和它们的应用的理解是很重要的,并且如果没有这些说明那么用户的埋怨和质询就会把我们淹没。
Matlab的神经网络工具箱入门Matlab的神经网络工具箱入门别的不多说,你之所以来到这里神经网络工具箱是一个多么牛逼大东西想必你也知道,可是牛逼规牛逼这东东该怎么用呢,今天俺们就来研究一下。
先问问度娘,matlab神经网络工具箱该如何安装,末了发现这软件本身以经预装了这东东,这到省去了不少麻烦,真给力呀。
在command window中键入 help nnet得到如下信息>> help nnetNeural Network ToolboxVersion 7.0 (R2010b) 03-Aug-2010妈里个拔子的!,一大堆鸟语,由于怕吓着大家,所以原文我就不写拉,google翻译之。
的如下信息神经网络工具箱版本7.0(R2010b)03八月,2010 图形用户界面功能。
nnstart - 神经网络启动GUI nctool - 神经网络分类工具 nftool - 神经网络的拟合工具 nntraintool - 神经网络的训练工具 nprtool - 神经网络模式识别工具 ntstool - NFTool神经网络时间序列的工具 nntool - 神经网络工具箱的图形用户界面。
查看 - 查看一个神经网络。
网络的建立功能。
cascadeforwardnet - 串级,前馈神经网络。
competlayer - 竞争神经层。
distdelaynet - 分布时滞的神经网络。
elmannet - Elman神经网络。
feedforwardnet - 前馈神经网络。
fitnet - 函数拟合神经网络。
layrecnet - 分层递归神经网络。
linearlayer -线性神经层。
lvqnet - 学习矢量量化(LVQ)神经网络。
narnet - 非线性自结合的时间序列网络。
narxnet - 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
实验七 MATLAB 神经网络工具箱一、实验目的1、掌握Matlab 对感知器网络的构建与训练方法。
2、掌握Matlab 对线性神经网络的构建与训练方法。
3、掌握Matlab 对BP 神经网络的构建与训练方法。
二、实验原理1、感知器的MATLAB 仿真感知器(Pereceptron)是一种特殊的神经网络模型,是由美国心理学家F.Rosenblatt 于1958年提出的,一层为输入层,另一层具有计算单元,感知器特别适合于简单的模式分类问题,也可用于基于模式分类的学习控制和多模态控制中。
(一)感知器神经元模型感知器神经元通过对权值的训练,可以使感知器神经元的输出能代表对输入模式进行的分类,图1.1为感知器神经元模型。
图1.1 感知器神经元模型感知器神经元的每一个输入都对应于一个合适的权值,所有的输入与其对应权值的加权和作为阀值函数的输入。
由于阀值函数的引入,从而使得感知器可以将输入向量分为两个区域,通常阀函数采用双极阶跃函数,如:⎩⎨⎧<≥=0,00,1)(x x x f (1.1) 而感知器神经元模型的实际输出为⎪⎭⎫⎝⎛-=∑-=R ii i b x w f o 1 (1.2)其中b 为阀值(二)感知器的网络结构图1.2所描述的是一个简单的感知器网络结构,输入层有R 个输入,Q 个输出,通过权值w ij 与s 个感知器神经元连接组成的感知器神经网络。
根据网络结构,可以写出感知器处理单元对其输入的加权和操作,即:∑==Rj j ij i p w n 1(1.3)而其输出a i 为a i =f (n i +b i ) (1.4)由式2.1易知⎩⎨⎧<+≥+=0001i i i i i b n b n a (1.5) 则当输入n i +b i 大于等于0,即有n i ≥-b i 时,感知器的输出为1;否则输出为0。
上面所述的单层感知器神经网络是不可能解决线性不可分的输入向量分类问题,也不能推广到一般的前向网络中去。
第一章Matlab神经网络工具箱介绍和数值试验1.1Matlab神经网络工具箱中BP网络相关函数介绍MATLAB神经网络工具箱中包含了许多用于BP网络分析和设计的函数。
BP网络的常用函数如表4-1所示。
[10,12]表4-1 BP网络的常用函数函数类型函数名称函数用途前向网络创建函数newcf 创建一个多层前馈BP网络newff 创建一个前向BP网络newfftd 创建一个前馈输入延迟BP网络传递函数logsig S型的对数函数dlogsig Logig的导函数tansig S型的正切函数dtansig tansig的导函数purelin 纯线性函数学习函数traingd 基于标准BP算法的学习函数trainrp 采用Rprop算法训练trainlm 采用LM算法训练traincgf 基于共轭梯度法的学习函数仿真函数sim 仿真一个神经网络1.2数值试验1.2.1.“异或”问题“异或”问题(XOR)是典型的非线性划分问题。
这里以它为例,简单介绍BP网络的使用。
在Matlab7.0环境下,建立一个三层的BP神经网络,其中输入层和隐层分别各有两个神经元,输出层有一个神经元。
现要求训练这一网络,使其具有解决“异或”问题的能力。
“异或”问题的训练输入和期望输出如表5-1。
表5-1 异或问题的训练输入和期望输出1X 2X 1d0 0 0 0 1 1 1 0 1 111)基于标准BP 算法结果如下及图5.1所示:横轴表示迭代次数,纵轴表示误差。
迭代到第240次时达到预设精度。
迭代停止时,误差为9.97269e-005,此时的梯度为0.00924693。
05010015020010-410-310-210-110101240 EpochsT r a i n i n g -B l u e G o a l -B l a c kPerformance is 9.97269e-005, Goal is 0.0001图5.1 基于标准BP 算法的“异或”问题2)基于共轭梯度法结果如下及图5.2所示:横轴表示迭代次数,纵轴表示误差。
迭代到第16次时达到预设精度。
迭代停止时,误差为9.0770e-005,此时的梯度为0.00318592。
024681012141610-410-310-210-11010116 EpochsT r a i n i n g -B l u e G o a l -B l a c kPerformance is 9.07705e-005, Goal is 0.0001图5.2 基于共轭梯度法的“异或”问题3) 基于LM 算法结果如下及图5.3所示:横轴表示迭代次数,纵轴表示误差。
迭代到第4次时达到预设精度。
迭代停止时,误差为8.8892e-006,此时的梯度为0.00727382。
10-610-510-410-310-210-1101014 EpochsT r a i n i n g -B l u e G o a l -B l a c kPerformance is 8.88918e-006, Goal is 0.0001图5.3 基于LM 算法的“异或”问题4) 基于RPROP 算法结果如下及图5.4所示:横轴表示迭代次数,纵轴表示误差。
迭代到第31次时达到预设精度。
迭代停止时,误差为4.6696e-005,此时的梯度为0.00721433。
5101520253010-410-310-210-11010131 EpochsT r a i n i n g -B l u e G o a l -B l a c kPerformance is 4.66955e-005, Goal is 0.0001图5.4 基于RPROP 算法的“异或”问题1.2.2. 连续函数拟合问题一个神经网络最强大的用处之一是在函数逼近上。
它可以用在诸如被控对象的模型辨识中,即将过程看成一个黑箱子,通过测量其输入/输出特性,然后利用所得实际过程的输入/输出数据训练一个神经网络,使其输出对输入的响应特性具有和被辨识过程相同的外部特性[10]。
1)线性函数拟合使用标准BP 算法,对函数y =5x 进行拟合。
结果如图5.5,红色虚线和“+”号表示拟合结果。
迭代到第8次时达到预设精度。
迭代停止时,误差为2.49485e-005,此时的梯度为0.0190722。
-5-4-3-2-1012345图5.5 线性函数拟合2) 二次函数拟合使用RPROP 算法,对函数2y =x -4进行拟合。
结果如图5.6,红色虚线和“+”号表示拟合结果。
迭代到第320次时达到预设精度。
迭代停止时,误差为9.9923e-005,此时的梯度为0.00135595。
-1-0.8-0.6-0.4-0.200.20.40.60.81-4-3.8-3.6-3.4-3.2-3-2.8-2.6图5.6 二次函数拟合3) sin 函数拟合使用共轭梯度算法,对函数y =sin x 进行拟合。
结果如图5.7,红色虚线和“+”号表示拟合结果。
迭代到第119次时达到预设精度。
迭代停止时,误差为9.92315e-005,此时的梯度为0.0025562。
10.80.60.40.2-0.2-0.4-0.6-0.8-1图5.7 sin函数拟合4)指数函数拟合使用LM算法,对函数y=x e进行拟合。
结果如图5.8,红色虚线和“+”号表示拟合结果。
迭代到第8次时达到预设精度。
迭代停止时,误差为5.99591e-005,此时的梯度为0.0544397。
-2-1.5-1-0.500.51 1.52012345678图5.8 指数函数拟合5) 复合函数拟合使用LM 算法,对函数sin 1y = x e 进行拟合。
结果如图5.8,红色虚线和“+”号表示拟合结果。
迭代到第9次时达到预设精度。
迭代停止时,误差为9.73363e-005,此时的梯度为0.0163562。
-2-1.5-1-0.50.511.52-1-0.8-0.6-0.4-0.200.20.40.60.81图5.9 复合函数拟合1.2.3. 3-bit Parity 问题这次仿真我们考虑3-bit Parity 问题,该问题被认为是“异或”问题的三位形式。
这个问题描绘了三个二进制输入得到一个二进制输出的过程。
如果输入中1的个数是奇数个,则输出是1。
反之,输出为0[14]。
3-bit Parity 问题的训练输入和期望输出如表5-2。
表5-2 3-bit Parity 问题的训练输入和期望输出1X 2X 3X 1d0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 11111) 基于标准BP 算法结果如下及图5.10所示:横轴表示迭代次数,纵轴表示误差。
迭代到第113次时达到预设精度。
迭代停止时,误差为9.99979e-005,此时的梯度为0.00799224。
02040608010010-410-310-210-1100101113 Epochs T r a i n i n g -B l u e G o a l -B l a c k Performance is 9.99979e-005, Goal is 0.0001图5.10 基于最速下降法的3-bit Parity 问题2) 基于共轭梯度法结果如下及图5.11所示:横轴表示迭代次数,纵轴表示误差。
迭代到第60次时达到预设精度。
迭代停止时,误差为9.42383e-005,此时的梯度为0.0161969。
10203040506010-410-310-210-110060 Epochs T r a i n i n g -B l u e G o a l -B l a c k Performance is 9.42383e-005, Goal is 0.0001图5.11 基于共轭梯度法的3-bit Parity 问题3) 基于LM 算法结果如下及图5.12所示:横轴表示迭代次数,纵轴表示误差。
迭代到第19次时达到预设精度。
迭代停止时,误差为 9.49592e-006,此时的梯度为0.025507。
02468101214161810-610-510-410-310-210-110010119 Epochs T r a i n i n g -B l u e G o a l -B l a c k Performance is 9.49592e-006, Goal is 0.0001图5.12 基于LM 算法的3-bit Parity 问题4) 基于RPROP 算法结果如下及图5.13所示:横轴表示迭代次数,纵轴表示误差。
迭代到第33次时达到预设精度。
迭代停止时,误差为9.09842e-005,此时的梯度为0.0115333。
05101520253010-410-310-210-110033 Epochs T r a i n i n g -B l u e G o a l -B l a c k Performance is 9.09842e-005, Goal is 0.0001图5.13 基于RPROP 算法的3-bit Parity 问题第二章总结BP网络的算法实际上就是解决一个无约束最优化问题。
标准BP算法是BP 神经网络的最基本的算法,使用了最速下降法的思想,所以它不可避免的具备了最速下降法所带了的缺点。
为了克服标准BP算法的缺陷,人们进行了更深入的研究,对标准BP算法进行了改进,并提供了一系列快速学习算法,以满足解决不同问题的需要。
快速BP算法从改进途径上可分为两大类:一类是采用启发式学习方法,如引入动量因子的学习算法、变学习速率学习算法等;另一类则是采用更有效的数值优化方法,如共轭梯度学习算法、Levenberg-Marquardt算法以及B&B算法等。
对于不同的问题,在选择学习算法对BP 网络进行训练时,不仅要考虑算法本身的性能,还要视问题的复杂度、样本集大小、网络规模、网络误差目标和所要解决的问题类型而定[10]。
2.1各种算法的优缺点比较标准BP算法易于理解,方法简单,每一次迭代的工作量较小,所需要的存储空间也较小,而且即使从一个不好的初值开始计算,也可以保证算法的收敛性[11]。
不过正如前文中数值试验所表现的那样,标准BP算法在收敛速度上很慢,迭代次数很多,而且受学习率的影响很大。
Levenberg-Marquardt算法是使用于训练BP网络问题的牛顿算法的一个简单版本。
它的突出优点是收敛速度快,而且收敛误差小。
它的缺点也很突出,它所需的存储空间很大,计算量也很大,所以当网络规模增大时,它的性能会变得很差。
另外,LM算法对初值的选择很敏感,不恰当的初值会使算法不收敛。