Aan de slagGa gratis aan de slag

De gevaren van lokale minima

Bekijk de grafiek van de volgende verliesfunctie, loss_function(), met een globaal minimum (aangegeven met de stip rechts) en meerdere lokale minima, waaronder het minimum met de stip links.

De grafiek toont een eendimensionale functie met meerdere lokale minima en één globaal minimum.

In deze oefening ga je het globale minimum van loss_function() proberen te vinden met keras.optimizers.SGD(). Dat doe je twee keer, telkens met een andere beginwaarde voor de invoer van loss_function(). Eerst gebruik je x_1, een variabele met beginwaarde 6.0. Daarna gebruik je x_2, een variabele met beginwaarde 0.3. Let op: loss_function() is al gedefinieerd en beschikbaar.

Deze oefening maakt deel uit van de cursus

Introductie tot TensorFlow in Python

Cursus bekijken

Oefeninstructies

  • Stel opt in op de stochastic gradient descent-optimizer (SGD) met een learning rate van 0.01.
  • Voer minimalisatie uit met de verliesfunctie loss_function() en de variabele met beginwaarde 6.0, x_1.
  • Voer minimalisatie uit met de verliesfunctie loss_function() en de variabele met beginwaarde 0.3, x_2.
  • Print x_1 en x_2 als numpy-arrays en controleer of de waarden verschillen. Dit zijn de minima die het algoritme heeft gevonden.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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())
Code bewerken en uitvoeren