Я пытаюсь научиться использовать нейронные сети в 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, которые, как я ожидаю, будут меньше, чем 0,07.
Но вместо этого возвращается код Matlab:
TempPrSmpl =
0.3560 0.3560
Два вопроса:
Почему значение, возвращаемое из MATLAB больше, чем .07?
Почему из MATLAB не возвращаются два разных значения (одно для 5 и одно для 6)?