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.

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
Oefeninstructies
- Stel
optin 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_1enx_2alsnumpy-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())