IniziaInizia gratis

I pericoli dei minimi locali

Considera il grafico della seguente funzione di perdita, loss_function(), che contiene un minimo globale, indicato dal punto a destra, e diversi minimi locali, incluso quello indicato dal punto a sinistra.

Il grafico mostra una funzione a variabile singola con più minimi locali e un minimo globale.

In questo esercizio proverai a trovare il minimo globale di loss_function() usando keras.optimizers.SGD(). Lo farai due volte, ogni volta con un valore iniziale diverso dell'input di loss_function(). Per prima cosa userai x_1, una variabile con valore iniziale 6.0. Poi userai x_2, una variabile con valore iniziale 0.3. Nota che loss_function() è già definita ed è disponibile.

Questo esercizio fa parte del corso

Introduzione a TensorFlow in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta opt per usare l'ottimizzatore stochastic gradient descent (SGD) con un learning rate di 0.01.
  • Esegui la minimizzazione usando la funzione di perdita, loss_function(), e la variabile con valore iniziale 6.0, x_1.
  • Esegui la minimizzazione usando la funzione di perdita, loss_function(), e la variabile con valore iniziale 0.3, x_2.
  • Stampa x_1 e x_2 come array numpy e verifica se i valori sono diversi. Questi sono i minimi identificati dall'algoritmo.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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())
Modifica ed esegui il codice