ComenzarEmpieza gratis

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().

La gráfica corresponde a una función de una sola variable que contiene múltiples mínimos locales y un mínimo global.

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

Ver curso

Instrucciones del ejercicio

  • Configura la operación opt_1 para usar una tasa de aprendizaje de 0.01 y un momentum de 0.99.
  • Configura opt_2 para 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_1 y x_2 como arrays de numpy.

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(____, ____)
Editar y ejecutar código