为什么学习率 (LR) 在 pytorch 中不低于 1e-08?
Why doesn't the learning rate (LR) go below 1e-08 in pytorch?
我正在训练模型。为了克服过度拟合,我做了优化、数据扩充等。我有一个更新的 LR(我尝试了 SGD 和 Adam),当出现平台(也尝试了步骤)时,学习率会降低一个因子,直到它达到 LR 1e-08 但不会低于该值,并且我的模型的验证在这一点之后卡住了。我尝试将 epsilon 参数传递给 Adam 以建议一个较小的值,但它仍然卡在 LR 1e-08。我也通过了体重衰减,但这并没有改变这种情况。也没有将 amsgrad 设置为 true。
我做了一些研究,人们认为 Adam 优化器存在内在问题,但没有提及学习率 - 每个讨论都补充说使用 SGD 没有问题。
这是为什么?它是一个错误还是设计成这样是因为作者认为在那之后它是一个毫无意义的小值?为我的数据集设置较小的学习率似乎真的很有帮助,因为在学习率降至 LR 1e-08 之前一切似乎都很好。
就我个人而言,我不知道学习率的下限(0.0 除外)。但是你可以通过在计算backwards pass之前减少loss来达到较低学习率的效果:
outputs = model(batch)
loss = criterion(outputs, targets)
# Equivalent to lowering the learning rate by a factor of 100
loss = loss / 100
self.optimizer.zero_grad()
loss.backward()
self.optimizer.step()
Richard 的解决方法应该很有效,但如果有人想知道的话,我也得到了官方答复。
为 ReduceLROnPlateau 调度程序的(而不是 Adam 的)eps 参数设置较小的值已经奏效。
eps ( float ) – 应用于 lr 的最小衰减。如果新旧 lr 之差小于 eps,则忽略更新。默认值:1e-8.
您应该问自己的真正问题是什么?为什么我一直需要降低学习率?
您正在寻找并随着学习率的持续下降(但实际上并未达到目标)而迈进的高度简化的答案是,您正在尝试减少信号的相对噪声(即更新的方差) .
您是否尝试过平均梯度迭代并保持学习率平坦?应该做这样的事情
https://www.tensorflow.org/addons/api_docs/python/tfa/optimizers/SWA
我正在训练模型。为了克服过度拟合,我做了优化、数据扩充等。我有一个更新的 LR(我尝试了 SGD 和 Adam),当出现平台(也尝试了步骤)时,学习率会降低一个因子,直到它达到 LR 1e-08 但不会低于该值,并且我的模型的验证在这一点之后卡住了。我尝试将 epsilon 参数传递给 Adam 以建议一个较小的值,但它仍然卡在 LR 1e-08。我也通过了体重衰减,但这并没有改变这种情况。也没有将 amsgrad 设置为 true。
我做了一些研究,人们认为 Adam 优化器存在内在问题,但没有提及学习率 - 每个讨论都补充说使用 SGD 没有问题。
这是为什么?它是一个错误还是设计成这样是因为作者认为在那之后它是一个毫无意义的小值?为我的数据集设置较小的学习率似乎真的很有帮助,因为在学习率降至 LR 1e-08 之前一切似乎都很好。
就我个人而言,我不知道学习率的下限(0.0 除外)。但是你可以通过在计算backwards pass之前减少loss来达到较低学习率的效果:
outputs = model(batch)
loss = criterion(outputs, targets)
# Equivalent to lowering the learning rate by a factor of 100
loss = loss / 100
self.optimizer.zero_grad()
loss.backward()
self.optimizer.step()
Richard 的解决方法应该很有效,但如果有人想知道的话,我也得到了官方答复。
为 ReduceLROnPlateau 调度程序的(而不是 Adam 的)eps 参数设置较小的值已经奏效。
eps ( float ) – 应用于 lr 的最小衰减。如果新旧 lr 之差小于 eps,则忽略更新。默认值:1e-8.
您应该问自己的真正问题是什么?为什么我一直需要降低学习率?
您正在寻找并随着学习率的持续下降(但实际上并未达到目标)而迈进的高度简化的答案是,您正在尝试减少信号的相对噪声(即更新的方差) .
您是否尝试过平均梯度迭代并保持学习率平坦?应该做这样的事情
https://www.tensorflow.org/addons/api_docs/python/tfa/optimizers/SWA