Линейное Предсказание Проекта

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

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

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

Разработка линейного слоя

Теперь функция newlind спроектирует линейный слой с одним нейроном, который предсказывает следующий временной интервал сигнала с учетом текущего и четырех прошлых значений.

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');

Заметьте, насколько маленькая ошибка!

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

Для просмотра документации необходимо авторизоваться на сайте