趋近智
优化自编码器的训练过程,通常不只涉及选择一个好的初始学习率。随着训练的进行,梯度下降的理想步长通常会发生变化。最初,较大的步长可能加快收敛到损失函数中有前景的区域,但随后,需要较小的步长来细致地处理更精微之处,并稳定在损失函数 L 的良好最小值处。这时,学习率计划便成为非常实用的方法。
在整个训练过程中使用恒定的学习率会带来挑战。如果学习率过高,优化过程可能会不稳定地摆动或越过最小值,从而阻碍收敛。如果学习率过低,训练可能会变得非常缓慢,并且优化器可能陷入次优的局部最小值或鞍点。学习率计划会根据训练周期或迭代次数动态调整学习率,旨在平衡在损失曲面上的全局搜索和局部优化。
训练期间存在多种调整学习率的策略。选择哪种策略通常取决于具体的自编码器架构、数据集、所使用的优化器(如Adam或SGD)以及经验结果。
分步衰减(Step Decay): 这是最简单的计划之一。学习率在固定数量的训练周期内保持不变,然后按特定因子减小。这个过程可能会重复多次。例如,你可以从 0.001 的学习率开始,运行30个训练周期,然后将其减小到 0.0001 再运行30个周期,接着再减小到 0.00001。虽然易于实现,但这种突然的下降有时会暂时性地导致训练不稳定。
指数衰减(Exponential Decay): 这种计划使学习率随时间平稳下降。在训练周期 t 时的学习率 lrt 通常按以下方式计算:
lrt=lr0×γt/d这里,lr0 是初始学习率,γ 是衰减率(一个小于1的值,例如0.95),t 是当前训练周期数,d 是衰减步长(决定衰减应用的频率)。这种逐渐的减少有助于稳步地调整模型参数。
余弦退火(Cosine Annealing): 这种常用且通常有效的计划使学习率遵循余弦曲线下降。它从初始最大学习率 lrmax 开始,在指定的 Tmax 个训练周期内平稳地退火到最小学习率 lrmin。在训练周期 t 时(其中 Tcur 是自上次重启以来的训练周期数,通常就是 t(modTmax))的学习率由以下公式给出:
lrt=lrmin+21(lrmax−lrmin)(1+cos(TmaxTcurπ))这种计划很平滑,并且在处理复杂的损失曲面时表现良好。诸如“带重启的余弦退火”等变体,会周期性地将学习率重置为 lrmax 并重复退火过程,这可能有助于优化器摆脱不佳的最小值。
学习率预热(Learning Rate Warmup): 尤其在使用较大的初始学习率或复杂的架构(如基于Transformer的自编码器)时,立即使用目标学习率可能会导致训练早期不稳定或发散。预热阶段通过从非常小的学习率开始,并在一定数量的初始训练周期或步数内逐渐将其提高到所需的初始学习率 lr0 来解决这个问题。这种增加可以是线性的,也可以遵循类似余弦段的曲线。预热为模型提供了稳定时间,然后再应用较大的梯度更新。
不同的计划会产生随时间变化的不同学习率轨迹。通过可视化了解这些轨迹有助于选择合适的策略。
不同学习率计划在100个训练周期内的对比,初始学习率为0.001(Y轴为对数刻度)。分步衰减显示出突然的下降,而指数衰减和余弦退火则提供更平滑的降低。
通过计划有效管理学习率是成功训练自编码器的一种重要方法。它有助于实现更快的收敛,避免陷入损失空间中不佳的区域,并最终使模型学到更好的表征,在诸如降维、生成或异常检测等后续任务上表现良好。需要进行实验和仔细监控,才能为你的特定模型和数据找到最合适的计划策略。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造