keras 函数背后的基本原理ReduceLROnPlateau()是,一旦学习停滞,模型就会受益于降低学习率。
总是申请是个好习惯ReduceLROnPlateau()吗?有哪些情况(如果有)不适用ReduceLROnPlateau()?
keras 函数背后的基本原理ReduceLROnPlateau()是,一旦学习停滞,模型就会受益于降低学习率。
总是申请是个好习惯ReduceLROnPlateau()吗?有哪些情况(如果有)不适用ReduceLROnPlateau()?
我相信,理论上,使用这种方法总是一个好主意。我说理论上是因为梯度下降理论指出,只有当学习率接近 0 时才能达到最小值。否则,在永久大的学习率下,模型的性能(即损失指标)会在最小值——总是超过它。
话虽如此,重要的是要实际思考并意识到使用这种方法的危险。在训练的某些阶段,您的指标可能不会有太大改善,因此学习率会降低。但这可能会过早发生 - 取决于您选择的平台参数 - 因此实际上会阻碍/防止模型在损失曲线下走得足够远!如果您设置了最低学习率,您可能总是会降至最低(本地或其他),但如果您的学习率过早降低,则可能需要更长的时间。
最后,尝试尽可能多的组合可能是您最好的选择。
或者,您可以尝试将其与模拟退火相结合,从而根据预定义的规则(例如在经过若干个 epoch 或学习率本身降低 %),学习率再次向上提升。