Les dangers des minima locaux
Considérez le tracé de la fonction de perte suivante, loss_function(), qui comporte un minimum global, indiqué par le point à droite, et plusieurs minima locaux, dont celui indiqué par le point à gauche.

Dans cet exercice, vous tenterez de trouver le minimum global de loss_function() à l'aide de keras.optimizers.SGD(). Vous le ferez deux fois, chaque fois avec une valeur initiale différente de l'entrée de loss_function(). D'abord, vous utiliserez x_1, une variable dont la valeur initiale est 6.0. Ensuite, vous utiliserez x_2, une variable dont la valeur initiale est 0.3. Notez que loss_function() a été définie et est disponible.
Cette activité fait partie du cours
Introduction à TensorFlow en Python
Instructions de l’exercice
- Définissez
optpour utiliser l'optimiseur par descente de gradient stochastique (SGD) avec un taux d'apprentissage de 0.01. - Effectuez la minimisation en utilisant la fonction de perte
loss_function()et la variable dont la valeur initiale est 6.0,x_1. - Effectuez la minimisation en utilisant la fonction de perte
loss_function()et la variable dont la valeur initiale est 0.3,x_2. - Affichez
x_1etx_2sous forme de tableauxnumpyet vérifiez si les valeurs diffèrent. Ce sont les minima que l'algorithme a identifiés.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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())