matlab里面的matlab中newff函数数怎么回事

君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
[整理]新版Matlab中神经网络训练函数Newff的使用方法
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
[整理]新版Matlab中神经网络训练函数Newff的使用方法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口matlab神经网络newff函数的使用
设[P,T]是训练样本,[X,Y]是测试样本;
net=newrb(P,T,err_goal,spread); %建立网络
q=sim(net,p);
plot(p,q); %画训练误差曲线
q=sim(net,X);
plot(X,q); %画测试误差曲线
训练前馈网络的第一步是建立网络对象。函数newff建立一个可训练的前馈网络。这需要4个输入参数。
第一个参数是一个Rx2的矩阵以定义R个输入向量的最小值和最大值。
第二个参数是一个设定每层神经元个数的数组。
第三个参数是包含每层用到的传递函数名称的细胞数组。
最后一个参数是用到的训练函数的名称。
举个例子,下面命令将创建一个二层网络。它的输入是两个元素的向量,第一层有三个神经元(3),第二层有一个神经元(1)。
第一层的传递函数是tan-sigmoid,输出层的传递函数是linear。
输入向量的第一个元素的范围是-1到2[-1 2],输入向量的第二个元素的范围是0到5[0 5],训练函数是traingd。
  net=newff([-1 2; 0
5],[3,1],{'tansig','purelin'},'traingd');
这个命令建立了网络对象并且初始化了网络权重和偏置,因此网络就可以进行训练了。
我们可能要多次重新初始化权重或者进行自定义的初始化。
下面就是初始化的详细步骤。
  在训练前馈网络之前,权重和偏置必须被初始化。初始化权重和偏置的工作用命令init来实现。这个函数接收网络对象并初始化权重和偏置后返回网络对象。
下面就是网络如何初始化的:
  net = init(net);
  我们可以通过设定网络参数net.initFcn和net.layer{i}.initFcn这一技巧来初始化一个给定的网络。
net.initFcn用来决定整个网络的初始化函数。前馈网络的缺省值为initlay,它允许每一层用单独的初始化函数。
设定了net.initFcn ,那么参数net.layer{i}.initFcn 也要设定用来决定每一层的初始化函数。
  对前馈网络来说,有两种不同的初始化方式经常被用到:initwb和initnw。initwb函数根据每一层自己的初始化参数(net.inputWeights{i,j}.initFcn)初始化权重矩阵和偏置。前馈网络的初始化权重通常设为rands,它使权重在-1到1之间随机取值。这种方式经常用在转换函数是线性函数时。initnw通常用于转换函数是曲线函数。它根据Nguyen和Widrow[NgWi90]为层产生初始权重和偏置值,使得每层神经元的活动区域能大致平坦的分布在输入空间。
它比起单纯的给权重和偏置随机赋值有以下优点:
(1)减少神经元的浪费(因为所有神经元的活动区域都在输入空间内)。
(2)有更快的训练速度(因为输入空间的每个区域都在活动的神经元范围中)。
  初始化函数被newff所调用。因此当网络创建时,它根据缺省的参数自动初始化。init不需要单独的调用。可是我们可能要重新初始化权重和偏置或者进行自定义的初始化。例如,我们用newff创建的网络,它缺省用initnw来初始化第一层。如果我们想要用rands重新初始化第一层的权重和偏置,我们用以下命令:
  net.layers{1}.initFcn = 'initwb';
  net.inputWeights{1,1}.initFcn = 'rands';
  net.biases{1,1}.initFcn = 'rands';
  net.biases{2,1}.initFcn = 'rands';
  net = init(net);
IW: 输入层到隐含层的权重矩阵
LW: 隐含层和输出层间的权重矩阵
b: 阀值向量
如网络为net, 输入层和输出均为一个接点情况下,则用
net.IW{1,1}可以看到第一个输入接点到第一隐含层的权重向量;
net.LW{2,1}可以看到隐含层到输出层的权值向量;
net.b{1,1}是隐含层的阀值向量,
net.b{2,1}是输出接点的阀值;
- matlab&newff使用_macrohorse_新浪博客
在多输入输出下先用
查看各矩阵结构,再相应用net.IW{?,?}等语句查到相关的向量
______________________________________________________________________________________________
%define the input and output
p= [974 874 527;
388 466 1764;
t=[ 34548];
% 创建bp网络和定义训练函数
% 这里是为了方便而建立一个矩阵,注意是12x2,不是3x2
pr=[ 527 974;
net=newff(pr,[15,1],{'tansig' 'purelin'},'trainlm');
%这里要加入输出层的转移函数,一般是trainlm
net.trainparam.goal=50;
net.trainparam.epochs=5000;
%训练神经网络
[net,tr]=train(net,p,t);
%输出训练后的权值和阈值
iw1=net.IW{1};
b1=net.b{1};
lw2=net.LW{2};
b2=net.b{2};
%存储训练好的神经网络
save netkohler net
______________________________________________________________________________________________
怎样知道matlab已经训练好的神经网络的权值、步长以及阙值
用matlab训练神经网络时不需输入权值、步长以及阙值,如果我想知道matlab已经训练好的神经网络的权值、步长以及阙值该怎末操作?
训练好的权值、阈值的输出方法是:
输入到隐层权值: w1=net.iw{1,1}
隐层阈值: theta1=net.b{1}
隐层到输出层权值: w2=net.lw{2,1};
输出层阈值: theta2=net.b{2}
______________________________________________________________________________________________
帮我看看matlab的这段程序(有关神经网络BP算法)
在一位老师的讲义上看到的程序,但是有些东西不太明白,请求帮助
程序如下:
****************************************************************
figure(gcf)
%NEWFF — 建立一个BP网络
%TRAIN — 对BP网络进行训练
%SIM — 对BP网络进行仿真
P = -1:0.1:1;
T = [-.9602 -.5770 -. . .4609 ...
.1336 -.2013 -.4344 -.5000 -.3930 -. ...
. . -.0312 -.2189 -.3201];
plot(P,T,'+');
title('Training Vectors');
xlabel('Input Vector P');
ylabel('Target Vector T');
net=newff(minmax(P),[5 1],{'tansig'
'purelin'},'traingd','learngd','sse');
net.iw{1,1} = [3.0; 3.0; 3.5000];
net.b{1} = [-2.4; -0.3; 2.8722];
net.lw{2,1} = [0.5 -0.1 -0.1718];
net.b{2} = [0.1326];
net.iw{1,1}
net.lw{2,1}
net.trainParam.show=10;
net.trainParam.goal=0.02;
net.trainParam.lr=0.01;
A=sim(net,P);
sse=sumsqr(T-A);
for i=1:me/100
if sse&net.trainparam.goal,i=i-1;break,end
net.trainParam.epochs=100;
[net,tr]=train(net,P,T);
trp((1+100*(i-1)):(max(tr.epoch)+100*(i-1)))=tr.perf(1:max(tr.epoch));
A=sim(net,P);
sse=sumsqr(T-A);
plot(P,T,'+');
message=sprintf('Traingd, Epoch %%g/%g, SSE %%g\n',me);
fprintf(message,(max(tr.epoch)+100*(i-1)),sse)
[i,j]=size(trp);
plot(1:j,net.trainParam.goal,'r--')
title('Error Signal')
xlabel('epoch')
ylabel('Error')
a = sim(net,p)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。>> 新版Matlab中神经网络训练函数Newff的使用方法
新版Matlab中神经网络训练函数Newff的使用方法
所属分类:
下载地址:
新版Matlab中神经网络训文件大小:110.90 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
新版Matlab中神经网络训练函数Newff的使用方法
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
#U65b0#U7248Matlab#U4e2d#U795e#U7ecf#U7f51#U7edc#U8bad#U7ec3#U51fd#U6570Newff#Uf#U#U6cd5.doc174.50 kB 21:48
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
donotehave a look, may need to change.
burrramoshello, is there an english version of this? and which method of neural networks was used?
评价成功,多谢!
下载新版Matlab中神经网络训
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:139.870ms - init:0.1;find:0.9;t:2.0;tags:0.3;related:77.7;comment:3.1; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧}

我要回帖

更多关于 matlab中newff的用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信