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神经网络工具箱介绍和数值试验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算法对初值的选择很敏感,不恰当的初值会使算法不收敛。