Začněte nyníZačněte zdarma

Nástrahy lokálních minim

Podívej se na graf níže zobrazující funkci ztráty loss_function(), která obsahuje globální minimum označené tečkou vpravo a několik lokálních minim, včetně toho označeného tečkou vlevo.

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

V tomto cvičení se pokusíš najít globální minimum funkce loss_function() pomocí keras.optimizers.SGD(). Provedeš to dvakrát, pokaždé s jinou počáteční hodnotou vstupu funkce loss_function(). Nejprve použiješ x_1 – proměnnou s počáteční hodnotou 6,0. Poté použiješ x_2 – proměnnou s počáteční hodnotou 0,3. Funkce loss_function() je již definovaná a připravená k použití.

Toto cvičení je součástí kurzu

Úvod do TensorFlow v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Nastav opt tak, aby používal optimalizátor stochastického gradientního sestupu (SGD) s learning rate 0,01.
  • Proveď minimalizaci pomocí funkce ztráty loss_function() a proměnné s počáteční hodnotou 6,0, tedy x_1.
  • Proveď minimalizaci pomocí funkce ztráty loss_function() a proměnné s počáteční hodnotou 0,3, tedy x_2.
  • Vypiš x_1 a x_2 jako pole numpy a zkontroluj, zda se jejich hodnoty liší. To jsou minima, která algoritmus nalezl.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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())
Upravit a spustit kód