narxnet

Нелинейная авторегрессивная нейронная сеть с внешним входом

Описание

пример

narxnet(inputDelays,feedbackDelays,hiddenSizes,feedbackMode,trainFcn) берет эти аргументы:

  • Вектор-строка из увеличения 0 или положительных входных задержек, inputDelays

  • Вектор-строка из увеличения 0 или задержек положительной обратной связи, feedbackDelays

  • Вектор-строка из одного или нескольких размеров скрытого слоя, hiddenSizes

  • Тип обратной связи, feedbackMode

  • Функция обучения обратной связи, trainFcn

и возвращает нейронную сеть NARX.

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

Примеры

свернуть все

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

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

[X,T] = simpleseries_dataset;

Разделите данные в обучающие данные XTrain и TTrain, и данные для предсказания XPredict. Используйте XPredict выполнять предсказание после того, как вы создаете сеть с обратной связью.

XTrain = X(1:80);
TTrain = T(1:80);
XPredict = X(81:100);

Создайте сеть NARX. Задайте входные задержки, задержки обратной связи и размер скрытых слоев.

net = narxnet(1:2,1:2,10);

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

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

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

Обучите сеть NARX. 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 =

    0.0153

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

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

Отобразите сеть с обратной связью.

view(netc)

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

Yc = netc(XPredict,Xic,Aic)
Yc =

  1x20 cell array

  Columns 1 through 5

    {[-0.0156]}    {[0.1133]}    {[-0.1472]}    {[-0.0706]}    {[0.0355]}

  Columns 6 through 10

    {[-0.2829]}    {[0.2047]}    {[-0.3809]}    {[-0.2836]}    {[0.1886]}

  Columns 11 through 15

    {[-0.1813]}    {[0.1373]}    {[0.2189]}    {[0.3122]}    {[0.2346]}

  Columns 16 through 20

    {[-0.0156]}    {[0.0724]}    {[0.3395]}    {[0.1940]}    {[0.0757]}

Входные параметры

свернуть все

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

Нулевая или положительная обратная связь задерживается в виде увеличивающегося вектора-строки.

Размеры скрытых слоев в виде вектора-строки из одного или нескольких элементов.

Тип обратной связи в виде любого 'open', 'closed', или 'none'.

Учебное имя функции в виде одного из следующих.

Учебная функцияАлгоритм
'trainlm'

Levenberg-Marquardt

'trainbr'

Байесова регуляризация

'trainbfg'

Квазиньютон BFGS

'trainrp'

Устойчивая обратная связь

'trainscg'

Масштабированный метод сопряженных градиентов

'traincgb'

Метод сопряженных градиентов с Перезапусками Powell/Beale

'traincgf'

Метод сопряженных градиентов Флетчера-Пауэлла

'traincgp'

Метод сопряженных градиентов Полака-Рибиера

'trainoss'

Один секанс шага

'traingdx'

Переменный градиентный спуск скорости обучения

'traingdm'

Градиентный спуск с импульсом

'traingd'

Градиентный спуск

Пример: Например, можно задать переменный алгоритм градиентного спуска скорости обучения как алгоритм настройки можно следующим образом: 'traingdx'

Для получения дополнительной информации об учебных функциях смотрите, Обучают и Применяют Многоуровневые Мелкие Нейронные сети и Выбирают Multilayer Neural Network Training Function.

Типы данных: char

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