gpt4 book ai didi

pytorch - 使用fastai的learn.lr_find()选择learning_rate

转载 作者:行者123 更新时间:2023-12-03 15:48:31 25 4
gpt4 key购买 nike

我正在翻阅Kaggle上发布的Heroes Recognition ResNet34笔记本。

作者使用fastai的learn.lr_find()方法来找到最佳学习率。

根据学习率绘制损失函数,得出下图:

enter image description here

损失似乎达到1e-1的最小值,但在下一步中,作者将1e-2作为fit_one_cycle中的max_lr传递给训练模型:
learn.fit_one_cycle(6,1e-2)
在此示例中,为什么要在1e-1上使用1e-2?这会不会只会减慢训练速度?

最佳答案

ls_find中进行的学习率范围测试的想法来自Leslie Smith的这篇论文:https://arxiv.org/abs/1803.09820还有许多其他有用的调优技巧;请参见odt_a。值得仔细研究。
在lr_find中,学习速率缓慢提高(以对数线性方式)。您不想选择损失最低的点;您想选择每步下降最快的点(=网络正在尽可能快地学习)。这确实发生在向下倾斜或1e-2中间的某个位置,因此编写笔记本的人大致上是正确的。 0.5e-2和3e-2之间的任何值都具有大致相同的斜率,这将是一个合理的选择。较小的值将对应于较慢的学习(=需要更多的历元,也较少的正则化),但过早达到平稳状态的风险则较小。
我会尝试增加一些直觉,以了解在此测试中损失最低时发生的情况,例如学习率= 1e-1。在这一点上,梯度下降算法朝着梯度的方向迈出了一大步,但损失并未减少。怎么会这样好吧,如果步幅始终太大,就会发生这种情况。考虑尝试进入亏损地区的一口井(或峡谷)。如果步长大于孔的大小,则每次都可以持续跨步并最终到达另一侧。
nice blog post by Jeremy Jordan中的这张图片直观地显示了它:
enter image description here
在图片中,它显示了通过采取太大的步骤(可能在测试中为lr = 1 + 0)从井中爬出的梯度下降。我认为除非lr确实过分,否则这种情况很少会完全发生。更有可能的是,井位于相对平坦的地形中,并且梯度下降可能会越过它,而不是一开始就无法进入井。高维损耗景观很难可视化,并且可能非常不规则,但是从某种意义上讲,lr_find测试正在寻找景观中典型特征的比例,然后选择学习率,从而获得与尺寸相似的步骤但要小一点

关于pytorch - 使用fastai的learn.lr_find()选择learning_rate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61172627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com