我正在尝试学习如何在MATLAB中使用神经网络,并且从一个简单的示例开始,该示例使用了四个数据点,并将它们分为两个行向量。其中之一是输入,另一个是温度。输入向量是1到4之间的向量。 接下来,我运行一些从示例中发现的神经网络编码。现在,我想让神经网络预测作为行向量[5 6]的样本输入向量的结果。
clear all
clc
Input = [1,2,3,4];
Temp = [.25,.15,.1,.07];
Smpl = [5,6]
net = newff(minmax(Input),[20,1],{'logsig','purelin','trainlm'})
net.trainparam.epochs = 500;
net.trainparam.goal = 1e-25;
net.trainparam.lr = .01;
net = train(net,Input,Temp)
TempPr = net(Input)
error = TempPr - Temp
TempPrSmpl = net(Smpl)
由神经网络生成的行向量TempPr与目标向量Temp完全匹配。但是,看来我无法正确预测值。例如,我尝试预测输入5和6的温度值,我希望它们小于.07。 但是相反,matlab代码返回了:
TempPrSmpl =
0.3560 0.3560
两个问题: 为什么从MATLAB返回的值大于.07? 为什么没有从MATLAB返回两个不同的值(一个为5,一个为6)?