ComeçarComece de graça

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.

O gráfico é de uma função de variável única que contém múltiplos mínimos locais e um mínimo global.

Neste exercício, você tentará encontrar o mínimo global de loss_function() usando keras.optimizers.SGD(). Você fará isso duas vezes, cada uma com um valor inicial diferente para a entrada de loss_function(). Primeiro, você usará x_1, que é uma variável com valor inicial de 6.0. Depois, você usará x_2, que é uma variável com valor inicial de 0.3. Observe que loss_function() já foi definida e está disponível.

Este exercício faz parte do curso

Introdução ao TensorFlow em Python

Ver curso

Instruções do exercício

  • Defina opt para usar o otimizador stochastic gradient descent (SGD) com taxa de aprendizado de 0.01.
  • Realize a minimização usando a função de perda, loss_function(), e a variável com valor inicial de 6.0, x_1.
  • Realize a minimização usando a função de perda, loss_function(), e a variável com valor inicial de 0.3, x_2.
  • Imprima x_1 e x_2 como arrays numpy e verifique se os valores diferem. 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())
Editar e executar o código