HessianUpdateStrategy#
- class scipy.optimize.HessianUpdateStrategy[Quelle]#
Schnittstelle zur Implementierung von Hessian-Update-Strategien.
Viele Optimierungsverfahren nutzen Näherungen der Hesse-Matrix (oder ihrer Inversen), wie z.B. die Quasi-Newton-Verfahren BFGS, SR1, L-BFGS. Einige dieser Näherungen benötigen jedoch nicht die Speicherung der gesamten Matrix oder können das interne Matrixprodukt mit einem gegebenen Vektor sehr effizient berechnen. Diese Klasse dient als abstrakte Schnittstelle zwischen dem Optimierungsalgorithmus und den Quasi-Newton-Update-Strategien und gibt Freiheiten bei der Implementierung, um die interne Matrix so effizient wie möglich zu speichern und zu aktualisieren. Unterschiedliche Wahl der Initialisierung und des Update-Verfahrens führen zu unterschiedlichen Quasi-Newton-Strategien.
Vier Methoden sollten in abgeleiteten Klassen implementiert werden:
initialize,update,dotundget_matrix. Der Matrixmultiplikationsoperator@ist ebenfalls definiert, um die Methodedotaufzurufen.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
Jede Instanz einer Klasse, die diese Schnittstelle implementiert, kann von der Methode
minimizeakzeptiert und von den kompatiblen Lösern verwendet werden, um die von den Optimierungsalgorithmen verwendete Hesse-Matrix (oder ihre Inverse) zu approximieren.