Ceres中Analytic Derivatives、 Numeric Derivatives、Automatic Derivatives区别

  • Post author:
  • Post category:其他


与所有基于梯度的优化算法一样,Ceres Solver依赖于能够在其域中的任意点评估目标函数及其导数。实际上,定义目标函数及其雅可比矩阵是用户在使用Ceres Solver求解优化问题时需要执行的主要任务。正确有效地计算雅可比矩阵是获得良好性能的关键。

Ceres Solver在用户如何为求解器提供导数方面提供了相当大的灵活性。可以用:



Analytic Derivatives


:用户自己手工或使用Maple或Mathematica等工具来求导,并在

CostFunction

中实现它们。



Numeric Derivatives


:Ceres使用有限差分在数值上计算导数。



Automatic Derivatives


:Ceres使用C ++模板和运算符重载自动计算分析导数。


建议



Analytic Derivatives


实现CostFunction对象有点单调乏味。除非你能够自己计算好雅可比矩阵。



Numeric Derivatives


代价较大,导致收敛速度变慢。



Automatic Derivatives



已经能够满足绝大多数的使用场景,建议使用该法。

应该使用这三种方法中的哪一种(单独或组合)取决于用户面对的情况和作出的权衡。



版权声明:本文为abcwoabcwo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。