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. The 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