使用 scipy 中的 L-BFGS-B 最小化器,是否可以检索内部计算的近似逆 Hessian 矩阵?
将其设为隐式分解形式,以便可以计算任意逆 Hessian 矩阵 - 向量积,就可以了。
使用 scipy 中的 L-BFGS-B 最小化器,是否可以检索内部计算的近似逆 Hessian 矩阵?
将其设为隐式分解形式,以便可以计算任意逆 Hessian 矩阵 - 向量积,就可以了。
看起来并非如此。我不是这些算法的专家,但似乎特别是使用 L-BFGS 是不可能的。根据维基百科:
L-BFGS 保留位置 x 和梯度 ∇f(x) 的过去 m 次更新的历史,而不是逆 Hessian H_k,其中通常历史大小 m 可以很小(通常 m<10)。这些更新用于隐式执行需要 H_k 向量积的操作。
但是,如果您使用scipy.fmin_bfgs
它确实会返回近似的(逆的)Hessian 矩阵,代价是需要更大的内存来维护它。