Ver fuente en GitHub

Optimizador que implementa el algoritmo Adadelta.

Hereda de: Optimizer

Ver alias

Alias ​​principales

tf.optimizers.Adadelta

Alias ​​de compatibilidad para la migración

Ver Guía de migración para más detalles.

tf.compat.v1.keras.optimizers.Adadelta

tf.keras.optimizers.Adadelta(
    learning_rate=0.001, rho=0.95, epsilon=1e-07, name='Adadelta',**kwargs
)

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 disminución continua de las tasas de aprendizaje a lo largo del entrenamiento.
  • La necesidad de una tasa de aprendizaje global seleccionada manualmente

Adadelta es una extensión más robusta 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 forma, Adadelta sigue 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 configurar la tasa de aprendizaje inicial, como en la mayoría de los otros optimizadores de Keras.

De acuerdo con la sección 4.3 (“Tasas de aprendizaje efectivas”), cerca del final del entrenamiento, los tamaños de los pasos convergen a 1, que es efectivamente 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 el denominador dominan los gradientes anteriores y las actualizaciones de parámetros que convergen la tasa de aprendizaje a 1.

De acuerdo con 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 usó ADADELTA con 100 réplicas de red. convergió más rápido que ADAGRAD, por la siguiente construcción: def en eso(yo, lr=1.0, rho=0.95, épsilon=1e-6, decaimiento=0., **kwargs):

argumentos
learning_rate A Tensorvalor de punto flotante, o un programa que es un tf.keras.optimizers.schedules.LearningRateSchedule. La tasa de aprendizaje. Para hacer coincidir la forma exacta en el documento original, use 1.0.
rho A Tensor o un valor de coma flotante. La tasa de descomposición.
epsilon A Tensor o un valor de coma flotante. Una épsilon constante utilizada para acondicionar mejor la actualización de grado.
name Nombre opcional prefix para las operaciones creadas al aplicar degradados. Predeterminado a "Adadelta".
**kwargs Argumentos de palabras clave. permitido ser uno de "clipnorm" o "clipvalue". "clipnorm" (flotante) recorta gradientes por norma; "clipvalue" (flotante) recorta degradados por valor.

Referencia:

aumenta
ValueError en caso de cualquier argumento inválido.