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.

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
Anleitung zur Übung
- Setze
optso, 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_1undx_2alsnumpy-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())