本文的目的是通过最大化正则对数似然来优化一些参数。然后他们计算偏导数。然后作者提到,他们使用标准准牛顿程序L-BFGS优化方程,以优化许多变量的平滑函数(没有更多细节)。
它是如何工作的 ?
本文的目的是通过最大化正则对数似然来优化一些参数。然后他们计算偏导数。然后作者提到,他们使用标准准牛顿程序L-BFGS优化方程,以优化许多变量的平滑函数(没有更多细节)。
它是如何工作的 ?
Answers:
基本上,将L-BFGS视为一种利用目标函数值和目标函数梯度来找到目标函数(局部)最小值的方法。除了L-BFGS,该描述级别还涵盖了许多优化方法。您可以在Nocedal和Wright的7.2节“数值优化,第二版”中了解更多信息,网址为http://www.springer.com/us/book/9780387303031。https://en.wikipedia.org/wiki/Limited-memory_BFGS提供了有关L-BFGS的非常粗略的讨论。
一阶方法意味着使用了梯度(一阶导数)(可能还有目标函数值),但没有使用Hessian(二阶导数)。例如,考虑一下梯度下降和最陡下降。
二阶方法意味着使用了梯度和Hessian(可能还有目标函数值)。二阶方法可以基于
“精确”黑森矩阵(或梯度的有限差分),在这种情况下,它们被称为牛顿法或
拟牛顿法,它通过施加“割线”(拟牛顿)条件,基于多次迭代中的梯度差来近似Hessian。拟牛顿法有很多不同的方法,它们以不同的方式估计黑森州的情况。最受欢迎的之一是BFGS。BFGS Hessian近似可以基于梯度的完整历史记录,在这种情况下称为BFGS,也可以仅基于最新的m个梯度,在这种情况下,称为有限内存BFGS,缩写为BFGS作为L-BFGS。L-BFGS的优点是仅需要保留最新的m个梯度,其中m通常在10到20之间,这比存储全部n所需的n *(n + 1)/ 2个元素要小得多。 BFGS要求的Hessian估算值的(三角形),其中n是问题维度。与(完整的)BFGS不同,Hessian的估计从不明确地形成或存储在L-BFGS中(尽管BFGS的某些实现仅形成并更新了Hessian近似的Choelsky因子,而不是Hessian近似本身);而是,在没有显式构成的情况下完成了用Hessian估计所需的计算。对于非常大的问题(当n非常大时),使用L-BFGS代替BFGS,但性能可能不如BFGS。因此,当可以满足BFGS的存储要求时,BFGS优于L-BFGS。另一方面,L-BFGS的性能可能不会比BFGS差很多。Hessian的估计永远不会明确地形成或存储在L-BFGS中(尽管BFGS的某些实现仅形成和更新Hessian近似的Choelsky因子,而不是Hessian近似本身);而是,在没有显式构成的情况下完成了用Hessian估计所需的计算。对于非常大的问题(当n非常大时),使用L-BFGS代替BFGS,但性能可能不如BFGS。因此,当可以满足BFGS的存储要求时,BFGS优于L-BFGS。另一方面,L-BFGS的性能可能不会比BFGS差很多。Hessian的估计永远不会明确地形成或存储在L-BFGS中(尽管BFGS的某些实现仅形成和更新Hessian近似的Choelsky因子,而不是Hessian近似本身);而是,在没有显式构成的情况下完成了用Hessian估计所需的计算。对于非常大的问题(当n非常大时),使用L-BFGS代替BFGS,但性能可能不如BFGS。因此,当可以满足BFGS的存储要求时,BFGS优于L-BFGS。另一方面,L-BFGS的性能可能不会比BFGS差很多。在没有明确构成的情况下,完成了用Hessian估计所需的计算。对于非常大的问题(当n非常大时),使用L-BFGS代替BFGS,但性能可能不如BFGS。因此,当可以满足BFGS的存储要求时,BFGS优于L-BFGS。另一方面,L-BFGS的性能可能不会比BFGS差很多。在没有明确构成的情况下,完成了用Hessian估计所需的计算。对于非常大的问题(当n非常大时),使用L-BFGS代替BFGS,但性能可能不如BFGS。因此,当可以满足BFGS的存储要求时,BFGS优于L-BFGS。另一方面,L-BFGS的性能可能不会比BFGS差很多。
即使在这种描述级别,也有许多变体。例如,这些方法可能是完全不受保护的,在这种情况下任何事情都会发生,并且即使在凸问题上,它们也可能不会收敛到任何事情。否则他们可以得到保障。受保护的方法通常基于信任区域或线搜索,并且旨在确保收敛。非常重要的是,仅知道一种方法是L-BFGS本身并不能告诉您使用了哪种类型的保护措施(如果有)。这就好比说一辆汽车是4门轿车-但当然并非所有4门轿车的性能或可靠性都相同。它只是优化算法的一个属性。