MATLAB神经网络工具箱中的网络对象及属性

合集下载

MATLAB神经网络工具箱的详细使用步奏

MATLAB神经网络工具箱的详细使用步奏

在输入命令里面输入nntool,就可以开始了。

点击import之后就出现下面的具体的设置神经网络参数的对话界面,这是输入输出数据的对话窗
首先是训练数据的输入
然后点击new,创建一个新的神经网络network1,并设置其输入输出数据,包括名称,神经网络的类型以及隐含层的层数和节点数,还有隐含层及输出层的训练函数等
点击view,可以看到这是神经网络的可视化直观表达
创建好了一个network之后,点击open,可以看到一个神经网络训练,优化等的对话框,选择了输入输出数据后,点击train,神经网络开始训练,如右下方的图,可以显示动态结果
下面三个图形则是点击performance,training state以及regression而出现的
下面就是simulate,输入的数据是用来检验这个网络的数据,output改一个名字,这样就把输出数据和误差都存放起来了
在主界面上点击export就能将得到的out结果输入到matlab中并查看
下图就是输出的两个outputs结果。

2-2MATLAB神经网络工具箱中的神经网络模型

2-2MATLAB神经网络工具箱中的神经网络模型

p1=p(1),
p p{1}(2)
1 2
p
2 2, 2
p{2}(2,2)
例:
iw
1,1 2, 3
=
iw{1,1}(2,3)
p
p
1,( k 1)
p{1, k 1}
2,( k 1) 2
p{2, k 1}(2)
神经网络工具箱常用函数列表
重要的感知器神经网络函数:

1 2 访问元素:m{1}=n{}= b 4 5 6
n{2,1}(4)=5
变量符号在MATLAB中的表示
(1)上标变量以细胞矩阵(Cell array)即大括 号表示p1={1} (2)下标变量以圆括号表示, ,
Matlab 有30个工具箱包,包括 控制系统工具箱(Control System Toolbox) 信号处理工具箱(Signal Processing toolbox) 系统辨识工具箱(System Identification toolbox) 鲁棒控制工具箱(Robust Control toolbox) μ 分析于综合工具箱(μ -analysis and synthesis toolbox) 定量反馈理论工具箱(QFT toolbox) 神经网络工具箱(Neural Network toolbox) 最优化工具箱(Optimisation toolbox) 数据库工具箱(Database toolbox) 网络工具箱(Matlab WebServer)等。
b 4 5 6
1 2 c 3 4 1 2 3 5 6
] [2 2double m a, b ] [2 3double
] [] a [] [2 2double n ][3 2double ] b c [2 3double

Matlab里的神经网络参数设置

Matlab里的神经网络参数设置

Matlab⾥的神经⽹络参数设置Matlab⾥的神经⽹络参数设置训练函数训练⽅法traingd 梯度下降法traingdm 有动量的梯度下降法traingda ⾃适应lr梯度下降法traingdx ⾃适应lr动量梯度下降法trainrp 弹性梯度下降法traincgf Fletcher-Reeves共轭梯度法traincgp Ploak-Ribiere共轭梯度法traincgb Powell-Beale共轭梯度法trainscg 量化共轭梯度法trainbfg 拟⽜顿算法trainoss ⼀步正割算法trainlm Levenberg-Marquardt传递函数名:函数名函数解释compet 竞争型传递函数hardlim 阈值型传递函数hardlims 对称阈值型传输函数logsig S型传输函数poslin 正线性传输函数purelin 线性传输函数radbas 径向基传输函数satlin 饱和线性传输函数satlins 饱和对称线性传输函数softmax 柔性最⼤值传输函数tansig 双曲正切S型传输函数tribas 三⾓形径向基传输函数训练设置:参数名称解释适⽤⽅法net.trainParam.epochs 最⼤训练次数(缺省为10) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.goal 训练要求精度(缺省为0) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.lr 学习率(缺省为0.01) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.max_fail 最⼤失败次数(缺省为5) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.min_grad 最⼩梯度要求(缺省为1e-10) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.show 显⽰训练迭代过程(NaN表⽰不显⽰,缺省为25) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.time 最⼤训练时间(缺省为inf) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.mc 动量因⼦(缺省0.9) traingdm、traingdxnet.trainParam.lr_inc 学习率lr增长⽐(缺省为1.05) traingda、traingdxnet.trainParam.lr_dec 学习率lr下降⽐(缺省为0.7) traingda、traingdxnet.trainParam.max_perf_inc 表现函数增加最⼤⽐(缺省为1.04) traingda、traingdxnet.trainParam.delt_inc 权值变化增加量(缺省为1.2) trainrpnet.trainParam.delt_dec 权值变化减⼩量(缺省为0.5) trainrpnet.trainParam.delt0 初始权值变化(缺省为0.07) trainrpnet.trainParam.deltamax 权值变化最⼤值(缺省为50.0) trainrpnet.trainParam.searchFcn ⼀维线性搜索⽅法(缺省为srchcha) traincgf、traincgp、traincgb、trainbfg、trainossnet.trainParam.sigma 因为⼆次求导对权值调整的影响参数(缺省值5.0e-5) trainscg/doc/9f16135255.htmlmbda Hessian矩阵不确定性调节参数(缺省为5.0e-7) trainscgnet.trainParam.men_reduc 控制计算机内存/速度的参量,内存较⼤设为1,否则设为2(缺省为1) trainlm net.trainParam.mu 的初始值(缺省为0.001) trainlmnet.trainParam.mu_dec 的减⼩率(缺省为0.1) trainlmnet.trainParam.mu_inc 的增长率(缺省为10) trainlmnet.trainParam.mu_max 的最⼤值(缺省为1e10)。

如何进行MATLAB神经网络的训练和预测

如何进行MATLAB神经网络的训练和预测

如何进行MATLAB神经网络的训练和预测【第一章】MATLAB神经网络的基础知识神经网络是一种模拟人类神经系统运行方式的计算模型,它通过模拟人类的感知、学习和决策过程,可以对复杂的问题进行处理和求解。

在实际应用中,MATLAB是一个常用的工具来进行神经网络的训练和预测。

本章将介绍MATLAB 神经网络的基础知识,包括神经网络的原理、MATLAB的神经网络工具箱以及神经网络训练和预测的一般步骤。

1.1 神经网络的原理神经网络由神经元(neuron)组成,每个神经元接收多个输入并产生一个输出。

神经网络的基本单元是感知器(perceptron),它由权重、偏置和激活函数组成。

权重决定了输入对输出的影响程度,偏置用于调整输出的偏移量,激活函数用于处理神经元的输出。

通过调整权重和偏置,神经网络可以学习和适应不同的输入输出模式。

常见的神经网络包括前馈神经网络(feedforward neural network)、循环神经网络(recurrent neural network)和卷积神经网络(convolutional neural network)。

前馈神经网络是最基本的神经网络类型,信息只能在网络中的一个方向流动,即从输入层到输出层。

循环神经网络具有反馈连接,可以记忆之前的状态信息,适用于序列数据的处理。

卷积神经网络则主要用于图像和语音等二维数据的处理。

1.2 MATLAB神经网络工具箱MATLAB提供了一个神经网络工具箱(Neural Network Toolbox),用于设计、训练和模拟神经网络。

该工具箱包括多种神经网络类型、各种激活函数、训练算法和性能函数等各种功能模块。

使用MATLAB神经网络工具箱可以方便地进行神经网络的建模和仿真。

在MATLAB神经网络工具箱中,神经网络被表示为一个网络对象(network object)。

网络对象由一系列图层(layer)组成,每个图层由若干个神经元组成。

网络对象还包括连接权重矩阵、偏置向量和训练参数等属性。

MATLAB神经网络工具箱中的函数属性及其参数定义

MATLAB神经网络工具箱中的函数属性及其参数定义
N1
3.3 MATLAB神经网络工具箱中的网 络子对象属性
子对象的属性定义了网络的各个子对象:输入向量、 网络层、输出向量、目标向量、权值向量和阈值向量的属 性。 1.输入向量 (1)size属性: net.inputs{i}.size定义了网络各维输入向量 的元素数目,可以被设置为零或正整数。 (2)range属性:net.inputs{i}.range定义了第维输入向量中 每个元素的取值范围,其值是一个 的矩阵。 R2 (3)userdata属性:net.input{i}.userdata和erdata 为用 户提供了关于输入向量的用户信息的地方,它预先只定义 了一个字段,其值为一提示信息。
N N
3.2 MATLAB神经网络工具箱中的网络对 象属性
(6)targetConnect属性:net.targetConnect定义各网络层是 否和目标向量有关,其值为 的布尔型向量(0或1)。 1 N (7)outputConnect属性:net.outputConnect 属性定义各网 络层是否作为输出层,其值为 的布尔型向量(0或 1)。 1 N (8)targetConnect:该属性定义了神经网络的目标层,即 网络哪些层的输出具有目标矢量。其属性值为 维的 布尔量矩阵。 1 N (9)numOutputs:该属性定义了神经网络输出矢量的个数, 属性值为只读变量,其数值为网络中输出层的总数 (sum(net.outputConnect))。
3.2 MATLAB神经网络工具箱中的网络对 象属性
1.结构属性-结构属性决定了网络子对象的数目(包括
输入向量、网络层向量、输出向量、目标向量、阈值 向量和权值向量的数目)以及它们之间的连接关系。 无论何时,结构属性值一旦发生变化,网络就会自动 重新定义,与之相关的其他属性值也会自动更新。 (1)numInputs属性:net.numInputs属性定义了网络的 输入源数,它可以被设置为零或正整数。

Matlab的神经网络工具箱实用指南(3)

Matlab的神经网络工具箱实用指南(3)

静态网络中的批处理方式批处理方式可以用adapt或train函数来实现,虽然由于由于采用了更高效的学习算法,train通常是最好的选择。

增加方式只能用adapt来实现,train函数只能用于批处理方式。

让我们用前面用过的静态网络的例子开始,学习速率设置为0.1。

net = newlin([-1 1;-1 1],1,0,0.1);net.IW{1,1} = [0 0];net.b{1} = 0;用adapt函数实现静态网络的批处理方式,输入向量必须用同步向量矩阵的方式放置:P = [1 2 2 3; 2 1 3 1];T = [4 5 7 7];当我们调用adapt时将触发adaptwb函数,这是缺省的线性网络调整函数。

learnwh是缺省的权重和偏置学习函数。

因此,Widrow-Hoff学习法将会被使用:[net,a,e,pf] = adapt(net,P,T);a = 0 0 0 0e = 4 5 7 7注意网络的输出全部为0,因为在所有要训练的数据提交前权重没有被更新,如果我们显示权重,我们就会发现:>>net.IW{1,1}ans = 4.9000 4.1000>>net.b{1}ans =2.3000经过了用adapt函数的批处理方式调整,这就和原来不一样了。

现在用train函数来实现批处理方式。

由于Widrow-Hoff规则能够在增加方式和批处理方式中应用,它可以通过adapt和train触发。

我们有好几种算法只能用于批处理方式(特别是Levenberg-Marquardt算法),所以这些算法只能用train触发。

网络用相同的方法建立:net = newlin([-1 1;-1 1],1,0,0.1);net.IW{1,1} = [0 0];net.b{1} = 0;在这种情况下输入向量即能用同步向量矩阵表示也能用异步向量细胞数组表示。

用train函数,任何异步向量细胞数组都会转换成同步向量矩阵。

MATLAB神经网络工具箱(函数拟合)

MATLAB神经网络工具箱(函数拟合)

模式分类
函数拟合 模式分类 函数拟合
收敛最快
收敛较快 性能稳定 收敛较快
较小
中等
较大
模式分类
收敛较慢
较小
BP网络的训练
利用已知的”输入—目标”样本向量数据对网络进行训练, 采用train 函数来完成. 训练之前, 对训练参数进行设置 net = train(net, P, T)
newp默认权值和阈值为零(零初始化函数initzero). net = newp([-2,+2;-2,+2],2); W=net.IW{1,1} %显示网络的权值 b=net.b{1} %显示网络的阈值 W= 0 0 b= 0
0 0
0
改变默认初始化函数为随机函数rands net.inputweights{1,1}.initFcn = ‘rands’; net.biases{1}.initFcn = ‘rands’; net =init(net); %重新初始化
实验一 利用感知器进行分类(2)
Step3
hold on linehandle = plotpc(net.IW{1},net.b{1}); //plotpc函数用来画分类线
添加神经元的初始化值到分类图
初始化的权值被设为0,因此任何输入都会给出同样的输出,并且分类线不会 出现在这个图中,不用害怕,我们会继续训练这个神经网。
学习算法 trainlm 适用问题类型
函数拟合
收敛性能
收敛快,误差小
占用存储空间

其他特点
性能随网络规模 增大而变差 性能随网络训练 误差减小而变差 尤其适用于网络 规模较大的情况 计算量岁网络规 模的增大呈几何 增长 适用于提前停止 的方法

MATLAB中的神经网络工具箱详解

MATLAB中的神经网络工具箱详解

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的神经网络工具箱入门

Matlab的神经网络工具箱入门

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神经网络工具箱中的网络对象及属性

MATLAB神经网络工具箱中的网络对象及属性

MA TLAB神经网络工具箱中的网络对象及属性(一)在MATLAB中把定义的神经网络看作一个对象,对象还包括一些子对象:输入向量、网络层、输出向量、目标向量、权值向量和阈值向量等,这样网络对象和各子对象的属性共同确定了神经网络对象的特性。

网络属性除了只读属性外,均可以按照约定的格式和属性的类型进行设置、修改、引用等。

引用格式为:网络名. [子对象] . 属性例如:net.Inputs,net.biasConnect(1),net.inputConnect(1,2),net.inputs{1}.range。

在MATLAB命令窗口中逐条执行以下语句(newp、newff为网络创建函数),即可创建网络net1和net2。

p=[1,2;-1,1;0,1];net1=newp(p,2);net2=newff([-1 1;-1 1], [15,2], {'tansig','purelin'}, 'traingdx', 'learngdm');1.结构属性结构属性决定了网络子对象的数目(包括输入向量、网络层向量、输出向量、目标向量、阈值向量和权值向量的数目)以及它们之间的连接关系。

无论何时,结构属性值一旦发生变化,网络就会自动重新定义,与之相关的其他属性值也会自动更新。

(1)numInputs属性net.numInputs属性定义了网络的输入向量数,它可以被设置为零或正整数。

其值一般在用户定义网络中才被设置,而由MATLAB神经网络工具箱中的网络定义函数所创建的网络,则输入向量就不止一个,而是多个。

所以网络的输入向量数并不是网络输入元素的个数。

net.numInputs属性值一旦改变,与输入向量相关的输入层连接向量(net.inputConnect)和输入层向量(net.inputs)会自动随之改变。

(2)numLayers属性numLayers属性定义了网络的层数,它可以被设置为零或正整数。

使用matlab工具箱创建神经网络模型

使用matlab工具箱创建神经网络模型

用Deep Network Designer工具箱建立网络Deep Network Designer 工具箱可实现以下功能:导入、编辑网络从头建立新的网络通过拖拽方式增加网络层和连接(类似Simulink)查看、编辑网络层属性生成matlab代码1.打开App,导入网络在App标题栏中,点击Deep Network Designer 按钮即可打开工具箱,也可在命令窗中输入以下命令打开在开始界面,有一些预训练网络可供下载安装。

一般通过新建或从工作区导入的方式创建网络2.增加/编辑网络层App提供了常用的网络层模块,可通过拖拽的方式添加,软件自带的层模块有:输入层(图片/序列输入)、卷积和全连接层(二维/三维卷积)、池化层、序列层(lstm、gru、NLP处理)、激活函数(relu、elu、tanh等)、归一化等工具(BN、dropout)、目标检测、输出层。

另外,可以通过命令行自己建立新的层,并添加到网络中。

在工作区中点击每个层,可以查看修改层属性参数,也可选中各层进行复制、剪切、删除等操作。

3.分析网络点击Analyze按钮可以检查分析网络,检查网络结构是否有问题,分析各层的可学习参数数量,errors为0时,网络可用于训练。

4.使用Deep Network Designer进行训练首先在Data 栏中,点击Import Data 按钮导入训练集,然后在Training栏中,进行网络训练。

App中可对训练集进行数据增强,可设置训练参数。

5.网络导出也可将建好的网络导出到matlab工作区,通过 trainNetwork 命令进行训练。

也可先在App中训练完毕,将训练好的网络导出到工作区,这样导出的网络包含已学习的权重参数。

MATLAB神经网络工具箱中的函数属性及其参数定义

MATLAB神经网络工具箱中的函数属性及其参数定义
(1)adaptFcn属性:net.adaptFcn属性定义了网络进行权值 /阈值自适应调整时所采用的函数,它可以被设置为任意 一个进行权值/阈值调整的函数名,包括trains函数。
(2)performFcn属性 net.performFcn属性定义了网络用于衡量网络性能所采用的函
数,其属性值为表示性能函数名称的字符串。
每层神经元在多维空间中排列时各维的维数,其属性值为 一个行矢量,该矢量中各元素的乘积等于该层神经元的个 数(yers{i}.size)。 (2)distanceFcn属性 :yers{i}.distanceFcn,该属性定 义了每层神经元间距的计算函数,其属性值为表示距离函 数名称的字符串。 (3)distances属性(只读):yers{i}.disances,该属性 定义了每层网络中各神经元之间的距离,属性值为只读变 量,其数值由神经元的位置坐标(yers{i}.positions)和 距离函数(yers{i}.distanceFcn)来 确定。
4.权值和阈值属性
(1)IW属性:net.IW属性定义了从网络输入向量到网络层 的权值向量(即输入层的权值向量)结构。其值为 的细胞矩阵。
(2)LW属性:net.LW定义了从一个网络层到另一个网络层 的权值向量结构。其值为 的细胞矩阵。
(3)b属性:net.b属性定义各网络层的阈值向量结构。其 值为 的细胞矩阵。
的布尔型向量(0或1)。
3.2 MATLAB神经网络工具箱中的网络对 象属性
(6)targetConnect属性:net.targetConnect定义各网络层是
否和目标向量有关,其值为
的布尔型向量(0或1)

(7)outputConnect属性:net.outputConnect属性定义各网

Matlab神经网络工具箱介绍(Neural Network Toolbox)

Matlab神经网络工具箱介绍(Neural Network Toolbox)

2020/5/6
10
• <step.3>建立网络
• Network/Data
Manager窗口中New… 打开Create Network or Data,如右图。
• Name:定义网络名为 network1
• 选择Input/Target Data,设置训练函数等参 数。
• View:查看模型
2020/5/6
f ( p)
Forecasting error xn1 t '
2020/5/6
6
• <step.1>数据构造与预处理 •
2020/5/6
7
• <step.2>训练数据导入nntool
• 根据数据的多少,数据文件的格式等获取样本 数据的方法有:
• 1)直接输入数据:通过采用元素列表方式输 入。适用于样本数目较少时。New…按钮
2020/5/6
21
总结
需要注意的是,源文件名及路径名不能是汉 字,否则导致读取文件失败。
本部分介绍了MATLAB 神经网络工具箱的 图形用户界面,为尚不熟悉以MATLAB 编程进 行神经网络设计与仿真的用户提供了一个非常 好的交互式图形界,使得神经网络的设计和仿真 变得轻而易举。
2020/5/6
22
单击Simulate Network按钮,则在Network/ Data Manager窗口的Outputs和Errors区域分 别显示出相应的仿真结果,选中变量名,单击该 窗口的Open按钮,弹出数据窗口,在该窗口可以 查看仿真结果的具体数据,如图 所示。
2020/5/6
19
• <step.6>结果Export和Save
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB神经网络工具箱中的网络对象及属性(一)在MATLAB中把定义的神经网络看作一个对象,对象还包括一些子对象:输入向量、网络层、输出向量、目标向量、权值向量和阈值向量等,这样网络对象和各子对象的属性共同确定了神经网络对象的特性。

网络属性除了只读属性外,均可以按照约定的格式和属性的类型进行设置、修改、引用等。

引用格式为:网络名. [子对象] . 属性例如:net.Inputs,net.biasConnect(1),net.inputConnect(1,2),net.inputs{1}.range。

在MATLAB命令窗口中逐条执行以下语句(newp、newff为网络创建函数),即可创建网络net1和net2。

p=[1,2;-1,1;0,1];net1=newp(p,2);net2=newff([-1 1;-1 1], [15,2], {'tansig','purelin'}, 'traingdx', 'learngdm');1.结构属性结构属性决定了网络子对象的数目(包括输入向量、网络层向量、输出向量、目标向量、阈值向量和权值向量的数目)以及它们之间的连接关系。

无论何时,结构属性值一旦发生变化,网络就会自动重新定义,与之相关的其他属性值也会自动更新。

(1)numInputs属性net.numInputs属性定义了网络的输入向量数,它可以被设置为零或正整数。

其值一般在用户定义网络中才被设置,而由MATLAB神经网络工具箱中的网络定义函数所创建的网络,则输入向量就不止一个,而是多个。

所以网络的输入向量数并不是网络输入元素的个数。

net.numInputs属性值一旦改变,与输入向量相关的输入层连接向量(net.inputConnect)和输入层向量(net.inputs)会自动随之改变。

(2)numLayers属性numLayers属性定义了网络的层数,它可以被设置为零或正整数。

net.numLayers属性值一旦改变,下列与网络相关的布尔代数矩阵就会随之改变:net.biasConnectnet.inputConnectyerConnectnet.targetConnect下列与网络层相关的子对象细胞矩阵的大小也会随之改变:net.biasesnet.inputWeightsyerWeightsnet.outputsnet.targets下列网络调整参数细胞矩阵的大小也会随之改变:net.IWnet.LWnet.b细胞矩阵是将多个矩阵向量作为细胞矩阵的一个“细胞(Cell)”,细胞矩阵的各个元素值为对应细胞的大小和数值类型。

(3)biasConnect属性net.biasConnect属性定义各个网络层是否具有阈值向量,其值为Nl*1布尔型向量(0或1),Nl为网络层数(yers)。

可以通过访问net.biasConnect{i}的值,查看第i个网络层是否具有阈值向量。

net.biasConnect的属性值一旦改变,则阈值结构细胞矩阵(net.biases)和阈值向量细胞矩阵(net.b)将随之改变。

(4)inputConnect属性net.inputConnect属性定义各网络层是否具有来自个输入向量的连接权,其值为Nl*Ni布尔型向量(0或1),Nl为网络层数(net.numLayers),Ni为网络输入向量数(net.numInputs)。

可以通过访问net.inputConnect(i,j)的值,来查看第i个网络是否具有来自第j个输入向量的连接权。

net.inputConnect的属性值一旦改变,输入层权值细胞结构矩阵(net.inputWeights)和权值向量细胞矩阵(net.IW)将随之改变。

(5)layerConnect属性yerConnect属性定义一个网络层是否具有来自另外一个网络层的连接权,其值为Nl*Nl的布尔型向量(0或1),Nl为网络层数(net.numLayers)。

可以通过访问yerConnect(i,j)的值,来查看第i个网络层是否具有来自第j 个网络层的连接权。

yerConnect的属性值一旦改变,网络层权值结构细胞矩阵(yerWeights)和网络层权值向量细胞矩阵(net.IW)将随之改变。

(6)outputConnect属性net.outputConnect属性定义各网络层是否作为输出层,其值为1*Nl的布尔型向量(0或1),Nl为网络层数(net.numLayers)。

可以通过访问net.outputConnect(i)的值来查看第i个网络层是否作为输出层。

net.outputConnect属性值一旦改变,网络输出层数目(net.numOutputs)和输出层结构细胞矩阵(net.outputs)将随之改变。

(7)targetConnect属性net.targetConnect定义各网络层是否和目标向量有关,其值为1*Nl的布尔型向量(0或1),Nl为网络层数(net.numLayers)。

可以通过访问net.targetConnect(i)的值来查看第i个网络层是否和目标向量有关。

net.targetConnect属性值一旦改变,网络层目标向量的数目(net.numOutputs)和目标向量结构细胞矩阵(net.targets)将随之改变。

(8)numOutputs属性(只读)net.numOtputs属性值为输出向量的数目,它等于outputConnect矩阵中元素值为1(True)的个数之和,即:numOutputs=sum(net.outputConnect)。

(9)numTargets属性(只读)net.numTargets属性值为输出向量的数目,它等于targetConnect矩阵中元素值为1(True)的个数之和,即:numTargets=sum(net.targetConnect)。

(10)numInputDelays属性(只读)net.numInputDelays属性定义进行网络仿真时输入向量的延迟量。

其值总是设置为与网络输入相连的权值延迟量的最大值,即numInputDelays=0;for i=1:net.numLayersfor j=1:net.numInputsif net.inputConnect(i,j)numInputDelays=max([numInputDelays net.inputWeights{i,j}.delays]);endend(11)numLayerDelays属性(只读)net.numLayerDelays属性定义进行网络仿真时网络层输出到哪员的延迟量。

其值总是设置为与网络相连的权值延迟量的最大值,即numLayerDelays=0;for i=1:net.numLayersfor j=1:net.numLayersif yerConnect(i,j)numLayerDelays=max([numLayerDelays yerWeights{i,j}.delays]);endendMATLAB神经网络工具箱中的网络对象及属性(二)函数属性函数属性定义了一个网络在进行权值/阈值调整、初始化、误差性能计算或训练时采用的算法。

(1)adaptFcn属性net.adaptFcn属性定义了网络进行权值/阈值调整时所采用的函数,它可以被设置为任意一个进行权值/阈值调整的函数名,包括trains函数。

adapt函数一旦被调用,就可以实现网络权值/阈值的调整:[net, Y, E, Pf, Af]=adapt(NET, P, T, Pi, Ai)另外,用户可以自定义权值/阈值调整函数。

adaptFcn属性值一旦发生变化,网络的调整参数(net.adaptFcn)将被设置为新的调整函数所包含的参数及其默认参数值。

(2)initFcn属性net.initFcn属性定义了网络初始化权值/阈值向量所采用的函数,它可以被设置为任意一个进行网络权值/阈值初始化的函数名,包括initlay(网络层初始化函数)工具箱函数。

init函数一旦被调用,就可以实现网络权值/阈值的初始化:net=init(net)init属性值一旦发生变化,网络的初始化参数(net.initParam)将被设置为新的初始化函数所包含的参数及其默认参数值。

(3)performFcn属性net.performFcn属性定义了网络用于衡量网络性能所采用的函数,它可以被设置为任意一个网络性能函数名。

例如:mae---绝对平均误差性能函数(mean absolute error);mse---均方误差性能函数(mean squared error);msereg---归一化均方误差性能函数(mean squared error with regularization);sse---平方和误差性能函数(sum squared error)。

performFcn属性值一旦发生变化,网络性能参数(net.performParam)将被设置为新的性能函数所包含的参数及其默认值。

(4)trainFcn属性net.trainFcn属性定义了网络用于训练网络性能所采用的函数,它可以被设置为任意一个训练函数名。

trainbfg---BFGS算法(拟牛顿反向传播算法)训练函数;trainbr---贝叶斯归一化法训练函数;traincgb---Powell-Beale共轭梯度反向传播算法训练函数;traincgp---Polak-Ribiere变梯度反向传播算法训练函数;traingd---梯度下降反向传播算法训练函数;traingda---自适应调整学习率的梯度下降反向传播算法训练函数;traingdm---附加动量因子的梯度下降反向传播算法训练函数;traingdx---自适应调整学习率并附加动量因子的梯度下降反向传播算法训练函数;trainlm---Levenberg-Marquardt反向传播算法训练函数;trainoss---OSS(one step secant)反向传播算法训练函数;trainrp---RPROP(弹性BP算法)反向传播算法训练函数;trainscg---SCG(scaled conjugate gradient)反向传播算法训练函数;trainb---以权值/阈值的学习规则采用批处理的方式进行训练的函数;trainc---以学习函数依次对输入样本进行训练的函数;trainr---以学习函数随机对输入样本进行训练的函数。

当调用train函数时,上述训练函数被用于训练网络:[net, tr]=train(NET, P, T, Pi, Ai)trainFcn的属性值一旦发生变化,网络训练参数(net.trainParam)将被设置为新的训练函数所包含的参数及其默认参数值。

相关文档
最新文档