LoslegenKostenlos loslegen

Die Tücken lokaler Minima

Betrachte die Grafik der folgenden Verlustfunktion loss_function(), die ein globales Minimum (markiert durch den Punkt rechts) und mehrere lokale Minima enthält, darunter das durch den Punkt links markierte.

Das Diagramm zeigt eine eindimensionale Funktion mit mehreren lokalen Minima und einem globalen Minimum.

In dieser Übung versuchst du, das globale Minimum von loss_function() mit keras.optimizers.SGD() zu finden. Du machst das zweimal, jeweils mit einem anderen Startwert für die Eingabe von loss_function(). Zuerst verwendest du x_1, eine Variable mit dem Anfangswert 6.0. Danach verwendest du x_2, eine Variable mit dem Anfangswert 0.3. Beachte, dass loss_function() bereits definiert ist und zur Verfügung steht.

Diese Übung ist Teil des Kurses

Einführung in TensorFlow mit Python

Kurs anzeigen

Anleitung zur Übung

  • Setze opt so, dass der Optimierer Stochastic Gradient Descent (SGD) mit einer Lernrate von 0.01 verwendet wird.
  • Führe die Minimierung mit der Verlustfunktion loss_function() und der Variable mit dem Anfangswert 6.0, x_1, durch.
  • Führe die Minimierung mit der Verlustfunktion loss_function() und der Variable mit dem Anfangswert 0.3, x_2, durch.
  • Gib x_1 und x_2 als numpy-Arrays aus und prüfe, ob sich die Werte unterscheiden. Das sind die Minima, die der Algorithmus gefunden hat.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen