当解析雅可比行列可用时,最好通过


19

假设我正在计算一些模型参数,以使残差平方和最小化,并且我假设我的误差是高斯分布。我的模型产生解析导数,因此优化器不需要使用有限差分。拟合完成后,我要计算拟合参数的标准误差。

通常,在这种情况下,误差函数的Hessian通过以下与协方差矩阵相关: 其中是残差的方差。

σ2H1=C
σ2

如果没有可用的误差解析导数,则通常无法计算Hessian,因此将作为一个很好的近似值。JTJ

但是,就我而言,我有一个解析J,因此对我来说,通过有限差分J计算H相对便宜。

因此,我的问题是:使用我的精确J并应用上述近似值来近似H还是通过有限差分J来近似H会更准确吗?

Answers:


12

好问题。首先,回想一下这个近似值来源。令为数据点,为模型,为模型的参数。然后,非线性最小二乘问题的目标函数为,其中是残差的向量,。目标函数的精确Hessian为。因此,该近似值中的误差为HJTJ(xi,yi)f()β12rTrrri=yif(xi,β)H=JTJ+ri2riHJTJ=ri2ri。当残差本身很小时,这是一个很好的近似值。或当残差的二阶导数较小时。线性最小二乘可以视为残差的二阶导数为零的特殊情况。

至于有限差分近似,它相对便宜。为了计算中央差,你需要评估雅可比额外倍(向前差将花费你ñ额外的评估,所以我不会理会)。中央差分近似的误差正比于4 - [Rħ 2,其中ħ是步长。最佳步长是ħ ε 12nn4rh2h,其中ε是机器精度。因此,除非残差的导数膨胀,否则很明显,有限差分近似应该更好。我应该指出,尽管计算量很小,但记账却不平凡。雅可比行列上的每个有限差都会为您为每个残差提供一排的黑森州。然后,您必须使用上面的公式重新组装黑森州。hϵ13ϵ

但是,有第三个选项。如果您的求解器使用拟牛顿法(DFP,BFGS,Bryoden等),则在每次迭代时它已经近似于Hessian。近似值可能很好,因为它使用了每次迭代的目标函数和梯度值。大多数求解器将使您可以访问最终的Hessian估计(或其反函数)。如果这是您的选择,我将其用作黑森州的估算。它已经过计算,可能会是一个不错的估计。


优秀的回复,谢谢。在每种情况下通过对估计误差进行比较来证明这一点非常有启发性。我能问你怎么知道是有限差分的最佳步?我以前从未见过。ϵ1/3
Colin K

5
这是平衡截断错误和舍入错误的古老技巧。显然,为了使截断误差最小,您希望使尽可能小。但是,一旦h变得太小,就会开始产生明显的舍入误差。推导相对简单。假设中心差,则截断误差与h 2 f x 成正比。舍入误差始终与ϵ f x 成正比hhh2f(x)。将两者相加并最小化h。你得到^ hε1ϵf(x)hhhϵ13
Bill Woessner

3
这仅适用于中心差异。对于向前的差异,最佳步长是hϵ12hhh_actual = (x + h_desired) - xhactual=hdesiredh=0.0001

也许可以将这些内容添加到您的答案中,而不是添加评论。这样,将来的用户就不必遍历扩展的注释部分来查找直接涉及答案中所声称内容的材料。
Sycorax说应

2
哦,我的天啊。Hessian的拟牛顿逼近可能是Hessian的糟糕估计,因此导致协方差矩阵的估计非常差。它可以很好地促进算法发展到最佳状态,但作为Hessian的估计值可能会很差。
Mark L. Stone
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.