繁体   English   中英

Matlab神经网络建议

[英]Matlab Neural Network Advice

我目前正在研究一个使用MATLAB神经网络工具优化加热器性能的项目,我阅读了手册并从MATLAB手册中获得了指导。 我已经配置好网络并对其进行了测试,我需要注意两点:1.我走对了吗? 我的网络正确吗? 我需要专家建议2.我需要(优化)加热器的性能,我已经定义了功能,但是我不知道如何在功能优化中集成网络。 我的网络如下3输入x1 x2 x3一进

load input1
load input2
load input3

x1= importdata('input1.txt');  (similar the other inputs and output)
[x1n,x1min,x1max]=norm_nn(x1);  ( I worte my own normalization function)
IN=[x1n x2n x3n]';
OUT=[y1n]';
INTRAIN = IN(:,1:1307);
OUTTRAIN = OUT(:,1:1307);
INTEST =IN(:,1308 : 1634);
OUTTEST = OUT(:,1308:1634);
NETWORKNet1 = newff(IN,OUT,[20 20 20], {'tansig' 'tansig' }, 'trainbr');
net = init (NETWORKNet1);
NETWORKNet1 = trainbr(NETWORKNet1,INTRAIN,OUTTRAIN);
YtestNwt1 = sim(NETWORKNet1,INTEST);
y1testd=denorm_nn7(YtestNet1(1,:),y1min,y1max);
e1=er8(y1testd,y1(1308:1634));
save Net1

我已使用(1634个数据点,并将其划分为训练(80%)和测试(20%))

这里有一些建议:

(A)由于不推荐使用newff,请使用feedforwardnet

(B)绘制训练图,测试数据和网络结果,以使其可视化。

(C)通过写[20 20 20],您的网络具有3个隐藏层。 绝大多数问题只需要1个隐藏层。 仅当所有其他途径都用尽后,您才可以移至多个隐藏层。

(D)首先在训练数据上测试网络(即sim命令)。 对于神经网络来说,这是一个“简单”的测试,应在继续之前首先进行。 然后,您可以使用测试数据对其进行测试(未对网络进行训练)。 这将显示网络是否已概括了它尝试学习的数据的形状。
验证也是帮助网络推广的另一个重要因素。 如果您查看Matlab神经网络训练窗口(nntraintool)并单击“性能”,则其中一张图应标记为“验证”。

关于您的具体问题:
1.我的网络正确吗? -不看数据集就很难说。
2.优化加热器的性能-在简单的水平上,您将具有单个输出神经元,该数字在0到1之间,表示加热器的性能。 然后,输入神经元包含任何其他涉及的参数。
但是现在,给定任何输入组合,网络都只能预测性能。 它无法告诉您哪些输入将为您提供最大的输出。 对于仅3个输入,分辨率/粒度较低,您可以尝试穷举/蛮力搜索。 否则,请研究遗传算法以快速找到一个好的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM