อันตรายของค่าต่ำสุดเฉพาะที่
พิจารณากราฟของฟังก์ชันการสูญเสีย loss_function() ด้านล่าง ซึ่งมีค่าต่ำสุดสัมบูรณ์ (global minimum) ที่แสดงด้วยจุดทางขวา และค่าต่ำสุดเฉพาะที่ (local minima) อีกหลายจุด รวมถึงจุดที่แสดงทางซ้าย

ในแบบฝึกหัดนี้ จะลองค้นหาค่าต่ำสุดสัมบูรณ์ของ loss_function() โดยใช้ keras.optimizers.SGD() โดยทดลองสองครั้ง แต่ละครั้งใช้ค่าเริ่มต้นของอินพุตที่ต่างกัน ครั้งแรกใช้ x_1 ซึ่งเป็นตัวแปรที่มีค่าเริ่มต้นเป็น 6.0 และครั้งที่สองใช้ x_2 ซึ่งมีค่าเริ่มต้นเป็น 0.3 โดย loss_function() ได้ถูกกำหนดไว้แล้วและพร้อมใช้งาน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
TensorFlow เบื้องต้นใน Python
คำแนะนำการฝึกหัด
- กำหนดให้
optใช้ตัวปรับค่า stochastic gradient descent (SGD) ที่มีอัตราการเรียนรู้เป็น 0.01 - ทำการ minimization โดยใช้ฟังก์ชันการสูญเสีย
loss_function()และตัวแปรที่มีค่าเริ่มต้นเป็น 6.0 คือx_1 - ทำการ minimization โดยใช้ฟังก์ชันการสูญเสีย
loss_function()และตัวแปรที่มีค่าเริ่มต้นเป็น 0.3 คือx_2 - แสดงผล
x_1และx_2ในรูปแบบnumpyarray แล้วตรวจสอบว่าค่าทั้งสองต่างกันหรือไม่ ซึ่งนั่นคือค่าต่ำสุดที่อัลกอริทึมค้นพบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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())