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

与所有基于梯度的优化算法一样,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已经能够满足绝大多数的使用场景,建议使用该法。

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcwoabcwo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值