MulaiMulai sekarang secara gratis

Menghindari local minima

Soal sebelumnya menunjukkan betapa mudahnya terjebak pada local minima. Kita memiliki masalah optimasi sederhana dengan satu variabel, dan gradient descent tetap gagal menemukan global minimum ketika harus melewati local minima terlebih dahulu. Salah satu cara untuk menghindari masalah ini adalah menggunakan momentum, yang memungkinkan optimizer menembus local minima. Kita akan kembali menggunakan fungsi loss dari soal sebelumnya, yang telah didefinisikan dan tersedia untuk Anda sebagai loss_function().

Grafik fungsi satu variabel yang memiliki beberapa local minima dan satu global minimum.

Beberapa optimizer di tensorflow memiliki parameter momentum, termasuk SGD dan RMSprop. Anda akan menggunakan RMSprop pada latihan ini. Perhatikan bahwa x_1 dan x_2 kali ini diinisialisasi dengan nilai yang sama. Selain itu, keras.optimizers.RMSprop() juga telah diimpor untuk Anda dari tensorflow.

Latihan ini adalah bagian dari kursus

Pendahuluan TensorFlow di Python

Lihat Kursus

Petunjuk latihan

  • Atur operasi opt_1 untuk menggunakan learning rate 0.01 dan momentum 0.99.
  • Atur opt_2 untuk menggunakan optimizer root mean square propagation (RMS) dengan learning rate 0.01 dan momentum 0.00.
  • Definisikan operasi minimization untuk opt_2.
  • Cetak x_1 dan x_2 sebagai array numpy.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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(____, ____)
Edit dan Jalankan Kode