Optimizador que implementa el algoritmo Adadelta.
La optimización de Adadelta es un método de descenso de gradiente estocástico que se basa en la tasa de aprendizaje adaptativo por dimensión para abordar dos inconvenientes:
- La continua disminución de las tasas de aprendizaje a lo largo de la formación.
- la necesidad de una tasa de aprendizaje global seleccionada manualmente
Adadelta es una extensión más sólida de Adagrad que adapta las tasas de aprendizaje en función de una ventana móvil de actualizaciones de gradientes, en lugar de acumular todos los gradientes anteriores. De esta manera, Adadelta continúa aprendiendo incluso cuando se han realizado muchas actualizaciones. En comparación con Adagrad, en la versión original de Adadelta no es necesario establecer una tasa de aprendizaje inicial. En esta versión, se puede establecer la tasa de aprendizaje inicial, como en la mayoría de los otros optimizadores.
Según la sección 4.3 ("Tasas de aprendizaje efectivas"), cerca del final del tamaño de los pasos de capacitación convergen a 1, lo que efectivamente es una tasa de aprendizaje alta que causaría divergencia. Esto ocurre solo cerca del final del entrenamiento, ya que los gradientes y los tamaños de paso son pequeños, y la constante épsilon en el numerador y denominador domina los gradientes anteriores y las actualizaciones de parámetros que hacen converger la tasa de aprendizaje a 1.
Según la sección 4.4 ("Datos de voz"), donde se entrenó una gran red neuronal con 4 capas ocultas en un corpus de datos en inglés de EE. UU., se utilizó ADADELTA con 100 réplicas de red. El épsilon utilizado es 1e-6 con rho=0,95, que convergió más rápido que ADAGRAD, mediante la siguiente construcción: new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
Constantes
Cadena | ACUMULADOR | |
Cadena | ACUMULADOR_ACTUALIZACIÓN | |
flotar | EPSILON_DEFAULT | |
flotar | APRENDIZAJE_RATE_DEFAULT | |
flotar | RHO_DEFAULT |
Constantes heredadas
Constructores Públicos
Métodos públicos
Cadena | getOptimizerName () Obtenga el nombre del optimizador. |
Cadena | Encadenar () |
Métodos heredados
Constantes
ACUMULADOR de cadena final estático público
Cadena final estática pública ACCUMULATOR_UPDATE
flotación final estática pública EPSILON_DEFAULT
flotación final estática pública LEARNING_RATE_DEFAULT
flotador final estático público RHO_DEFAULT
Constructores Públicos
público AdaDelta (gráfico gráfico , tasa de aprendizaje flotante)
Crea un optimizador AdaDelta
Parámetros
grafico | el gráfico de TensorFlow |
---|---|
tasa de aprendizaje | la tasa de aprendizaje |
public AdaDelta (gráfico gráfico , tasa de aprendizaje flotante, rho flotante, épsilon flotante)
Crea un optimizador AdaDelta
Parámetros
grafico | el gráfico de TensorFlow |
---|---|
tasa de aprendizaje | la tasa de aprendizaje |
rho | El factor de decadencia |
épsilon | Un épsilon constante utilizado para acondicionar mejor la actualización de graduación. |
public AdaDelta (gráfico gráfico , nombre de cadena, tasa de aprendizaje flotante)
Crea un optimizador AdaDelta
Parámetros
grafico | el gráfico de TensorFlow |
---|---|
nombre | el nombre de este Optimizador (el valor predeterminado es 'Adadelta') |
tasa de aprendizaje | la tasa de aprendizaje |
public AdaDelta ( gráfico , nombre de cadena, tasa de aprendizaje flotante, rho flotante, épsilon flotante)
Crea un optimizador AdaDelta
Parámetros
grafico | el gráfico de TensorFlow |
---|---|
nombre | el nombre de este Optimizador (el valor predeterminado es 'Adadelta') |
tasa de aprendizaje | la tasa de aprendizaje |
rho | El factor de decadencia |
épsilon | Un épsilon constante utilizado para acondicionar mejor la actualización de graduación. |
Métodos públicos
cadena pública getOptimizerName ()
Obtenga el nombre del optimizador.
Devoluciones
- El nombre del optimizador.