scipy.optimize.BFGS¶
-
class
scipy.optimize.
BFGS
(exception_strategy='skip_update', min_curvature=None, init_scale='auto')[source]¶ Broyden-Fletcher-Goldfarb-Shanno (BFGS) Hessian update strategy.
Parameters: - exception_strategy : {‘skip_update’, ‘damp_update’}, optional
Define how to proceed when the curvature condition is violated. Set it to ‘skip_update’ to just skip the update. Or, alternatively, set it to ‘damp_update’ to interpolate between the actual BFGS result and the unmodified matrix. Both exceptions strategies are explained in [1], p.536-537.
- min_curvature : float
This number, scaled by a normalization factor, defines the minimum curvature
dot(delta_grad, delta_x)
allowed to go unaffected by the exception strategy. By default is equal to 1e-8 whenexception_strategy = 'skip_update'
and equal to 0.2 whenexception_strategy = 'damp_update'
.- init_scale : {float, ‘auto’}
Matrix scale at first iteration. At the first iteration the Hessian matrix or its inverse will be initialized with
init_scale*np.eye(n)
, wheren
is the problem dimension. Set it to ‘auto’ in order to use an automatic heuristic for choosing the initial scale. The heuristic is described in [1], p.143. By default uses ‘auto’.
Notes
The update is based on the description in [1], p.140.
References
[1] (1, 2, 3, 4) Nocedal, Jorge, and Stephen J. Wright. “Numerical optimization” Second Edition (2006). Methods
dot
(p)Compute the product of the internal matrix with the given vector. get_matrix
()Return the current internal matrix. initialize
(n, approx_type)Initialize internal matrix. update
(delta_x, delta_grad)Update internal matrix.