Factor de aprendizaje dinámico Cuando se aplica el algoritmo de aprendizaje por gradiente descendente, se debe definir el factor de aprendizaje, que en principio se mantiene constante a través del entrenamiento. Los valores que adquieren los parámetros en el transcurso del tiempo son dependientes de las condiciones iniciales del factor de aprendizaje. Si el factor de aprendizaje es muy elevado, el algoritmo oscila y se convierte en inestable; si por el contrario es muy bajo, se tarda mucho en obtener el modelo. No es práctico definir el valor óptimo del factor de aprendizaje antes de comenzar a entrenar, dado que su valor óptimo cambia a través del proceso de entrenamiento. El aprendizaje puede mejorarse si el factor de aprendizaje es dinámico. El objetivo es tratar de mantener su valor tan alto como sea posible, manteniendo la estabilidad del algoritmo. Los pasos fundamentales para implementar un factor de aprendizaje dinámico son los siguientes: 1.- Actualizar los parámetros adaptables. 2.- Calcular el error medio cuadrático en una época. 3.- Si el error se incrementa por encima de un determinado porciento (típicamente el 5%): 4.- Si el error se reduce más de un determinado porciento (típicamente el 5%): 5.- En cualquier otro caso: Ejemplo de programa en Matlab El toolbox de redes neuronales implementa este método en la función que define una red basada en la retropropagación del error newff o feedforwardnet (versión más moderna). Para la primera: newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, BTF,BLF,PF,IPF,OPF,DDF) En el caso de aprendizaje secuencial (adaptación al presentar un patrón, ver entrenamiento secuencial o por lotes), se define a través del argumento: BLF = ' learngd' (Aprendizaje aplicando gradiente descendente) ' learngdm' (Aprendizaje aplicando gradiente descendente con momento)
Si se utiliza la segunda, sus propiedades se definen según: LP.lr - 0.01 (Factor de aprendizaje inicial) LP.mc - 0.95 (Momento) En el caso del entrenamiento por lotes (adaptación después de presentar todos los patrones), se define a través del argumento: BTF = ' traingd' (Aprendizaje aplicando gradiente descendente) ' traingdm' (Aprendizaje aplicando gradiente descendente con momento)
Otra alternativa es considerar que a medida que transcurre el tiempo cuando se obtiene el modelo, se reduce el error en la fase de entrenamiento. De acuerdo a ello, debe reducirse el factor de aprendizaje, para lo cual puede incorporarse un factor de reducción basado en una constante de tiempo. |