ComeçarComece gratuitamente

Evitar mínimos locais

O problema anterior mostrou como é fácil ficar preso em mínimos locais. Tínhamos um problema de otimização simples em uma variável e a descida do gradiente ainda não conseguiu atingir o mínimo global quando tivemos que percorrer os mínimos locais primeiro. Uma maneira de evitar esse problema é usar o momentum, que permite que o otimizador ultrapasse os mínimos locais. Usaremos novamente a função de perda do problema anterior, que foi definida e está disponível para você em loss_function().

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

Vários otimizadores em tensorflow têm um parâmetro de momentum, incluindo SGD e RMSprop. Você usará o site RMSprop neste exercício. Observe que x_1 e x_2 foram inicializados com o mesmo valor desta vez. Além disso, keras.optimizers.RMSprop() também foi importado para você de tensorflow.

Este exercício faz parte do curso

Introdução ao TensorFlow em Python

Ver Curso

Instruções de exercício

  • Defina a operação opt_1 para usar uma taxa de aprendizado de 0,01 e um momento de 0,99.
  • Defina o site opt_2 para usar o otimizador de propagação de raiz quadrada média (RMS) com uma taxa de aprendizado de 0,01 e um momentum de 0,00.
  • Defina a operação de minimização para opt_2.
  • Imprima x_1 e x_2 como matrizes numpy.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# Initialize x_1 and x_2
x_1 = Variable(0.05,float32)
x_2 = Variable(0.05,float32)

# Define the optimization operation for opt_1 and opt_2
opt_1 = keras.optimizers.RMSprop(learning_rate=____, momentum=____)
opt_2 = ____

for j in range(100):
	opt_1.minimize(lambda: loss_function(x_1), var_list=[x_1])
    # Define the minimization operation for opt_2
	____

# Print x_1 and x_2 as numpy arrays
print(____, ____)
Editar e executar código