Создание модели feedforwardnet в Matlab
Я хотел бы реализовать модель, которая работает следующим образом: он получает 3 входа, например - 1,2,3, и дает 1 вывод - число от 0 до 1 (включая 0 и 1). Модель представляет собой feedforwardnet- сначала она "тренируется" - она получает входные данные и результаты, а затем, основываясь на его обучении, может дать результат, когда даны только входные данные, например: один раз он получил 1,2, 3 и результат: 0, во второй раз он получил 2,3,4 и результат: 0, в третий раз он получил 3,4,5 и результат: 1. в четвертый раз он получил 4,5,6, но без результата - на основании исходя из своих знаний и алгоритма, он даст результат, скажем, 0,45.
Моя проблема заключается в том, что размер вектора входных данных и размер вектора результатов должны быть равны, поэтому вектор результатов должен содержать 3 элемента, когда мне нужен только 1 - поэтому я сделал все элементы одинаковыми, это означает: он получает [1 1 1] или [0 0 0] (надеюсь, он не разрушает сеть). В любом случае, это код моей модели - хорошо ли я его реализовал? потому что я не уверен...
% x1 is the input in the 1st case, x2 is the input in the 2nd case...
% t1 is the result in the 1st case, t2 is the result in the 2nd case...
net=feedforwardnet(1);
x1=[1 2 3];
t1=[0 0 0];
x2=[2 3 4];
t2=[0 0 0];
x3=[3 4 5];
t3=[1 1 1];
x4=[4 5 6];
net=train(net,x1,t1);
net=train(net,x2,t2);
net=train(net,x3,t3);
t4=net(x4)
1 ответ
Нет, его нужно обучить один раз, а несколько случаев следует поместить только в ОДНУ матрицу
the right program should be as follows:
x = [x1', x2', x3'];
t = [0 0 1];
net = train(net, x, t);
t4 = net(x4)