scipy.optimize.

BFGS#

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

Broyden-Fletcher-Goldfarb-Shanno (BFGS) HESSIAN-Update-Strategie.

Parameter:
exception_strategy{‘skip_update’, ‘damp_update’}, optional

Definiert, wie vorgegangen wird, wenn die Krümmungsbedingung verletzt wird. Setzen Sie es auf ‘skip_update’, um das Update einfach zu überspringen. Alternativ können Sie es auf ‘damp_update’ setzen, um zwischen dem tatsächlichen BFGS-Ergebnis und der unveränderten Matrix zu interpolieren. Beide Ausnahmeregelungen werden in [1], S. 536-537, erläutert.

min_curvaturefloat

Diese Zahl, skaliert durch einen Normalisierungsfaktor, definiert die minimale Krümmung dot(delta_grad, delta_x), die von der Ausnahmeregelung unberührt bleiben darf. Standardmäßig ist sie gleich 1e-8, wenn exception_strategy = 'skip_update' und gleich 0.2, wenn exception_strategy = 'damp_update'.

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

Dieser Parameter kann verwendet werden, um die Hesse-Matrix oder ihre Umkehrung zu initialisieren. Wenn ein Float-Wert angegeben wird, wird das entsprechende Array zu np.eye(n) * init_scale initialisiert, wobei n die Problemdimension ist. Alternativ, wenn ein symmetrisches Array mit der exakten Form (n, n) angegeben wird, wird dieses Array verwendet. Andernfalls wird ein Fehler generiert. Setzen Sie es auf 'auto', um eine automatische Heuristik zur Auswahl der Anfangsskalierung zu verwenden. Die Heuristik wird in [1], S. 143, beschrieben. Der Standardwert ist 'auto'.

Methoden

dot(p)

Berechnet das Produkt der internen Matrix mit dem gegebenen Vektor.

get_matrix()

Gibt die aktuelle interne Matrix zurück.

initialize(n, approx_type)

Initialisiert die interne Matrix.

update(delta_x, delta_grad)

Interne Matrix aktualisieren.

Hinweise

Das Update basiert auf der Beschreibung in [1], S. 140.

Referenzen

[1] (1,2,3)

Nocedal, Jorge, und Stephen J. Wright. „Numerical optimization“ Zweite Auflage (2006).