多批次LBFGS
该代码是用于神经网络训练的革命性优化器的实现。 它的全名是“带CUDA的多批次L-BFGS优化器”。 如今,著名的机器学习框架(例如Tensorflow)通常提供“基于梯度”的优化器(GradientDescent,AdaGrad),该优化器通过计算梯度并将其应用于网络来发挥作用。
该代码为Tensorflow实现了一个经过优化的优化器,它采用了“多批L-BFGS”算法(一种基于准牛顿算法的变体),我覆盖了Tensorflow的优化器的默认实现,并定义了一种用于梯度计算的拟新方法,该方法结合了二阶信息,其执行方式比默认优化器更好。 此外,我通过介绍CUDA技术来优化此优化器。 我在GPU上分配计算步骤。 它将优化器的性能提高至少20%。
2022-05-09 17:51:35
31KB
Python
1