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 (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 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_fail
veces desde la última vez que disminuyó (al utilizar la validación).
Historial de versiones
Introducido antes de R2006a