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

Jak se vyhnout lokálním minimům

Předchozí příklad ukázal, jak snadno může optimizer uvíznout v lokálním minimu. Měli jsme jednoduchý optimalizační problém s jednou proměnnou, a přesto gradientní sestup nedokázal najít globální minimum, když bylo třeba nejprve překonat lokální minima. Jedním ze způsobů, jak tomuto problému předejít, je použití momentu, který optimizeru umožňuje lokální minima překonávat. Opět použijeme ztrátovou funkci z předchozího příkladu, která je k dispozici jako loss_function().

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

Několik optimizerů v tensorflow má parametr momentum, včetně SGD a RMSprop. V tomto cvičení využiješ RMSprop. Všimni si, že x_1 a x_2 jsou tentokrát inicializovány na stejnou hodnotu. keras.optimizers.RMSprop() je za tebe již importován z tensorflow.

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

Úvod do TensorFlow v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Nastav operaci opt_1 tak, aby používala learning rate 0,01 a momentum 0,99.
  • Nastav opt_2 tak, aby používal optimizer RMSprop s learning rate 0,01 a momentem 0,00.
  • Definuj operaci minimalizace pro opt_2.
  • Vypiš x_1 a x_2 jako pole numpy.

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(0.05,float32)
x_2 = Variable(0.05,float32)

# Define the optimization operation for opt_1 and opt_2
opt_1 = keras.optimizers.RMSprop(learning_rate=____, momentum=____)
opt_2 = ____

for j in range(100):
	opt_1.minimize(lambda: loss_function(x_1), var_list=[x_1])
    # Define the minimization operation for opt_2
	____

# Print x_1 and x_2 as numpy arrays
print(____, ____)
Upravit a spustit kód