เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

หลีกเลี่ยง Local Minima

แบบฝึกหัดก่อนหน้าแสดงให้เห็นว่าการติดอยู่ใน local minima นั้นเกิดขึ้นได้ง่ายเพียงใด แม้แต่ปัญหา optimization แบบง่ายที่มีตัวแปรเดียว gradient descent ก็ยังอาจหา global minimum ไม่พบหากต้องผ่าน local minima ก่อน วิธีหนึ่งที่ช่วยแก้ปัญหานี้คือการใช้ momentum ซึ่งช่วยให้ optimizer ก้าวข้าม local minima ได้ ในแบบฝึกหัดนี้จะใช้ฟังก์ชัน loss เดิมจากแบบฝึกหัดก่อน ซึ่งถูกกำหนดไว้แล้วในชื่อ loss_function()

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

Optimizer หลายตัวใน tensorflow มีพารามิเตอร์ momentum รวมถึง SGD และ RMSprop โดยในแบบฝึกหัดนี้จะใช้ RMSprop โปรดสังเกตว่า x_1 และ x_2 ถูกกำหนดค่าเริ่มต้นเป็นค่าเดียวกัน และ keras.optimizers.RMSprop() ได้ถูก import มาจาก tensorflow ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

TensorFlow เบื้องต้นใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดให้ opt_1 ใช้ learning rate เท่ากับ 0.01 และ momentum เท่ากับ 0.99
  • กำหนดให้ opt_2 ใช้ optimizer แบบ root mean square propagation (RMS) โดยมี learning rate เท่ากับ 0.01 และ momentum เท่ากับ 0.00
  • กำหนด minimization operation สำหรับ opt_2
  • แสดงผลค่า x_1 และ x_2 ในรูปแบบ numpy arrays

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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(____, ____)
แก้ไขและรันโค้ด