CommencerCommencer 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

Introduction à TensorFlow en Python

Afficher le cours

Instructions

  • 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 cet exemple de code.

# 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