MATLAB神经网络实例及训练结果各参数解释

matlab脚本程序实例源码:

clear;
clc;

%一个简单的BP网络拟合问题
%训练样本的生成
X=-1:0.1:1;  %X为输入 这里是在[-1 1]区间内以0.1为步进值(相邻两数的差值)生成的21组数据,用来表示该网络的输入
D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...
    0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988...
    0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201];  %D为X每一项数据对应的输出(实际x对应的实际y值)

figure;  %创建一个新窗口
plot(X,D,'+'); %绘制原始数据分布图

%创建网络
net = newff([-1 1],[5 1],{'tansig','tansig'}); %newff:前馈网络创建函数,即创建一个前馈神经网络net

%设置训练参数
net.trainParam.epochs = 100; %设定训练的最大次数
net.trainParam.goal = 0.005; %设定全局最小误差,此处为mse:均方误差(mean squared error)

%训练网络
net = train(net,X,D); %网络学习函数

%仿真
O = sim(net,X);

%作出拟合图形
figure; 
plot(X,D,'*',X,O); %绘制训练后得到的结果和误差曲线
V = net.iw{1,1}%输入层到中间层权值
theta1 = net.b{1}%中间层各神经元阈值
W = net.lw{2,1}%中间层到输出层权值
theta2 = net.b{2}%输出层各神经元阈值
 

运行结果:

 

 

MATLAB神经网络训练结果各参数解释:

 

如上图形显示的是神经网络的结构图,可知有一个隐层一个输出层

第二部分显示的是训练算法,这里为学习率自适应的梯度下降BP算法;误差指标为MSE

第三部分显示训练进度:

Epoch:训练次数;在其右边显示的是最大的训练次数,可以设定,上面例子中设为100;而进度条中显示的是实际训练的次数,上面例子中实际训练次数为7次。

Time:训练时间,也就是本次训练中,使用的时间

Performance:性能指;进度条中显示的是当前的均方误差;进度条右边显示的是设定的均方误差(如果当前的均方误差小于设定值,则停止训练),这个指标可以用用.trainParam.goal参数设定。

Gradiengt:梯度;进度条中显示的当前的梯度值,其右边显示的是设定的梯度值。如果当前的梯度值达到了设定值,则停止训练。

validation check为泛化能力检查(若连续6次训练误差不降反升,则强行结束训练)

第四部分为作图。分别点击三个按钮能看到误差变化曲线,分别用于绘制当前神经网络的性能图,训练状态和回归分析。

 

参考:https://www.cnblogs.com/litthorse/p/7636839.html

  • 7
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xw-何妨吟啸且徐行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值