Os perigos dos mínimos locais
Considere o gráfico da seguinte função de perda, loss_function()
, que contém um mínimo global, marcado pelo ponto à direita, e vários mínimos locais, incluindo o marcado pelo ponto à esquerda.
Neste exercício, você tentará encontrar o mínimo global de loss_function()
usando keras.optimizers.SGD()
. Você fará isso duas vezes, cada vez com um valor inicial diferente da entrada para loss_function()
. Primeiro, você usará x_1
, que é uma variável com um valor inicial de 6,0. Em segundo lugar, você usará x_2
, que é uma variável com um valor inicial de 0,3. Observe que o site loss_function()
foi definido e está disponível.
Este exercício faz parte do curso
Introdução ao TensorFlow em Python
Instruções de exercício
- Defina
opt
para usar o otimizador de descida de gradiente estocástico (SGD) com uma taxa de aprendizado de 0,01. - Faça a minimização usando a função de perda,
loss_function()
, e a variável com um valor inicial de 6,0,x_1
. - Faça a minimização usando a função de perda,
loss_function()
, e a variável com um valor inicial de 0,3,x_2
. - Imprima
x_1
ex_2
como matrizesnumpy
e verifique se os valores são diferentes. Esses são os mínimos que o algoritmo identificou.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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())