scipy.optimize.

BFGS#

class scipy.optimize.BFGS(exception_strategy='skip_update', min_curvature=None, init_scale='auto')[源代码][源代码]#

Broyden-Fletcher-Goldfarb-Shanno (BFGS) 海森矩阵更新策略。

参数:
异常策略{‘skip_update’, ‘damp_update’}, 可选

定义当曲率条件被违反时的处理方式。设置为 ‘skip_update’ 以跳过更新。或者,也可以设置为 ‘damp_update’ 以在实际 BFGS 结果和未修改的矩阵之间进行插值。这两种异常策略在 [1] 的第536-537页有详细解释。

min_curvature浮动

这个数值通过一个归一化因子缩放,定义了允许的最小曲率 dot(delta_grad, delta_x),在异常策略下不受影响。默认情况下,当 exception_strategy = 'skip_update' 时等于 1e-8,当 exception_strategy = 'damp_update' 时等于 0.2。

init_scale{float, np.array, ‘auto’}

此参数可用于初始化 Hessian 矩阵或其逆矩阵。当给定一个浮点数时,相关数组将被初始化为 np.eye(n) * init_scale,其中 n 是问题维度。或者,如果给定一个精确的 (n, n) 形状的对称数组,则将使用此数组。否则将生成一个错误。将其设置为 ‘auto’ 以使用自动启发式方法选择初始比例。启发式方法在 [1],第143页中描述。默认值为 ‘auto’。

方法

dot(p)

计算内部矩阵与给定向量的乘积。

get_matrix()

返回当前的内部矩阵。

initialize(n, approx_type)

初始化内部矩阵。

update(delta_x, delta_grad)

更新内部矩阵。

注释

更新基于 [1] 中的描述,第140页。

参考文献

[1] (1,2,3)

Nocedal, Jorge, 和 Stephen J. Wright. “数值优化” 第二版 (2006).