Этот пример иллюстрирует, как сконструировать линейный нейрон, чтобы предсказать следующее значение во временном ряду, учитывая последние пять значений.
Здесь время определяется от 0 до 5 секунд с шагом 1/40 секунды.
time = 0:0.025:5;
Мы можем определить сигнал относительно времени.
signal = sin(time*4*pi); plot(time,signal) xlabel('Time'); ylabel('Signal'); title('Signal to be Predicted');

Затем преобразование сигнала преобразуется в матрицу ячеек. Нейронные сети представляют временные интервалы в виде столбцов массива ячеек, выделяют их из различных выборок в данный момент времени, которые представлены столбцами матриц.
signal = con2seq(signal);
Для решения проблемы мы будем использовать первые четыре значения сигнала в качестве начальных состояний задержки на входе, а остальные, за исключением последнего шага, - в качестве входов.
Xi = signal(1:4); X = signal(5:(end-1)); timex = time(5:(end-1));
Цели теперь определены так, чтобы соответствовать входам, но сдвинуты раньше на один временной интервал.
T = signal(6:end);
Функция новой связи теперь будет конструировать линейный слой с одним нейроном, который предсказывает следующий временной интервал сигнала, учитывая текущее и четыре прошлых значения.
net = newlind(X,T,Xi); view(net)

Сеть теперь может быть вызвана как функция на входах и отложенных состояниях, чтобы получить свой временной отклик.
Y = net(X,Xi);
Выходной сигнал наносится на график вместе с целями.
figure plot(timex,cell2mat(Y),timex,cell2mat(T),'+') xlabel('Time'); ylabel('Output - Target +'); title('Output and Target Signals');

Ошибка также может быть выведена на печать.
figure E = cell2mat(T)-cell2mat(Y); plot(timex,E,'r') hold off xlabel('Time'); ylabel('Error'); title('Error Signal');

Обратите внимание, насколько мала ошибка!
Этот пример иллюстрирует, как сконструировать динамическую линейную сеть, которая может предсказать следующее значение сигнала по текущим и прошлым значениям.