Pułapka minimów lokalnych
Przyjrzyj się wykresowi poniższej funkcji straty, loss_function(), która zawiera globalne minimum zaznaczone kropką po prawej stronie oraz kilka minimów lokalnych, w tym jedno zaznaczone kropką po lewej.

W tym ćwiczeniu spróbujesz znaleźć globalne minimum funkcji loss_function() za pomocą keras.optimizers.SGD(). Zrobisz to dwukrotnie – za każdym razem z inną wartością początkową argumentu funkcji straty. Najpierw użyjesz x_1, czyli zmiennej z wartością początkową 6,0. Następnie użyjesz x_2, czyli zmiennej z wartością początkową 0,3. Funkcja loss_function() jest już zdefiniowana i dostępna.
To ćwiczenie jest częścią kursu
Wprowadzenie do TensorFlow w Pythonie
Instrukcje do ćwiczenia
- Ustaw
opttak, aby korzystał z optymalizatora stochastycznego gradientu prostego (SGD) ze współczynnikiem uczenia równym 0,01. - Przeprowadź minimalizację, używając funkcji straty
loss_function()oraz zmiennej z wartością początkową 6,0, czylix_1. - Przeprowadź minimalizację, używając funkcji straty
loss_function()oraz zmiennej z wartością początkową 0,3, czylix_2. - Wyświetl
x_1ix_2jako tablicenumpyi sprawdź, czy ich wartości się różnią. To właśnie minima wskazane przez algorytm.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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())