好问题。首先,回忆一下这个近似值H≈JTJ来自。让(xi,yi)成为您的数据点,f(⋅)成为你的模特和β成为模型的参数。那么非线性最小二乘问题的目标函数为12rTr在哪里r是残差的向量,ri=yi−f(xi,β). 目标函数的精确 Hessian 矩阵是H=JTJ+∑ri∇2ri. 所以这个近似值的误差是H−JTJ=∑ri∇2ri. 当残差本身很小时,这是一个很好的近似值;或者当残差的二阶导数很小时。线性最小二乘可以被认为是残差的二阶导数为零的特殊情况。
至于有限差分近似,它相对便宜。要计算中心差,您需要额外评估雅可比行列式2n次(远期差价将花费您n额外的评估,所以我不会打扰)。中心差分近似的误差与∇4r和h2, 在哪里h是步长。最佳步长为h∼ϵ13, 在哪里ϵ是机器精度。因此,除非残差的导数爆炸,否则很明显,有限差分近似应该更好。我应该指出,虽然计算量很小,但簿记却很重要。Jacobian 上的每个有限差分将为每个残差提供一行 Hessian。然后,您必须使用上面的公式重新组装 Hessian。
然而,还有第三种选择。如果您的求解器使用准牛顿法(DFP、BFGS、Bryoden 等),它已经在每次迭代中逼近 Hessian。近似值可能非常好,因为它使用每次迭代的目标函数和梯度值。大多数求解器都会让您访问最终的 Hessian 估计(或其逆估计)。如果这是您的选择,我会将其用作 Hessian 估计值。它已经计算过了,可能会是一个很好的估计。