ÎncepețiÎncepe gratuit

Pericolele minimelor locale

Analizează graficul următoarei funcții de pierdere, loss_function(), care conține un minim global, marcat cu un punct în dreapta, și mai multe minime locale, inclusiv cel marcat cu un punct în stânga.

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

În acest exercițiu, vei încerca să găsești minimul global al funcției loss_function() folosind keras.optimizers.SGD(). Vei face acest lucru de două ori, de fiecare dată cu o valoare inițială diferită a intrării în loss_function(). Mai întâi vei folosi x_1, o variabilă cu valoarea inițială 6.0. Apoi vei folosi x_2, o variabilă cu valoarea inițială 0.3. Reține că loss_function() a fost deja definită și este disponibilă.

Acest exercițiu face parte din cursul

Introducere în TensorFlow în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Setează opt să folosească optimizatorul de tip gradient descendent stochastic (SGD) cu o rată de învățare de 0.01.
  • Efectuează minimizarea folosind funcția de pierdere loss_function() și variabila cu valoarea inițială 6.0, x_1.
  • Efectuează minimizarea folosind funcția de pierdere loss_function() și variabila cu valoarea inițială 0.3, x_2.
  • Afișează x_1 și x_2 ca tablouri numpy și verifică dacă valorile diferă. Acestea sunt minimele identificate de algoritm.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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