Los peligros de los mínimos locales
Considera 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()
utilizando keras.optimizers.SGD()
. Harás esto dos veces, cada vez con un valor inicial diferente de la entrada a loss_function()
. En primer lugar, utilizarás x_1
, que es una variable con un valor inicial de 6,0. En segundo lugar, utilizarás x_2
, que es una variable con un valor inicial de 0,3. Ten en cuenta que loss_function()
se ha definido y está disponible.
Este ejercicio forma parte del curso
Introducción a TensorFlow en Python
Instrucciones de ejercicio
- Configura
opt
para utilizar el optimizador de descenso de gradiente estocástico (SGD) con una tasa de aprendizaje de 0,01. - Realiza la minimización utilizando la función de pérdida,
loss_function()
, y la variable con un valor inicial de 6,0,x_1
. - Realiza la minimización utilizando la función de pérdida,
loss_function()
, y la variable con un valor inicial de 0,3,x_2
. - Imprime
x_1
yx_2
como matricesnumpy
y comprueba si los valores difieren. Estos son los mínimos que identificó el algoritmo.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este 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())