Zacznij terazZacznij za darmo

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.

The graph is of a single variable function that contains multiple local minima and a global minimum.

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw opt tak, 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, czyli x_1.
  • Przeprowadź minimalizację, używając funkcji straty loss_function() oraz zmiennej z wartością początkową 0,3, czyli x_2.
  • Wyświetl x_1 i x_2 jako tablice numpy i 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())
Edytuj i uruchom kod