scipy.optimize.

HessianUpdateStrategy#

класс scipy.optimize.HessianUpdateStrategy[источник]#

Интерфейс для реализации стратегий обновления матрицы Гессе.

Многие методы оптимизации используют аппроксимации гессиана (или обратного гессиана), такие как квазиньютоновские методы BFGS, SR1, L-BFGS. Однако некоторые из этих аппроксимаций фактически не требуют хранения всей матрицы или могут вычислять внутреннее матричное произведение с заданным вектором очень эффективно. Этот класс служит абстрактным интерфейсом между алгоритмом оптимизации и стратегиями квазиньютоновского обновления, предоставляя свободу реализации для максимально эффективного хранения и обновления внутренней матрицы. Различные варианты инициализации и процедуры обновления приведут к разным квазиньютоновским стратегиям.

Четыре метода должны быть реализованы в производных классах: initialize, update, dot и get_matrix. Оператор матричного умножения @ также определен для вызова dot метод.

Методы

dot(p)

Вычислить произведение внутренней матрицы на заданный вектор.

get_matrix()

Возвращает текущую внутреннюю матрицу.

initialize(n, approx_type)

Инициализация внутренней матрицы.

update(delta_x, delta_grad)

Обновить внутреннюю матрицу.

Примечания

Любой экземпляр класса, реализующего этот интерфейс, может быть принят методом minimize и используется совместимыми решателями для аппроксимации гессиана (или обратного гессиана), используемого алгоритмами оптимизации.