Kom igångKom igång gratis

Undvika lokala minima

Föregående problem visade hur lätt det är att fastna i lokala minima. Vi hade ett enkelt optimeringsproblem med en variabel, men gradient descent lyckades ändå inte hitta det globala minimumet när det krävdes att algoritmen passerade igenom lokala minima först. Ett sätt att undvika det här problemet är att använda momentum, vilket gör att optimeraren kan ta sig igenom lokala minima. Vi använder igen förlustfunktionen från föregående problem, som har definierats och är tillgänglig som loss_function().

The graph is of a single variable function that contains multiple local minima and a global minimum.

Flera optimerare i tensorflow har en momentumparameter, bland annat SGD och RMSprop. I den här övningen använder du RMSprop. Notera att x_1 och x_2 har initierats till samma värde den här gången. Dessutom har keras.optimizers.RMSprop() redan importerats åt dig från tensorflow.

Den här övningen är en del av kursen

Introduktion till TensorFlow i Python

Visa kurs

Övningsinstruktioner

  • Ange att opt_1 ska använda en inlärningshastighet på 0,01 och ett momentum på 0,99.
  • Ange att opt_2 ska använda RMS-optimeraren (root mean square propagation) med en inlärningshastighet på 0,01 och ett momentum på 0,00.
  • Definiera minimeringsoperationen för opt_2.
  • Skriv ut x_1 och x_2 som numpy-arrayer.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____, ____)
Redigera och kör kod