Проектирование линейного прогнозирования

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

Определение формы волны

Здесь время определяется от 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');

Обратите внимание, насколько мала ошибка!

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