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.
[ entrena la red con trainedNet,tr] = train(net,...)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 es6.net.trainParam.max_perf_inc: aumento máximo del rendimiento. El valor predeterminado es1.04.net.trainParam.mc: constante de momento. El valor predeterminado es0.9.net.trainParam.min_grad: gradiente mínimo de rendimiento. El valor predeterminado es1e-5.net.trainParam.show: épocas entre muestras (NaNcuando no hay muestras). El valor predeterminado es 25.net.trainParam.showCommandLine: generar una salida en la línea de comandos. El valor predeterminado esfalse.net.trainParam.showWindow: mostrar la interfaz gráfica del entrenamiento. El valor predeterminado estrue.net.trainParam.time: tiempo máximo de entrenamiento en segundos. El valor predeterminado esinf.
Argumentos de entrada
Argumentos de salida
Más acerca de
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_failveces desde la última vez que disminuyó (al utilizar la validación).
Historial de versiones
Introducido antes de R2006a