Matlab工具箱中的BP与RBF函数.docx
- 文档编号:6657911
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:11
- 大小:20.84KB
Matlab工具箱中的BP与RBF函数.docx
《Matlab工具箱中的BP与RBF函数.docx》由会员分享,可在线阅读,更多相关《Matlab工具箱中的BP与RBF函数.docx(11页珍藏版)》请在冰豆网上搜索。
Matlab工具箱中的BP与RBF函数
Matlab工具箱中的BP与RBF函数
Matlab神经网络工具箱中的函数非常丰富,给网络设置合适的属性,可以加快网络的学习速度,缩短网络的学习进程。
限于篇幅,仅对本章所用到的函数进行介绍,其它的函数及其用法请读者参考联机文档和帮助。
1BP与RBF网络创建函数
在Matlab工具箱中有如表1所示的创建网络的函数,作为示例,这里只介绍函数newff、newcf、newrb和newrbe。
表1神经网络创建函数
函数名
含义
newcf
创建一个前向层叠(cascade-forward)BP网络
newff
创建一个前馈(feed-forward)BP网络
newrb
设计一个径向基网络
newrbe
设计一个精密径向基网络
(1)newff函数
功能:
创建一个前馈BP神经网络。
调用格式:
net=newff(PR,[S1S2...SNl],{TF1TF2...TFNl},BTF,BLF,PF)
参数说明:
•PR-R个输入的最小、最大值构成的R×2矩阵;
•Si–SNI层网络第i层的神经元个数;
•TFi-第i层的传递函数,可以是任意可导函数,默认为'tansig',可设置为logsig,purelin等;
•BTF-反向传播网络训练函数,默认为'trainlm',可设置为trainbfg,trainrp,traingd等;
•BLF-反向传播权值、阈值学习函数,默认为'learngdm';
•PF-功能函数,默认为'mse';
(2)newcf函数
功能:
创建一个N层的层叠(cascade)BP网络
调用格式:
net=newcf(Pr,[S1S2...SNl],{TF1TF2...TFNl},BTF,BLF,PF)
参数同函数newff。
(3)newrb函数
功能:
创建一个径向基神经网络。
径向基网络可以用来对一个函数进行逼近。
newrb函数用来创建一个径向基网络,它可以是两参数网络,也可以是四参数网络。
在网络的隐层添加神经元,直到网络满足指定的均方误差要求。
调用格式:
net=newrb(P,T,GOAL,SPREAD)
参数说明:
•P:
Q个输入向量构成的R×Q矩阵;
•T:
Q个期望输出向量构成的S×Q矩阵;
•GOAL:
均方误差要求,默认为0。
•SPREAD:
分散度参数,默认值为1。
SPREAD越大,网络逼近的函数越平滑,但SPREAD取值过大将导致在逼近变化比较剧烈的函数时神经元过多,若SPREAD取值过小,则导致在逼近平滑函数时,导致神经元过多。
(4)newrbe函数
功能:
创建一个精密径向基网络。
newrbe函数可以很快地根据设计向量创建一个0误差的径向基网络。
调用格式:
Net=Newrbe(P,T,SPREAD)
参数说明:
参数P,T和SPREAD同newrb函数中的参数P,T和SPREAD含义相同。
2网络训练函数
(1)Adapt函数
功能:
神经网络单步训练函数。
调用格式:
[net,Y,E,Pf,Af]=adapt(net,P,T,Pi,Ai)
参数说明:
Adapt函数调用由net.adaptFcn所指定的函数和net.adaptParam所指定的参数来训练网络。
在执行命令Adapt之前,可以预先指定训练函数net.adaptFcn和训练参数net.adaptParam。
输入参数:
•net–所要训练的网络;
•P-网络的输入;
•T-网络的期望输出,可选项,只在有教师训练时需要,一般不用,默认值为0;
•Pi–初始输入延迟,可选项,只在有输入延迟时需要,一般不用,默认值为0;
•Ai–初始层延迟,可选项,只在有层延迟时需要,默认值为0;
•输出参数:
NET–训练后的网络;
•Y-网络输出;
•E-网络误差;
•Pf-训练后的输入延迟,一般不用.;
•Af-训练后的层延迟,一般不用。
ADAPT的参数有两种格式:
阵列格式和矩阵格式。
阵列格式易于描述,最适合于多输入多输出网络。
当ADAPT的参数为阵列格式时:
P-Ni×TS阵列,阵列的每个元素P{i,ts}是一个Ri×Q的矩阵;
T-Nt×TS阵列,阵列的每个元素P{i,ts}是一个Vi×Q的矩阵;
Pi-Ni×ID阵列,阵列的每个元素{i,k}是一个Ri×Q的矩阵;
Ai-Nl×LD阵列,阵列的每个元素{i,k}是一个Si×Q的矩阵;
其中:
Ni=net.numInputs
Nl=net.numLayers
Nt=net.numTargets
ID=net.numInputDelays
LD=net.numLayerDelays
TS=Numberoftimesteps
Q=Batchsize
Ri=net.inputs{i}.size
Si=net.layers{i}.size
Vi=net.targets{i}.size
矩阵格式最适合于单输入单输出网络,但也可以用于多输入多输出网络。
每个矩阵元素通过把相应阵列参数元素存储到一个单一的矩阵来寻找。
当ADAPT的参数为矩阵格式时:
P-(sumofRi)×Qmatrix
T-(sumofVi)×Qmatrix
Pi-(sumofRi)×(ID*Q)matrix
Ai-(sumofSi)×LD*Q)matrix
其中Pi,Ai,Pf和Af的列为最初的延迟条件到最近的延迟条件。
Pi{i,k}为时刻ts=k-ID的输入i;
Pf{i,k}为时刻ts=TS+k-ID的输入i;
Ai{i,k}为时刻ts=k-LD的层输出i;
Af{i,k}为时刻ts=TS+k-LD的层输出i。
(2)adaptwb函数
功能:
网络权值和偏置单步训练函数
调用格式:
[net,Ac,El]=adaptwb(net,Pd,T,Ai,Q,TS)
info=adaptwb(code)
说明:
adaptwb函数根据网络的学习函数(net.learnFcn)对网络的权值和偏置进行单步训练。
输入参数:
•net所要训练的神经网络;
•Pd延迟输入,是一个No×Ni×TS阵列,元素P{i,j,ts}是一个Zij×Q矩阵;
•Tl各层的期望输出,Nl×TS阵列,元素P{i,ts}是一个Vi×Q矩阵或空矩阵;
•Ai初始输入条件,Nl×LD阵列,元素Ai{i,k}是一个Si×Q矩阵;
•Q输入向量的个数
•TS步长
输出参数:
•net更新后的网络
•Ac总的层输出,Nl×(LD+TS)阵列,元素El{i,k}是一个Si×Q矩阵或空矩阵。
•El该层的误差
其中参数Ni、Nl、LD、Ri、Si和Vi同adapt函数中的参数Ni、Nl、LD、Ri、Si和Vi相同。
Zij=Ri*length(net.inputWeights{i,j}.delays)
adaptwb(code)函数根据code返回有用的信息,code可以取为
‘pnames’训练参数的名称
‘pdefaults’缺省的训练参数
如果要使一个网络使用adaptwb函数进行网络训练,需要作如下设置:
•设置net.adaptFcn为adaptwb(net.adaptParam将自动设为adaptwb的缺省值);
•设置第i层各偏置的学习函数(net.biases{i}.learnFcn)和各权值的学习函数(net.inputWeights{i,j}.learnFcn和net.layerWeights{i,j}.learnFcn)为各自的期望学习函数;
(3)train函数
功能:
神经网络学习函数。
调用格式:
[net,tr]=train(net,P,T,Pi,Ai)
[net,tr]=train(net,P,T,Pi,Ai,VV,TV)
说明:
train函数根据net.trainFcn和net.trainParam训练网络net。
输入参数:
train函数的输入参数同adapt函数的输入参数相同。
输出参数:
•net–返回网络;
•tr–网络训练步数和性能;
Train函数的信号参数可以有两种格式:
阵列或矩阵,输入参数的阵列格式和矩阵格式同adapt函数相同。
Train函数的第二种调用格式[net,tr]=train(NET,P,T,Pi,Ai,VV,TV)与其第一种格式的区别在于:
第二种调用格式在训练完网络过程中进行网络测试,确认向量用来尽早终止训练,以免过训练损害网络的普遍性,而第一种调用格式在训练过程中不进行这种测试。
如果VV.Pi、VV.Ai设为空矩阵或空阵列,将使用起默认值。
其中VV.P,TV.P为给定/测试输入,VV.T,TV.T为给定/测试输入的期望输出,默认值为0;VV.Pi,TV.Pi为给定/测试初始输入延迟条件,默认值为0;VV.Ai,TV.Ai为给定/测试层延迟条件,默认值为0;
(4)trainwb函数
功能:
网络权值/偏置训练函数
调用格式:
[net,tr]=trainwb(net,Pd,Tl,Ai,Q,TS,VV)
info=trainwb(code)
说明:
输入参数:
•Pd延迟输入,No×Ni×TS阵列,元素P{i,j,ts}是一个Dij×Q矩阵,其中
◆Dij=Ri*length(net.inputWeights{i,j}.delays)
•VV变量向量结构体或空矩阵
其它参数同adaptwb函数中相应的参数相同。
•输出参数:
•net训练后的网络
•tr每一步中各个值的训练记录,它有四个参量,tr.epoch为训练次数,tr.perf为训练性能,tr.vperf为验证性能,tr.tperf为测试性能。
同adaptwb函数一样,若要设计一个用trainwb函数进行训练的网络,需要对网络作一些设置,设置的参数与设置方法同adaptwb相同。
3网络初始化函数
(1)init函数
功能:
网络初始化函数。
调用格式:
init(net)
说明:
根据由net.initFcn说明的网络初始化函数和net.initParam说明的参数值重新初始化网络的权值和阈值。
示例:
net=newp([01;-22],1);%创建一个感知器神经网络;
net.iw{1,1}%显示网络的输入权值,其结果为
ans=
10
P=[0101;0011];%网络的输入矩阵
T=[0001];%网络的输出矩阵
net=train(net,P,T);%对网络进行训练
net.iw{1,1}%显示训练后网络的输入权值,其结果为
ans=
21
net=init(net);%重新初始化网络
net.iw{1,1}%显示重新初始化后网络的输入权值,其结果为
ans=
10
(2)initlay函数
功能:
网络层初始化函数。
调用格式:
net=initlay(net)
info=initlay(code)
说明:
第一种调用格式根据网络各层的初始化函数net.layers{i}.initFcn对网络相应层进行初始化,其中i为初始化层的序号;第二种调用格式根据code指定的代码返回一些有用的信息,其中code可以取
•‘pnames’初始化参数的名称
•‘pdefaults’缺省的初始化参数
(3)initwb函数
功能:
神经网络某一层的权值和偏置的初始化函数
调用格式:
net=initwb(net,i)
说明:
initwb函数只对网络中的第i层的权值和偏置进行初始化。
(4)initzero函数
功能:
将权值/偏置初始化为0的函数。
调用格式:
W=initzero(S,PR)
B=initzero(S,[11])
说明:
initzero(S,PR)函数将网络的权值矩阵初始化为0矩阵;B=initzero(S,[11])将网络的偏置初始化为0,它返回一个0偏置向量。
其中S为神经元个数,PR为输入向量的范围。
4网络学习函数
Matlab工具箱中的学习函数用于网络的设置,以配合adapt函数和train函数对网络进行训练,一般不单独调用。
(1)Learnp函数
功能:
感知器权值和偏置值学习函数。
调用格式:
[dW,LS]=learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
[db,LS]=learnp(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
info=learnp(code)
参数说明:
输入参数
W-S×R权值矩阵(或S×1偏置向量);
P-R×Q输入向量;
Z-S×Q加权输入向量;
N-S×Q网络输入向量;
A-S×Q输出向量;
T-S×Ql层期望向量;
E-S×Q层误差向量;
gW-S×R关于性能的梯度;
gA-S×Q关于性能的输出梯度;.
D-S×S节点距离;
LP–学习参数,它是一个空矩阵;
LS–学习状态,初始状态应为空;
返回参数:
dW-S×R权值(或偏置)变化量矩阵;
LS–新的学习状态;
learnp(code)根据code代码返回相应的有用信息,code可以取为
●‘pnames’返回学习参数的名称
●‘pdefaults’返回默认的学习参数
●‘needg’如果该函数使用gW或gA,则返回值为1。
(2)learngd函数
功能:
梯度下降权值/偏置学习函数
调用格式:
[dW,LS]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
[db,LS]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
info=learngd(code)
说明:
learngd函数的参数同learnp函数的参数相同,只是参数本身附带一个学习步长参数LP.lr,默认值为0.01
其它学习函数的调用格式和参数同learnp相同,只是有的学习函数没有第二种调用格式而已,为节省篇幅起见,这里不再赘述。
5网络仿真函数
SIM函数
功能:
神经网络仿真函数。
只有在创建好一个网络后才能进行网络仿真。
调用格式:
[T,X,Y]=SIM('model',TIMESPAN,OPTIONS,UT)
[T,X,Y1,...,Yn]=SIM('model',TIMESPAN,OPTIONS,UT)
参数说明:
输出参数:
•T:
返回的时间向量;
•X:
返回的矩阵状态或结构格式状态;
•Y:
返回的输出;
输入参数:
•Y1,...,Yn:
只能用于框图模式,这里n为根输出块的个数;
•model:
框图模型名称,即仿真的网络名,它必须在进行网络仿真前已经创建好;
•TIMESPAN:
时间范围,写成[TStartTFinal]格式或[TStartOutputTimesTFinal]格式,其中TStart为起始时间,Tfinal为终止时间,OutputTimes为时间步长;
•OPTIONS:
可选仿真参数,这是由SIMSET创建的一个结构体,一般不用;
UT:
可选外部输入,UT=[T,U1,...Un],或者是一个u=UT(t)的函数表达式,其中T=[t1,...,tm]';
温度压力
0MPa
1.0MPa
2.0MPa
3.0MPa
4.0MPa
5.0MPa
21.5℃
UP/mV
-13.84
10.69
28.88
47.05
65.19
83.36
UT/Mv
27.64
29.65
26.43
25.92
25.45
24.94
28℃
UP/mV
-13.49
9.32
26.34
43.12
59.99
76.82
UT/mV
34.41
33.93
33.47
32.93
32.47
31.91
34℃
UP/mV
-10.80
7.54
24.84
42.05
59.25
76.38
UT/mV
37.76
36.92
35.44
35.97
35.39
35.09
44℃
UP/mV
-9.72
6.56
23.87
41.21
58.58
75.87
UT/mV
54.88
53.97
52.87
52.41
51.93
51.55
50℃
UP/mV
-8.62
4.86
21.84
38.70
56.32
73.75
UT/mV
65.77
64.79
63.84
62.91
61.99
61.06
70℃
UP/mV
-7.72
3.72
21.25
38.60
55.56
73.28
UT/mV
86.12
84.94
83.78
82.65
81.55
80.45
UP=[-13.8410.6928.8847.0565.1983.36...
-13.499.3226.3443.1259.9976.82...
-10.807.5424.8442.0559.2576.38...
-9.726.5623.8741.2158.5875.87...
-8.624.8621.8438.7056.3273.75...
-7.723.7221.2538.6055.5673.28];
UT=[27.6426.9526.4325.9225.4524.94...
34.4133.9333.4732.9332.4731.91...
37.7636.9236.4435.9735.3935.09...
54.8853.9752.8752.4151.9351.55...
65.7764.7963.8462.9161.9961.06...
86.1284.9483.7882.6581.5580.45];
P=[01.02.03.04.05.0...
01.02.03.04.05.0...
01.02.03.04.05.0...
01.02.03.04.05.0...
01.02.03.04.05.0...
01.02.03.04.05.0];
T=[21.521.521.521.521.521.5...
28.028.028.028.028.028.0...
34.034.034.034.034.034.0...
44.044.044.044.044.044.0...
50.050.050.050.050.050.0...
70.070.070.070.070.070.0];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 工具箱 中的 BP RBF 函数