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.

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
Istruzioni dell'esercizio
- Imposta
optper 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_1ex_2come arraynumpye 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())