Evitarea minimelor locale
Exercițiul anterior a arătat cât de ușor este să rămâi blocat în minime locale. Am avut o problemă simplă de optimizare cu o singură variabilă, iar coborârea pe gradient tot nu a reușit să găsească minimul global atunci când a trebuit să treacă mai întâi prin minime locale. O modalitate de a evita această problemă este să folosești momentum, care îi permite optimizatorului să depășească minimele locale. Vom folosi din nou funcția de pierdere din exercițiul anterior, care a fost definită și îți este disponibilă ca loss_function().

Mai mulți optimizatori din tensorflow au un parametru momentum, printre care SGD și RMSprop. În acest exercițiu vei folosi RMSprop. Reține că x_1 și x_2 au fost inițializate cu aceeași valoare de această dată. De asemenea, keras.optimizers.RMSprop() a fost deja importat pentru tine din tensorflow.
Acest exercițiu face parte din cursul
Introducere în TensorFlow în Python
Instrucțiuni pentru exercițiu
- Setează operația
opt_1să folosească o rată de învățare de 0,01 și un momentum de 0,99. - Setează
opt_2să folosească optimizatorul root mean square propagation (RMS) cu o rată de învățare de 0,01 și un momentum de 0,00. - Definește operația de minimizare pentru
opt_2. - Afișează
x_1șix_2ca array-urinumpy.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____, ____)