scipy.optimize.BFGS

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

Broyden-Fletcher-Goldfarb-Shanno(BFGS)Hessian更新策略。

参数
exception_strategy{‘SKIP_UPDATE’,‘DAMP_UPDATE’},可选

定义违反曲率条件时如何继续。将其设置为“SKIP_UPDATE”将仅跳过更新。或者,也可以将其设置为‘DAMP_UPDATE’,以便在实际的BFGS结果和未修改的矩阵之间进行插值。这两种异常策略都在中进行了说明 [1], 第536-537页。

min_curvature浮动

此数字按归一化因子缩放,定义最小曲率 dot(delta_grad, delta_x) 允许不受例外策略的影响。默认情况下,在以下情况下等于1e-8 exception_strategy = 'skip_update' 并且在以下情况下等于0.2 exception_strategy = 'damp_update'

init_scale{FLOAT,‘AUTO’}

第一次迭代时的矩阵比例。在第一次迭代中,海森矩阵或其逆矩阵将被初始化为 init_scale*np.eye(n) ,在哪里 n 是问题的维度。将其设置为‘AUTO’,以便使用自动试探法选择初始比例。启发式方法在中进行了描述 [1], 第143页。默认情况下使用‘AUTO’。

注意事项

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

参考文献

1(1,2,3)

题名/责任者:A.“数值优化”第二版(2006)。

方法:

dot \(P)

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

get_matrix \()

返回当前内部矩阵。

initialize \(n,大约_type)

初始化内部矩阵。

update \(增量_x,增量_grad)

更新内部矩阵。