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 do exercício
- Defina
optpara 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_1ex_2como matrizesnumpye 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 completando 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())