59 votos

Optimizador Adam con decaimiento exponencial

En la mayoría del código de Tensorflow que he visto se utiliza Adam Optimizer con una tasa de aprendizaje constante de 1e-4 (es decir, 0,0001). El código suele tener el siguiente aspecto:

...build the model...
# Add the optimizer
train_op = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
# Add the ops to initialize variables.  These will include 
# the optimizer slots added by AdamOptimizer().
init_op = tf.initialize_all_variables()

# launch the graph in a session
sess = tf.Session()
# Actually intialize the variables
sess.run(init_op)
# now train your model
for ...:
  sess.run(train_op)

Me pregunto si es útil utilizar el decaimiento exponencial cuando se utiliza el optimizador adam, es decir, utilizar el siguiente Código:

...build the model...
# Add the optimizer
step = tf.Variable(0, trainable=False)
rate = tf.train.exponential_decay(0.15, step, 1, 0.9999)
optimizer = tf.train.AdamOptimizer(rate).minimize(cross_entropy, global_step=step)
# Add the ops to initialize variables.  These will include 
# the optimizer slots added by AdamOptimizer().
init_op = tf.initialize_all_variables()

# launch the graph in a session
sess = tf.Session()
# Actually intialize the variables
sess.run(init_op)
# now train your model
for ...:
  sess.run(train_op)

Por lo general, la gente utiliza algún tipo de decaimiento de la tasa de aprendizaje, para Adán parece poco común. ¿Hay alguna razón teórica para ello? ¿Puede ser útil combinar el optimizador Adam con el decaimiento?

1voto

nunya Puntos 21

El decaimiento de la tasa de aprendizaje en el Adam es el mismo que en el RSMProp(como se puede ver en esta respuesta ), y que se basa sobre todo en la magnitud de los gradientes anteriores para descargar las oscilaciones . Así que el decaimiento exponencial (para una tasa de aprendizaje decreciente a lo largo del proceso de entrenamiento) puede ser adoptado al mismo tiempo. Todos decaen la tasa de aprendizaje pero para diferentes propósitos .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X