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, wennexception_strategy = 'skip_update'und gleich 0.2, wennexception_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_scaleinitialisiert, wobeindie 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.
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