CommencezCommencez gratuitement

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.

Le graphique représente une fonction d'une seule variable qui comporte plusieurs minima locaux et un minimum global.

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

Voir le cours

Instructions de l’exercice

  • Définissez opt pour 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_1 et x_2 sous forme de tableaux numpy et 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())
Modifier et exécuter le code