exponenta event banner

narnet

Нелинейная авторегрессионная нейронная сеть

Синтаксис

narnet(feedbackDelays,hiddenSizes,feedbackMode,trainFcn)

Описание

NAR (нелинейные авторегрессионные) нейронные сети могут быть обучены предсказывать временной ряд из прошлых значений этого ряда.

narnet(feedbackDelays,hiddenSizes,feedbackMode,trainFcn) принимает следующие аргументы и возвращает нейронную сеть NAR.

feedbackDelays

Вектор строки с увеличением 0 или положительными задержками (по умолчанию = 1:2)

hiddenSizes

Вектор строки одного или нескольких скрытых размеров слоя (по умолчанию = 10)

feedbackModeЗначение 'open', 'closed', или 'none' (по умолчанию: 'open')
trainFcn

Функция обучения (по умолчанию - 'trainlm')

Примеры

свернуть все

Обучить нелинейную авторегрессионную (NAR) нейронную сеть и прогнозировать на новых данных временных рядов. Предсказание последовательности значений во временном ряду также известно как многоступенчатое предсказание. Замкнутые сети могут выполнять многоступенчатые прогнозы. Когда внешняя обратная связь отсутствует, замкнутые сети могут продолжать прогнозировать, используя внутреннюю обратную связь. При предсказании NAR будущие значения временного ряда прогнозируются только из прошлых значений этого ряда.

Загрузите простые данные прогнозирования временных рядов.

T = simplenar_dataset;

Создание сети NAR. Определите задержки обратной связи и размер скрытых слоев.

net = narnet(1:2,10);

Подготовка данных временных рядов с использованием preparets. Эта функция автоматически сдвигает входные и целевые временные ряды на количество шагов, необходимых для заполнения начального состояния задержки ввода и уровня.

[Xs,Xi,Ai,Ts] = preparets(net,{},{},T);

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

Обучение сети NAR. train функция направляет сеть в разомкнутом контуре (последовательная параллельная архитектура), включая этапы проверки и тестирования.

net = train(net,Xs,Ts,Xi,Ai);

Просмотрите обученную сеть.

view(net)

Расчет сетевого выхода Y, окончательные входные состояния Xfи окончательные состояния слоев Af сети с разомкнутым контуром от сетевого входа Xs, начальные входные состояния Xiи начальные состояния слоев Ai.

[Y,Xf,Af] = net(Xs,Xi,Ai);

Вычислите производительность сети.

perf = perform(net,Ts,Y)
perf =

   1.0100e-09

Чтобы спрогнозировать выходные данные для следующих 20 шагов времени, сначала смоделируйте сеть в режиме замкнутого цикла. Конечные входные состояния Xf и состояния слоев Af сети с разомкнутым контуром net стать начальными входными состояниями Xic и состояния слоев Aic замкнутой сети netc.

[netc,Xic,Aic] = closeloop(net,Xf,Af);

Отображение сети с замкнутым контуром. Сеть имеет только один вход. В режиме с замкнутым контуром этот вход подключается к выходу. Соединение прямого задержанного выхода заменяет задержанный целевой вход.

view(netc)

Чтобы имитировать сеть на 20 шагов вперед, введите пустой массив ячеек длиной 20. Для сети требуются только начальные условия, указанные в Xic и Aic.

Yc = netc(cell(0,20),Xic,Aic)
Yc =

  1x20 cell array

  Columns 1 through 5

    {[0.8346]}    {[0.3329]}    {[0.9084]}    {[1.0000]}    {[0.3190]}

  Columns 6 through 10

    {[0.7329]}    {[0.9801]}    {[0.6409]}    {[0.5146]}    {[0.9746]}

  Columns 11 through 15

    {[0.9077]}    {[0.2807]}    {[0.8651]}    {[0.9897]}    {[0.4093]}

  Columns 16 through 20

    {[0.6838]}    {[0.9976]}    {[0.7007]}    {[0.4311]}    {[0.9660]}

Представлен в R2010b