请问,在epoch2 的地方为什么折线上升,这样的结果对应的网络是不是很烂。

程序如下:

{/

%run plethora of tests

clear;

clc;

close all

%load the twonorm dataset

inputs=xlsread('4s_acceleration_input.xlsx','mean');

outputs=xlsread('4s_output.xlsx');

%modify so that training data is NxD and labels are Nx1, where N=#of

%examples, D=# of features

X = inputs';

Y = outputs';

All_error=[];%所有误差存储

%---------------------------------------------------

%原始数据

%---------------------------------------------------

%time=1;2;%数据是从以2s为间隔的30s内的数据

p=X;%输入数据,共15组,每组3个输入

t=Y;%输出数据,共15组,每组1个输出

%---------------------------------------------------

%数据归一化处理

%mapminmax函数默认将数据归一化到[-1,1],调用形式如下

%[y,ps] =%mapminmax(x,ymin,ymax)

%x需归化的数据输入

%ymin,ymax为需归化到的范围,不填默认为归化到[-1,1]

%y归一化后的样本数据

%ps处理设置,ps主要在结果反归一化中需要调用,或者使用同样的settings归一化另外一组数据

%---------------------------------------------------

[normInput,ps] = mapminmax(p);

[normTarget,ts] = mapminmax(t);

%---------------------------------------------------

%数据乱序,及分类处理

%将输入的15组数据的20%,即3组,用来作为测试数据;

% 样本的20%,即3组,用来作为变化数据;

%另外9组用来正常输入,用来训练;

%dividevec()用来重新随机抽取上述三种分类的数据,原来的顺序被打乱

%函数调用的语法

%[trainV,valV,testV] = dividevec(p,t,valPercent,testPercent)

%输入p为输入数据,t为输出数据

%valPercent为训练用的变化数据在总输入中的百分比

%testPercent为训练用的测试数据在总输入中的百分比

%输出trainV,valV,testV分别为按乱序及相应百分比,抽取得到的数据

%另外,打乱后的数据,p和t都是对应的,请放心使用

%---------------------------------------------------

testPercent = 0.20; % Adjust as desired

validatePercent = 0.20; % Adust as desired

[trainSamples,validateSamples,testSamples] = dividevec(normInput,normTarget,validatePercent,testPercent);

for j=1:200

%---------------------------------------------------

% 设置网络参数

%---------------------------------------------------

NodeNum1 = 20;% 隐层第一层节点数

NodeNum2=35; % 隐层第二层节点数

TypeNum = 1; % 输出维数

TF1 = 'purelin';

TF2 = 'purelin';

TF3 = 'tansig';

%各层传输函数,TF3为输出层传输函数

%如果训练结果不理想,可以尝试更改传输函数,以下这些是各类传输函数

%TF1 = 'tansig';TF2 = 'logsig';

%TF1 = 'logsig';TF2 = 'purelin';

%TF1 = 'tansig';TF2 = 'tansig';

%TF1 = 'logsig';TF2 = 'logsig';

%TF1 = 'purelin';TF2 = 'purelin';

net=newff(minmax(normInput),[NodeNum1,TypeNum],{TF1 TF2 TF3},'traingdx');%网络创建

%---------------------------------------------------

% 设置训练参数

%---------------------------------------------------

net.trainParam.epochs=10000;%训练次数设置

net.trainParam.goal=1e-25;%训练目标设置

net.trainParam.lr=0.01;%学习率设置,应设置为较少值,太大虽然会在开始加快收敛速度,但临近最佳点时,会产生动荡,而致使无法收敛

%---------------------------------------------------

% 指定训练参数

%---------------------------------------------------

% net.trainFcn = 'traingd'; % 梯度下降算法

% net.trainFcn = 'traingdm'; % 动量梯度下降算法

%

% net.trainFcn = 'traingda'; % 变学习率梯度下降算法

% net.trainFcn = 'traingdx'; % 变学习率动量梯度下降算法

%

% (大型网络的首选算法)

% net.trainFcn = 'trainrp'; % RPROP(弹性BP)算法,内存需求最小

%

% (共轭梯度算法)

% net.trainFcn = 'traincgf'; % Fletcher-Reeves修正算法

% net.trainFcn = 'traincgp'; % Polak-Ribiere修正算法,内存需求比Fletcher-Reeves修正算法略大

% net.trainFcn = 'traincgb'; % Powell-Beal复位算法,内存需求比Polak-Ribiere修正算法略大

%

% (大型网络的首选算法)

%net.trainFcn = 'trainscg'; % Scaled Conjugate Gradient算法,内存需求与Fletcher-Reeves修正算法相同,计算量比上面三种算法都小很多

% net.trainFcn = 'trainbfg'; % Quasi-Newton Algorithms - BFGS Algorithm,计算量和内存需求均比共轭梯度算法大,但收敛比较快

% net.trainFcn = 'trainoss'; % One Step Secant Algorithm,计算量和内存需求均比BFGS算法小,比共轭梯度算法略大

%

% (中型网络的首选算法)

%net.trainFcn = 'trainlm'; % Levenberg-Marquardt算法,内存需求最大,收敛速度最快

% net.trainFcn = 'trainbr'; % 贝叶斯正则化算法

%

% 有代表性的五种算法为:'traingdx','trainrp','trainscg','trainoss', 'trainlm'

net.trainfcn='traingdm';

[net,tr] = train(net,trainSamples.P,trainSamples.T,[],[],validateSamples,testSamples);

%---------------------------------------------------

% 训练完成后,就可以调用sim()函数,进行仿真了

%---------------------------------------------------

[normTrainOutput,Pf,Af,E,trainPerf] = sim(net,trainSamples.P,[],[],trainSamples.T);%正常输入的9组p数据,BP得到的结果t

[normValidateOutput,Pf,Af,E,validatePerf] = sim(net,validateSamples.P,[],[],validateSamples.T);%用作变量3的数据p,BP得到的结果t

[normTestOutput,Pf,Af,E,testPerf] = sim(net,testSamples.P,[],[],testSamples.T);%用作测试的3组数据p,BP得到的结果t

%---------------------------------------------------

% 仿真后结果数据反归一化,如果需要预测,只需将预测的数据P填入

% 将获得预测结果t

%---------------------------------------------------

trainOutput = mapminmax('reverse',normTrainOutput,ts);%正常输入的9组p数据,BP得到的归一化后的结果t

trainInsect = mapminmax('reverse',trainSamples.T,ts);%正常输入的9组数据t

validateOutput = mapminmax('reverse',normValidateOutput,ts);%用作变量3的数据p,BP得到的归一化的结果t

validateInsect = mapminmax('reverse',validateSamples.T,ts);%用作变量3的数据t

testOutput = mapminmax('reverse',normTestOutput,ts);%用作变量3组数据p,BP得到的归一化的结果t

testInsect = mapminmax('reverse',testSamples.T,ts);%用作变量3组数据t

%绝对误差计算

absTrainError = trainOutput-trainInsect;

absTestError = testOutput-testInsect;

error_sum=sqrt(absTestError(1).^2+absTestError(2).^2+absTestError(3).^2);

All_error=[All_error error_sum];

eps=0.3;%其为3组测试数据的标准差,或者每个数据偏差在一定范围内而判别

if ((abs(absTestError(1))<=0.1 )&(abs(absTestError(2))<=0.1)&(abs(absTestError(3))<=0.1)|(error_sum<=eps))

save('training_net.mat','net','tr');

break

end

j

end

j

Min_error_sqrt=min(All_error)

testOutput;

testInsect;

}

数据在附件里面

11.jpg

(34.38 KB, 下载次数: 15)

2014-2-18 14:19 上传

神经网络分类的performance图

22.jpg

(25.54 KB, 下载次数: 9)

2014-2-18 14:19 上传

神经网络分类的fail图

2014-2-18 14:24 上传

点击文件名下载附件

64 KB, 下载次数: 440

2014-2-18 14:24 上传

点击文件名下载附件

9.83 KB, 下载次数: 381

matlab里performance,关于神经网络performance图的问题相关推荐

  1. bp神经网络performance怎么看,BP神经网络用什么软件

    1.除了MATLAB能做BP神经网络,还有其他什么软件能做 除了MATLAB能做BP神经网络,还有其他什么软件能做 理论上编程语言都可以,比如VB,C语言,过程也都是建模.量化.运算及结果输出(图.表 ...

  2. Matlab画圆方向图,如何在matlab里画天线的立体方向图?

    如何在matlab里画天线的立体方向图?有没有具体的函数? 有的,你看下一般的matlab教程里都有着方面的介绍,查一下就可以了 有数据,Matlab可以画 归根到底,画极坐标方向图是坐标变换的问题. ...

  3. matlab里实现AR人脸库2600张人脸图的分类处理

    AR人脸库,包含50位男性和50位女性,每人26张共2600张图. 但是网上下载的AR人脸库并没有进行分类,而是2600张图在一个文件夹中,本示例在matlab里编程实现将2600张人脸图分类为编号为 ...

  4. 用matlab自己搭建bp神经网络,怎样在matlab里建立一个BP神经网络模型?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用以下的数据怎样在matlab里建立一个BP神经网络模型?求高手帮忙!!最好是有详细步骤以及代码 年份 WTI(美元/桶) 2007-1 54.26 20 ...

  5. matlab神经网络应用设计,神经网络及其matlab实现

    Matlab里的神经网络是什么意思啊,我是新手,谁能简单通俗地解释下啊?谢谢了!!! . 所谓神经网络算法顾名思义是模拟生物神经网络而产生的一种算法,首先需要用一些已知的数据输入到神经网络中,使它知道 ...

  6. 人工神经网络可视化,图神经网络可视化

    三维可视化前景如何?好找工作吗? . 你可以先去[绘学霸]网站找"3d建模"板块的[免费]视频教程-[点击进入]完整入门到精通视频教程列表:;tagid=307&zdhhr ...

  7. 基于Matlab平台的BP神经网络进行数据拟合

    基于Matlab平台的BP神经网络进行数据拟合 上次讨论了基于Hopfield神经网络的数字识别,BP(Back Propagation)神经网络也可以进行相关的数字识别如手写数字识别等,由于BP神经 ...

  8. 神经网络和图神经网络,神经网络的图怎么画

    神经网络(深度学习)的几个基础概念 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层.隐藏层.输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底 ...

  9. semilogx 多条曲线_怎么让两个指数在一个坐标,matlab里怎样一个坐标上显示多个曲线,而且横轴要用指数形式的?谢谢...

    Q1:matlab里怎样一个坐标上显示多个曲线,而且横轴要用指数形式的?谢谢 多个纵轴数组分别是y1,y2,y3,横轴数组为x 命令为: semilogx(x,y1,x,y2,x,y3) 完了 Q2: ...

最新文章

  1. [导入]金山词霸2005精简版下载地址
  2. A Guide to Python's Magic Methods
  3. linux切换软件版本,Linux中dpkg工具update-alternatives实现符号链接软件版本的切换(转)...
  4. python 浏览器,轻量级Python Web浏览器
  5. 51单片机C语言led流水灯及数码管实现秒表
  6. html锚点反向联动,小程序菜单左右联动
  7. 问题 D: 最小生成树II
  8. python源程序文件的扩展名_python程序文件扩展名知识点详解
  9. 转载 SpringMVC详解(三)------基于注解的入门实例
  10. 如何反编译微信小程序前端,30分钟教你学会
  11. 单片机程序框架设计与实现
  12. 用时一个半个月,七月刚入职字节跳动的测试开发面试题,内附答案
  13. 22二叉树非递归遍历算法
  14. SDS之BlockChain Storage系列:3、为什说区块链存储是下一个热点 (上)
  15. Oracle系列之--Profile
  16. “苹果”在中国的血汗工厂
  17. Launchy - 经典实用的免费键盘快速启动工具,桌面图标神马的最无爱了!
  18. gem 安装oxidized-web报错:checking for -licui18n... no处理
  19. PBR--RTR4笔记--第八章 光与颜色
  20. 计算机应用基础形成性考核册答案win7,《计算机应用基础》形成性考核册答案...

热门文章

  1. 关于sql注入之cookie注入
  2. Composer PHP依赖管理
  3. 深入了解WM_SIZE
  4. VS2010中文注释带红色下划线的解决方法
  5. AWS之EC2搭建WordPress博客
  6. socket sock inet_sock 等关系
  7. 树莓派 linux0.12,12 个可替代树莓派的单板机
  8. linux 信号 core,Shell 信号发送与捕捉
  9. mysql union 优化_mysql 5.7.3 对union all 的优化
  10. 2003服务器系统屏蔽广告,电脑总是乱弹广告弹窗?教你彻底关闭