[论文解读] Implementation of Stochastic Quasi-Newton's Method in PyTorch
本论文在 PyTorch 中实现了 Stochastic Damped L-BFGS (SdLBFGS) 优化器的改进版本,用于非凸随机优化。通过在每次优化步骤中使用单位矩阵初始化 Hessian 近似,并对搜索方向进行归一化,该方法在收敛性和稳定性方面优于原始的 SdLBFGS0,其性能超越了 SGD 和 Adagrad 等一阶优化器,并在 CIFAR10 和 MNIST 上的测试准确率上达到或超过 LBFGS。
In this paper, we implement the Stochastic Damped LBFGS (SdLBFGS) for stochastic non-convex optimization. We make two important modifications to the original SdLBFGS algorithm. First, by initializing the Hessian at each step using an identity matrix, the algorithm converges better than original algorithm. Second, by performing direction normalization we could gain stable optimization procedure without line search. Experiments on minimizing a 2D non-convex function shows that our improved algorithm converges better than original algorithm, and experiments on the CIFAR10 and MNIST datasets show that our improved algorithm works stably and gives comparable or even better testing accuracies than first order optimizers SGD, Adagrad, and second order optimizers LBFGS in PyTorch.
研究动机与目标
- 解决原始 SdLBFGS0 算法在深度学习优化中出现的不稳定性和非收敛问题。
- 提升非凸深度神经网络中二阶随机优化的收敛性和数值稳定性。
- 实现在 PyTorch 中无需线搜索或手动学习率调优即可部署拟牛顿方法。
- 证明改进后的 SdLBFGS 在测试准确率上可与广泛使用的 一阶和二阶优化器相媲美或更优。
提出的方法
- 在每次优化步骤中,用单位矩阵替换原始 SdLBFGS0 中的 Hessian 初始化,以改善收敛性。
- 引入对搜索方向的 L2 归一化,以稳定优化过程并消除对线搜索的依赖。
- 保持核心 SdLBFGS 框架,采用有限内存 BFGS 更新,并通过修改后的曲率对实现阻尼 Hessian 近似。
- 使用阻尼更新规则:$\bar{y}_{k-1} = \theta_{k-1} y_{k-1} + (1 - \theta_{k-1}) H_{k,0}^{-1} s_{k-1} $,其中 $\theta_{k-1}$ 确保 Hessian 的半正定性。
- 通过内存高效的向量运算实现 L-BFGS 更新序列,以近似 Hessian 逆矩阵,而无需存储完整矩阵。
- 将改进后的 SdLBFGS 集成到 PyTorch 中,支持端到端可微优化,使其可直接用于标准深度学习训练循环。
实验结果
研究问题
- RQ1原始 SdLBFGS0 算法是否可在无需线搜索的情况下实现深度学习中的实用化稳定?
- RQ2在非凸优化中,使用单位矩阵初始化 Hessian 近似是否能改善收敛性?
- RQ3方向归一化是否可替代线搜索,同时保持优化的稳定性和收敛性?
- RQ4在标准视觉基准测试中,改进后的 SdLBFGS 与一阶(SGD、Adagrad)和二阶(LBFGS)优化器相比,在测试准确率和训练稳定性方面表现如何?
主要发现
- 在 CIFAR10 上,改进后的 SdLBFGS 达到了约 66% 的最终测试准确率,优于 SGD 和 Adagrad(约 62%),并超过内置的 LBFGS 优化器。
- 在 MNIST 数据集上,SdLBFGS 达到了约 98% 的测试准确率,与 SGD 和 Adagrad 相当,而 LBFGS 完全失败,仅获得约 10% 的准确率。
- SdLBFGS0 在 CIFAR10 和 MNIST 上运行数个周期后崩溃,产生 NaN 值,而改进后的 SdLBFGS 保持稳定并成功收敛。
- 在最优学习率下,改进后的 SdLBFGS 在准确率提升速度和损失稳定下降方面均优于所有基线方法。
- 该方法在无需线搜索的情况下实现了与 LBFGS 相当或更优的性能,表明其对学习率选择具有鲁棒性。
- 方向归一化和单位 Hessian 初始化对稳定性和收敛性均至关重要,消融实验表明,若任一机制被移除,优化将失败。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。