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.

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
Instrucciones del ejercicio
- Configura
optpara 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_1yx_2como arrays denumpyy 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())