Evitar mínimos locales
El ejercicio anterior mostró lo fácil que es quedarse atascado en mínimos locales. Teníamos un problema de optimización sencillo en una variable y, aun así, el descenso por gradiente no logró alcanzar el mínimo global cuando antes había que atravesar mínimos locales. Una forma de evitar este problema es usar momentum, que permite al optimizador superar los mínimos locales. Vamos a reutilizar la función de pérdida del ejercicio anterior, que ya está definida y disponible como loss_function().

Varios optimizadores en tensorflow tienen un parámetro de momentum, como SGD y RMSprop. En este ejercicio usarás RMSprop. Ten en cuenta que x_1 y x_2 se han inicializado con el mismo valor esta vez. Además, keras.optimizers.RMSprop() también se ha importado por ti desde tensorflow.
Este ejercicio forma parte del curso
Introducción a TensorFlow en Python
Instrucciones del ejercicio
- Configura la operación
opt_1para usar una tasa de aprendizaje de 0.01 y un momentum de 0.99. - Configura
opt_2para usar el optimizador de propagación de la media cuadrática (RMS) con una tasa de aprendizaje de 0.01 y un momentum de 0.00. - Define la operación de minimización para
opt_2. - Imprime
x_1yx_2como arrays denumpy.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Initialize x_1 and x_2
x_1 = Variable(0.05,float32)
x_2 = Variable(0.05,float32)
# Define the optimization operation for opt_1 and opt_2
opt_1 = keras.optimizers.RMSprop(learning_rate=____, momentum=____)
opt_2 = ____
for j in range(100):
opt_1.minimize(lambda: loss_function(x_1), var_list=[x_1])
# Define the minimization operation for opt_2
____
# Print x_1 and x_2 as numpy arrays
print(____, ____)