ComenzarEmpieza gratis

Los peligros de los mínimos locales

Observa el gráfico de la siguiente función de pérdida, loss_function(), que contiene un mínimo global, marcado por el punto de la derecha, y varios mínimos locales, incluido el marcado por el punto de la izquierda.

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

En este ejercicio, intentarás encontrar el mínimo global de loss_function() usando keras.optimizers.SGD(). Lo harás dos veces, cada una con un valor inicial distinto para la entrada de loss_function(). Primero, usarás x_1, que es una variable con valor inicial 6.0. Después, usarás x_2, que es una variable con valor inicial 0.3. Ten en cuenta que loss_function() ya está definida y disponible.

Este ejercicio forma parte del curso

Introducción a TensorFlow en Python

Ver curso

Instrucciones del ejercicio

  • Configura opt para usar el optimizador de descenso de gradiente estocástico (SGD) con una tasa de aprendizaje de 0.01.
  • Realiza la minimización usando la función de pérdida, loss_function(), y la variable con valor inicial 6.0, x_1.
  • Realiza la minimización usando la función de pérdida, loss_function(), y la variable con valor inicial 0.3, x_2.
  • Imprime x_1 y x_2 como arrays de numpy y comprueba si los valores difieren. Estos son los mínimos que identificó el algoritmo.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Initialize x_1 and x_2
x_1 = Variable(6.0,float32)
x_2 = Variable(0.3,float32)

# Define the optimization operation
opt = keras.optimizers.____(learning_rate=____)

for j in range(100):
	# Perform minimization using the loss function and x_1
	opt.minimize(lambda: loss_function(____), var_list=[____])
	# Perform minimization using the loss function and x_2
	opt.minimize(lambda: ____, var_list=[____])

# Print x_1 and x_2 as numpy arrays
print(____.numpy(), ____.numpy())
Editar y ejecutar código