研究结果很明确:与测试的其他算法相比,vSGD-fd 不需要任何超参数调整即可在广泛的测试中提供可靠的良好性能:学习率自动适应不同的曲率和噪声水平。
自适应学习率听起来很重要,但为什么每个人似乎都在使用 Adam 和其他优化器?
研究结果很明确:与测试的其他算法相比,vSGD-fd 不需要任何超参数调整即可在广泛的测试中提供可靠的良好性能:学习率自动适应不同的曲率和噪声水平。
自适应学习率听起来很重要,但为什么每个人似乎都在使用 Adam 和其他优化器?
这是我在 Cross Validated上对同一个人提出的相同问题的回答:
已经是2019年了,这个问题还是没有人回答。我也不明白为什么 vSGD 也不流行。但我确实有一些我自己的理由:
不是真正的自适应。和 v-SGD 一样,ADAM 也是一种所谓的自适应算法,但事实并非如此。v-SGD 中的学习率和窗口大小,ADAM 中的β项都需要调整。不过,像AMSGrad和NosAdam这样的新变体似乎更强大。
太“复杂”了。v-SGD 使用“bprop”项来估计 Hessian 对角线,后来还有一个有限差分版本。这些在某种程度上是用于计算机科学和工程的“复杂”方法。数值不稳定性和固有的不准确性会引起很多麻烦。这可能是 Tensorflow 和 Pytorch 开发人员没有在他们的包中包含 v-SGD 的原因。这也导致在随后的优化论文中很少与 v-SGD 进行比较。
速度。如果估计的 Hessian 是一个很好的近似值,那么它肯定会加快速度。但是,首先,局部景观可能不是论文中所说的“嘈杂的二次损失”;第二,估计也很粗略。实际上,无法准确估计 Hessian 对角线。这些因素都使得 v-SGD 算法的速度没有那么有竞争力。
这只是一些理解,没有太多的实践。希望有人能指出可能更准确的观点。