亚当优化器中学习率的默认值 - Keras

数据挖掘 神经网络 深度学习 喀拉斯 图像分类 迁移学习
2021-09-24 17:59:26

我正在使用迁移学习解决图像分类问题。

下面给出了使用的参数:
Adam 优化器,学习率 - 0.0001

adamOpti = Adam(lr = 0.0001)
model.compile(optimizer = adamOpti, loss = "categorical_crossentropy, metrics = ["accuracy"])

为了测试,我使用adam了优化器,没有明确指定任何参数(默认值 lr = 0.001)。

在学习率的默认值下,训练和验证的准确率停留在 50% 左右。
当我在第一个时期本身使用学习率 = 0.0001 时,我可以看到准确率将达到 90%。

你能帮我理解
1.为什么学习率的值越低,准确率就会迅速增加?
2. 还有上面使用的学习率哪个更好?
3. 如何在 Keras 中使用衰减学习率?

谢谢

2个回答

学习率是一个非常重要的超参数,通常需要一些实验。这里有一些很好的相关问题,请务必查看这些问题。

  1. 如果学习率太大,您可能会在最优值附近反弹,或者您可能会从抛出到梯度消失的参数空间的一部分开始。(如果太小,您可能需要很长时间才能收敛到最优值,或者您可能会发现局部最优值很差。这些影响会因adams 动量效应而减弱。)

  2. 也就是说,最佳学习率通常取决于问题。据推测,默认选择非常适合一般用途,但您的发现并不令人惊讶。

  3. decay简单衰减的参数,也可以设置步进衰减的回调。

有一个名为 ReduceLROnPlateau 的特定库,它将根据您提到的因子值降低学习率。这似乎适用于所有问题案例。