局部极小的风险
请考虑如下损失函数 loss_function() 的图像。它包含一个全局最小值(右侧的点所示),以及若干局部最小值(包括左侧的点所示)。

在本练习中,您将使用 keras.optimizers.SGD() 来寻找 loss_function() 的全局最小值。您将尝试两次,每次为 loss_function() 提供不同的初始输入值。第一次使用初始值为 6.0 的变量 x_1。第二次使用初始值为 0.3 的变量 x_2。注意,loss_function() 已定义并可直接使用。
本练习是课程的一部分
Python 中的 TensorFlow 入门
练习说明
- 将
opt设为随机梯度下降优化器(SGD),学习率为 0.01。 - 使用损失函数
loss_function()和初始值为 6.0 的变量x_1进行最小化。 - 使用损失函数
loss_function()和初始值为 0.3 的变量x_2进行最小化。 - 以
numpy数组形式打印x_1和x_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())