Main Content

narnet

Red neuronal autorregresiva no lineal

Descripción

ejemplo

narnet(feedbackDelays,hiddenSizes,feedbackMode,trainFcn) toma estos argumentos:

  • Vector fila de retardos de retroalimentación crecientes de valor 0 o positivos, feedbackDelays

  • Vector fila con uno o más tamaños de capas ocultas, hiddenSizes

  • Tipo de retroalimentación, feedbackMode

  • Función de entrenamiento, trainFcn

y devuelve una red neuronal NAR.

Puede entrenar redes neuronales NAR (autorregresivas no lineales) para predecir una serie de tiempo a partir de los valores anteriores de dicha serie.

Ejemplos

contraer todo

Entrene una red neuronal autorregresiva no lineal (NAR) y realice predicciones con datos nuevos de series de tiempo. La predicción de una secuencia de valores en una serie de tiempo también se conoce como predicción de pasos múltiples. Las redes de lazo cerrado pueden realizar predicciones de pasos múltiples. Cuando falta retroalimentación externa, las redes de lazo cerrado pueden seguir prediciendo mediante retroalimentación interna. En la predicción NAR, los valores futuros de una serie de tiempo se predicen solo a partir de valores anteriores de dicha serie.

Cargue los datos de predicción de la serie de tiempo sencilla.

T = simplenar_dataset;

Cree una red NAR. Defina los retardos de retroalimentación y el tamaño de las capas ocultas.

net = narnet(1:2,10);

Prepare los datos de series de tiempo utilizando preparets. Esta función desplaza automáticamente las series de tiempo de entrada y objetivo en el número de pasos necesarios para llenar los estados de entrada y retardo de capa iniciales.

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

La práctica recomendada es crear completamente la red en un lazo abierto y, después, transformar la red en un lazo cerrado para la predicción de pasos múltiples. Después, la red de lazo cerrado puede predecir tantos valores futuros como desee. Si simula la red neuronal solo en el modo de lazo cerrado, la red puede realizar tantas predicciones como unidades de tiempo hay en la serie de entrada.

Entrene la red NAR. La función train entrena la red en un lazo abierto (arquitectura paralela de serie), incluidos los pasos de validación y prueba.

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

Figure Neural Network Training (25-Jan-2024 15:35:44) contains an object of type uigridlayout.

Muestre la red entrenada.

view(net)

Calcule la salida de red Y, los estados de entrada finales Xf y los estados de capa finales Af de la red de lazo abierto a partir de la entrada de red Xs, los estados de entrada iniciales Xi y los estados de capa iniciales Ai.

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

Calcule el rendimiento de la red.

perf = perform(net,Ts,Y)
perf = 1.0100e-09

Para predecir la salida para las 20 unidades de tiempo siguientes, simule primero la red en el modo de lazo cerrado. Los estados de entrada Xf y los estados de capa Af finales de la red net de lazo abierto se convierten en los estados de entrada Xic y los estados de capa Aic iniciales de la red de lazo cerrado netc.

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

Muestre la red de lazo cerrado. La red consta solo de una entrada. En el modo de lazo cerrado, esta entrada conecta con la salida. Una conexión directa de salida retardada reemplaza la entrada objetivo retardada.

view(netc)

Para simular la red 20 unidades de tiempo hacia adelante, introduzca un arreglo de celdas vacío con una longitud de 20. La red solo requiere las condiciones iniciales dadas en Xic y Aic.

Yc = netc(cell(0,20),Xic,Aic)
Yc=1×20 cell array
    {[0.8346]}    {[0.3329]}    {[0.9084]}    {[1.0000]}    {[0.3190]}    {[0.7329]}    {[0.9801]}    {[0.6409]}    {[0.5146]}    {[0.9746]}    {[0.9077]}    {[0.2807]}    {[0.8651]}    {[0.9897]}    {[0.4093]}    {[0.6838]}    {[0.9976]}    {[0.7007]}    {[0.4311]}    {[0.9660]}

Argumentos de entrada

contraer todo

Retardos de retroalimentación cero o positivos, especificados como un vector fila creciente.

Tamaños de las capas ocultas, especificados como un vector fila de uno o más elementos.

Tipo de retroalimentación, especificado como 'open', 'closed' o 'none'.

Nombre de la función de entrenamiento, especificado como una de las siguientes opciones.

Función de entrenamientoAlgoritmo
'trainlm'

Levenberg-Marquardt

'trainbr'

Regularización bayesiana

'trainbfg'

BFGS quasi-Newton

'trainrp'

Retropropagación resiliente

'trainscg'

Gradiente conjugado escalado

'traincgb'

Gradiente conjugado con reinicios de Powell/Beale

'traincgf'

Gradiente conjugado de Fletcher-Powell

'traincgp'

Gradiente conjugado de Polak-Ribiére

'trainoss'

Secante de un paso

'traingdx'

Gradiente descendente de tasa de aprendizaje variable

'traingdm'

Gradiente descendente con momento

'traingd'

Gradiente descendente

Ejemplo: Por ejemplo, puede establecer el algoritmo de gradiente descendente de tasa de aprendizaje variable como el algoritmo de entrenamiento, de esta manera: 'traingdx'

Para obtener más información sobre las funciones de entrenamiento, consulte Train and Apply Multilayer Shallow Neural Networks y Choose a Multilayer Neural Network Training Function.

Tipos de datos: char

Historial de versiones

Introducido en R2010b