ComeçarComece gratuitamente

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 vários 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 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

Ver Curso

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 e x_2 como matrizes numpy 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())
Editar e executar código