Undvika lokala minima
Föregående problem visade hur lätt det är att fastna i lokala minima. Vi hade ett enkelt optimeringsproblem med en variabel, men gradient descent lyckades ändå inte hitta det globala minimumet när det krävdes att algoritmen passerade igenom lokala minima först. Ett sätt att undvika det här problemet är att använda momentum, vilket gör att optimeraren kan ta sig igenom lokala minima. Vi använder igen förlustfunktionen från föregående problem, som har definierats och är tillgänglig som loss_function().

Flera optimerare i tensorflow har en momentumparameter, bland annat SGD och RMSprop. I den här övningen använder du RMSprop. Notera att x_1 och x_2 har initierats till samma värde den här gången. Dessutom har keras.optimizers.RMSprop() redan importerats åt dig från tensorflow.
Den här övningen är en del av kursen
Introduktion till TensorFlow i Python
Övningsinstruktioner
- Ange att
opt_1ska använda en inlärningshastighet på 0,01 och ett momentum på 0,99. - Ange att
opt_2ska använda RMS-optimeraren (root mean square propagation) med en inlärningshastighet på 0,01 och ett momentum på 0,00. - Definiera minimeringsoperationen för
opt_2. - Skriv ut
x_1ochx_2somnumpy-arrayer.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____, ____)