Matlab神经网络建议



我目前正在进行一个使用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已弃用

(B) 绘制训练、测试数据和网络结果,使其更容易可视化。

(C) 通过写作[2020 20],你的人际网络有三个隐藏层。绝大多数问题只需要一个隐藏层。只有在所有其他途径都已用尽的情况下,才应转移到多个隐藏层。

(D) 首先在训练数据上测试网络(即sim命令)。这对神经网络来说是一个"简单"的测试,在你继续之前应该先开始工作。然后你可以用测试数据(网络没有经过训练)来测试它。这将显示网络是否已经概括了它试图学习的数据的形状
验证也是帮助网络泛化的另一个重要因素。如果你查看matlab神经网络训练窗口(nntraintool)并点击"性能",其中一张图应该标记为"验证"。

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

最新更新