開始使用免費開始

區域極小值的風險

請觀察下列損失函式 loss_function() 的圖形。此函式有一個全域極小值(右側的點標示),以及多個區域極小值(包含左側點所標示者)。

這是一個單一變數函式的圖形,包含多個區域極小值與一個全域極小值。

在這個練習中,你會使用 keras.optimizers.SGD() 來尋找 loss_function() 的全域極小值。你會做兩次,每次替 loss_function() 使用不同的初始輸入值。首先使用變數 x_1,其初始值為 6.0。接著使用變數 x_2,其初始值為 0.3。請注意,loss_function() 已定義且可直接使用。

本練習屬於課程

Python 的 TensorFlow 入門

檢視課程

練習說明

  • opt 設為隨機梯度下降最佳化器(SGD),學習率為 0.01。
  • 使用損失函式 loss_function() 與初始值為 6.0 的變數 x_1 進行最小化。
  • 使用損失函式 loss_function() 與初始值為 0.3 的變數 x_2 進行最小化。
  • numpy 陣列形式列印 x_1x_2,並檢查兩者是否不同。這些值是演算法找到的極小值。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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())
編輯並執行程式碼