Ceres Solver 官方教程学习笔记(六)——关于微分计算On Derivatives

这篇博客基于Ceres官方教程,探讨了在Ceres Solver中进行微分计算的三种方法:解析微分、数值微分和自动微分。自动微分被推荐为首选,但在特定情况下解析微分也有其价值,而数值微分则应尽量避免。此外,介绍了Spivak标记法,用于简化函数及其导数的表示,特别是在处理多变量函数和雅可比矩阵时的应用。
摘要由CSDN通过智能技术生成

本节主要根据也Ceres官方教程On Derivatives翻译而成

与所有基于梯度的优化算法一样,Ceres Solver也是基于评估域中任意点的目标函数及其导数。事实上,Ceres的核心就是确定目标函数机器雅可比行列式。雅可比行列式求解的正确性和效率是评判算法优劣的关键指标。用户可以灵活的从一下三种微分算法中选择:

  1. Analytic Derivatives 解析微分算法:用户自己手动或者借助Maple湖泊这Mathematica之类的工具求解导数。然后写到CostFunction里面。
  2. Numeric Derivatives 数值微分算法:Ceres用有限差分数值计算导数。
  3. Automatic Dericatives 自动微分算法:Ceres用C++模板和操作符重载自动分析计算微分。

应该使用这三种方法中的哪一种(单独或组合)取决于用户愿意做出的情况和权衡。官方给出了一个简单粗暴的建议:
优先选用自动微分算法,某些情况可能需要用到解析微分算法,尽量避免数值微分算法。

Spivak标记

为了简化阅读和推理,引入Spivak标记。

对于单自变量函数 f f f ( a ) 表示它在 a a 处的函数值。 D f 表示它的一阶导数,那么 Df(a) D f ( a ) 就是函数在 a a 处的一阶导数。即,

D f ( a ) = d d x f ( x ) | x = a

Dkf D k f 表示 f

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值