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-8exception_strategy = 'skip_update'
并且在以下情况下等于0.2exception_strategy = 'damp_update'
。- init_scale{FLOAT,‘AUTO’}
第一次迭代时的矩阵比例。在第一次迭代中,海森矩阵或其逆矩阵将被初始化为
init_scale*np.eye(n)
,在哪里n
是问题的维度。将其设置为‘AUTO’,以便使用自动试探法选择初始比例。启发式方法在中进行了描述 [1], 第143页。默认情况下使用‘AUTO’。
注意事项
此更新基于中的描述 [1], 第140页。
参考文献
方法:
dot
\(P)计算内矩阵与给定向量的乘积。
get_matrix
\()返回当前内部矩阵。
initialize
\(n,大约_type)初始化内部矩阵。
update
\(增量_x,增量_grad)更新内部矩阵。