CommencerCommencez gratuitement

Les dangers des minima locaux

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

Le graphe représente une fonction d’une variable qui comporte plusieurs minima locaux et un minimum global.

Dans cet exercice, vous allez essayer de trouver le minimum global de loss_function() en utilisant keras.optimizers.SGD(). Vous le ferez deux fois, avec à chaque fois une valeur initiale différente en entrée de loss_function(). D’abord, vous utiliserez x_1, qui est une variable initialisée à 6.0. Ensuite, vous utiliserez x_2, qui est une variable initialisée à 0.3. Notez que loss_function() a été définie et est disponible.

Cet exercice fait partie du cours

<cours>Introduction à TensorFlow en Python</cours>
Voir le cours

Instructions de l’exercice

  • Définissez opt pour utiliser l’optimiseur SGD (stochastic gradient descent) avec un taux d’apprentissage de 0.01.
  • Effectuez la minimisation en utilisant la fonction de perte loss_function() et la variable initialisée à 6.0, x_1.
  • Effectuez la minimisation en utilisant la fonction de perte loss_function() et la variable initialisée à 0.3, x_2.
  • Affichez x_1 et x_2 sous forme de tableaux numpy et vérifiez si les valeurs diffèrent. Ce sont les minima identifiés par l’algorithme.

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())
Modifier et exécuter le code