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.

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
Övningsinstruktioner
- Ställ in
optså 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_1ochx_2somnumpy-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())