Kom igångKom igång gratis

Riskerna med lokala minima

Betrakta grafen över följande förlustfunktion, loss_function(), som innehåller ett globalt minimum markerat med punkten till höger, samt flera lokala minima – däribland det som är markerat med punkten till vänster.

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

I den här övningen ska du försöka hitta det globala minimumet för loss_function() med hjälp av keras.optimizers.SGD(). Du gör detta två gånger, varje gång med ett olika startvärde för indata till loss_function(). Först använder du x_1, en variabel med startvärdet 6,0. Sedan använder du x_2, en variabel med startvärdet 0,3. Notera att loss_function() redan är definierad och tillgänglig.

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

Introduktion till TensorFlow i Python

Visa kurs

Övningsinstruktioner

  • Ställ in opt så att den använder optimeringsalgoritmen stokastisk gradientnedstigning (SGD) med en inlärningshastighet på 0,01.
  • Utför minimering med förlustfunktionen loss_function() och variabeln med startvärdet 6,0, x_1.
  • Utför minimering med förlustfunktionen loss_function() och variabeln med startvärdet 0,3, x_2.
  • Skriv ut x_1 och x_2 som numpy-arrayer och kontrollera om värdena skiljer sig åt. Det är dessa minima som algoritmen har identifierat.

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