You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scipy Minimize中BFGS方法的方差缩放因子确定问题

Scipy BFGS优化中逆Hessian矩阵的缩放疑问

Scipy官方BFGS示例代码

from scipy.optimize import minimize, rosen, rosen_der
x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
res = minimize(rosen, x0, method='BFGS', jac=rosen_der,options={'gtol': 1e-6, 'disp': True})

逆Hessian矩阵与方差的计算

在BFGS方法的误差分析中,一般把计算得到的逆Hessian矩阵的对角线元素当作方差,实现代码如下:

import numpy as np
solution = res.x
variance = np.diag(res.inv_hess)

关于方差是否需要缩放的困惑

从泰勒级数展开的角度理解:

f(x) = f(a) + f'(a)(x-a) + 0.5*f''(a)*(x-a)^2 
# 极小值处一阶导数为0,此处f''(a)为Hessian矩阵,因此方差(x-a)^2可推导为
variance = (f(x) - f(a)) * H^-1

真实解和极小化解之间的差异,理论上需要对逆Hessian矩阵进行缩放,但核心问题是缩放因子究竟是什么? 是优化参数里设定的容差gtol吗?

我注意到其他拟合工具中,逆Hessian矩阵(或协方差矩阵)是用均方误差来缩放的,这让我对BFGS方法中Hessian矩阵应该使用的缩放因子感到困惑。


内容的提问来源于stack exchange,提问作者samman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:22:38