ÎncepețiÎncepe gratuit

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().

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

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Setează operația opt_1 să folosească o rată de învățare de 0,01 și un momentum de 0,99.
  • Setează opt_2 să 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 și x_2 ca array-uri numpy.

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(____, ____)
Editează și rulează codul