【问题标题】:Retrieve approximate Hessian inverse from L-BFGS-B从 L-BFGS-B 中检索近似 Hessian 逆
【发布时间】:2015-04-18 18:04:47
【问题描述】:

使用 scipy 中的 L-BFGS-B 最小化器,是否可以检索内部计算的近似逆 Hessian?

将其设为隐式因式,这样就可以计算任意逆 Hessian 矩阵 - 向量乘积。

【问题讨论】:

    标签: python numpy scipy mathematical-optimization hessian-matrix


    【解决方案1】:

    看起来不是这样。我不是这些算法的专家,但似乎特别是使用 L-BFGS 是不可能的。根据Wikipedia

    L-BFGS 保留位置 x 和梯度 ∇f(x) 的过去 m 次更新的历史,而不是逆 Hessian H_k,其中通常历史大小 m 可以很小(通常 m

    但是,如果您使用scipy.fmin_bfgs,它确实会返回近似的(逆)Hessian 矩阵,但代价是维护它需要更大的内存。

    【讨论】:

    • 优化完成后,想做一些只需要逆Hessian矩阵乘积的计算,所以隐式表示就可以了。
    • 看起来你需要的所有东西都可以在原始实现的working array 中找到。不幸的是,它看起来像 SciPy 的高级包装器,因为它没有返回它。但是,如果您直接使用 FORTRAN 函数的低级接口,您应该能够使用它,如下所示:github.com/scipy/scipy/blob/v0.15.1/scipy/optimize/… 有点痛苦,但您可以修改它以返回工作数组 wa 为好吧。
    猜你喜欢
    • 2013-09-29
    • 1970-01-01
    • 2015-09-07
    • 2017-02-06
    • 2017-07-14
    • 2023-04-05
    • 2017-05-23
    • 2015-07-20
    • 1970-01-01
    相关资源
    最近更新 更多