Main Content

traingdx

Gradiente descendente con momento (inercia) y retropropagación de la tasa de aprendizaje adaptativo

Descripción

net.trainFcn = 'traingdx' establece la propiedad de red trainFcn.

[trainedNet,tr] = train(net,...) entrena la red con traingdx.

traingdx es una función de entrenamiento de red que actualiza los valores de peso y sesgo de acuerdo con el momento (inercia) del gradiente descendente y una tasa de aprendizaje adaptativo.

El entrenamiento se lleva a cabo según los parámetros de entrenamiento traingdx, que se muestran a continuación con sus valores predeterminados:

  • net.trainParam.epochs: número máximo de épocas que desea entrenar. El valor predeterminado es 1000.

  • net.trainParam.goal: objetivo de rendimiento. El valor predeterminado es 0.

  • net.trainParam.lr: tasa de aprendizaje. El valor predeterminado es 0.01.

  • net.trainParam.lr_inc: relación para aumentar la tasa de aprendizaje. El valor predeterminado es 1.05.

  • net.trainParam.lr_dec: relación para reducir la tasa de aprendizaje. El valor predeterminado es 0.7.

  • net.trainParam.max_fail: máximo de errores de validación. El valor predeterminado es 6.

  • net.trainParam.max_perf_inc: aumento máximo del rendimiento. El valor predeterminado es 1.04.

  • net.trainParam.mc: constante de momento. El valor predeterminado es 0.9.

  • net.trainParam.min_grad: gradiente mínimo de rendimiento. El valor predeterminado es 1e-5.

  • net.trainParam.show: épocas entre muestras (NaN cuando no hay muestras). El valor predeterminado es 25.

  • net.trainParam.showCommandLine: generar una salida en la línea de comandos. El valor predeterminado es false.

  • net.trainParam.showWindow: mostrar la interfaz gráfica del entrenamiento. El valor predeterminado es true.

  • net.trainParam.time: tiempo máximo de entrenamiento en segundos. El valor predeterminado es inf.

Argumentos de entrada

contraer todo

Red de entrada, especificada como un objeto de red. Para crear un objeto de red, use feedforwardnet o narxnet, por ejemplo.

Argumentos de salida

contraer todo

Red entrenada, devuelta como un objeto network.

Registro de entrenamiento (epoch y perf), devuelto como una estructura cuyos campos dependen de la función de entrenamiento de la red (net.NET.trainFcn). Puede incluir campos como los siguientes:

  • Funciones y parámetros de entrenamiento, división de datos y rendimiento

  • Índices de división de datos para conjuntos de entrenamiento, validación y prueba

  • Máscaras de división de datos para conjuntos de entrenamiento, validación y prueba

  • Número de épocas (num_epochs) y la mejor época (best_epoch)

  • Una lista de los nombres de estado de entrenamiento (states)

  • Los campos de cada nombre de estado que registra su valor durante el entrenamiento

  • Rendimientos de la mejor red (best_perf, best_vperf y best_tperf)

Más acerca de

contraer todo

Uso de la red

Puede crear una red estándar que use traingdx con feedforwardnet o cascadeforwardnet. Para preparar una red personalizada que se entrene con traingdx:

  1. Establezca net.trainFcn en 'traingdx'. Esto establece net.trainParam en los parámetros predeterminados de traingdx.

  2. Establezca las propiedades net.trainParam en los valores que desee.

En cualquier caso, llamar a train con la red resultante entrena la red con traingdx.

Para ver ejemplos, consulte help feedforwardnet y help cascadeforwardnet.

Algoritmos

La función traingdx combina la tasa de aprendizaje adaptativo y el entrenamiento de momento. Se invoca de la misma forma que traingda, pero tiene el coeficiente de momento mc como parámetro de entrenamiento adicional.

traingdx puede entrenar cualquier red, siempre y cuando su peso, entrada combinada y funciones de transferencia tengan funciones derivadas.

La retropropagación se utiliza para calcular las derivadas del rendimiento perf con respecto a las variables de peso y sesgo X. Cada variable se ajusta según el gradiente descendente con momento,

dX = mc*dXprev + lr*mc*dperf/dX

donde dXprev es el cambio anterior del peso o el sesgo.

Para cada época, si el rendimiento se reduce hacia el objetivo, la tasa de aprendizaje aumenta por el factor lr_inc. Si el rendimiento aumenta por más que el factor max_perf_inc, la tasa de aprendizaje se ajusta por el factor lr_dec y no se realiza el cambio que provocó el aumento del rendimiento.

El entrenamiento se detiene cuando tiene lugar alguna de estas condiciones:

  • Se ha alcanzado el número máximo de epochs (repeticiones).

  • Se ha sobrepasado el máximo de time.

  • El rendimiento se minimiza al goal.

  • El gradiente de rendimiento está por debajo de min_grad.

  • El rendimiento de validación (error de validación) ha aumentado más de max_fail veces desde la última vez que disminuyó (al utilizar la validación).

Historial de versiones

Introducido antes de R2006a

Consulte también

| | |