避免陷入局部极小值
上一题展示了模型多么容易陷入局部极小值。我们在单变量的简单优化问题中,即使只需先经过局部极小值,梯度下降也未能达到全局最小值。避免这一问题的一个方法是使用动量(momentum),它可以帮助优化器冲破局部极小值。本题将继续使用上一题的损失函数,已定义为 loss_function() 并可直接使用。

在 tensorflow 中有多个优化器带有动量参数,例如 SGD 和 RMSprop。本练习将使用 RMSprop。请注意,这次 x_1 和 x_2 被初始化为相同的值。此外,keras.optimizers.RMSprop() 已从 tensorflow 为您导入。
本练习是课程的一部分
Python 中的 TensorFlow 入门
练习说明
- 将
opt_1的学习率设为 0.01,动量设为 0.99。 - 将
opt_2设为使用均方根传播(RMSprop)优化器,学习率为 0.01,动量为 0.00。 - 为
opt_2定义最小化操作。 - 以
numpy数组形式打印x_1和x_2。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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(____, ____)