From 617a6c4881f387ebdccf7ff58cea6e1b4dfe0b0d Mon Sep 17 00:00:00 2001 From: novicebutlove <117814812+NoviceButLove@users.noreply.github.com> Date: Sun, 10 Mar 2024 10:36:13 +0800 Subject: [PATCH] Update lr-scheduler.md Fix a typo --- chapter_optimization/lr-scheduler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter_optimization/lr-scheduler.md b/chapter_optimization/lr-scheduler.md index 3db88b631..417e63c05 100644 --- a/chapter_optimization/lr-scheduler.md +++ b/chapter_optimization/lr-scheduler.md @@ -7,7 +7,7 @@ * 首先,学习率的大小很重要。如果它太大,优化就会发散;如果它太小,训练就会需要过长时间,或者我们最终只能得到次优的结果。我们之前看到问题的条件数很重要(有关详细信息,请参见 :numref:`sec_momentum`)。直观地说,这是最不敏感与最敏感方向的变化量的比率。 * 其次,衰减速率同样很重要。如果学习率持续过高,我们可能最终会在最小值附近弹跳,从而无法达到最优解。 :numref:`sec_minibatch_sgd`比较详细地讨论了这一点,在 :numref:`sec_sgd`中我们则分析了性能保证。简而言之,我们希望速率衰减,但要比$\mathcal{O}(t^{-\frac{1}{2}})$慢,这样能成为解决凸问题的不错选择。 * 另一个同样重要的方面是初始化。这既涉及参数最初的设置方式(详情请参阅 :numref:`sec_numerical_stability`),又关系到它们最初的演变方式。这被戏称为*预热*(warmup),即我们最初开始向着解决方案迈进的速度有多快。一开始的大步可能没有好处,特别是因为最初的参数集是随机的。最初的更新方向可能也是毫无意义的。 -* 最后,还有许多优化变体可以执行周期性学习率调整。这超出了本章的范围,我们建议读者阅读 :cite:`Izmailov.Podoprikhin.Garipov.ea.2018`来了解个中细节。例如,如何通过对整个路径参数求平均值来获得更好的解。 +* 最后,还有许多优化变体可以执行周期性学习率调整。这超出了本章的范围,我们建议读者阅读 :cite:`Izmailov.Podoprikhin.Garipov.ea.2018`来了解各种细节。例如,如何通过对整个路径参数求平均值来获得更好的解。 鉴于管理学习率需要很多细节,因此大多数深度学习框架都有自动应对这个问题的工具。 在本章中,我们将梳理不同的调度策略对准确性的影响,并展示如何通过*学习率调度器*(learning rate scheduler)来有效管理。