scipy.optimize.

BFGS#

класс scipy.optimize.BFGS(exception_strategy='skip_update', min_curvature=None, init_scale='auto')[источник]#

Стратегия обновления гессиана Бройдена-Флетчера-Гольдфарба-Шанно (BFGS).

Параметры:
exception_strategy{‘skip_update’, ‘damp_update’}, необязательно

Определяет, как действовать при нарушении условия кривизны. Установите в 'skip_update', чтобы просто пропустить обновление. Или, альтернативно, установите в 'damp_update' для интерполяции между фактическим результатом BFGS и неизменённой матрицей. Обе стратегии исключений объясняются в [1], стр.536-537.

min_curvaturefloat

Это число, масштабированное коэффициентом нормализации, определяет минимальную кривизну dot(delta_grad, delta_x) разрешено оставаться незатронутым стратегией исключения. По умолчанию равно 1e-8, когда exception_strategy = 'skip_update' и равно 0.2, когда exception_strategy = 'damp_update'.

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

Этот параметр может использоваться для инициализации матрицы Гессе или её обратной. Когда задано число с плавающей точкой, соответствующий массив инициализируется как np.eye(n) * init_scale, где n — это размерность задачи. В качестве альтернативы, если точно (n, n) симметричный массив задан, этот массив будет использован. В противном случае генерируется ошибка. Установите его в 'auto', чтобы использовать автоматическую эвристику для выбора начального масштаба. Эвристика описана в [1], стр.143. По умолчанию 'auto'.

Методы

dot(p)

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

get_matrix()

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

initialize(n, approx_type)

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

update(delta_x, delta_grad)

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

Примечания

Обновление основано на описании в [1], стр.140.

Ссылки

[1] (1,2,3)

Носедаль, Хорхе, и Стивен Дж. Райт. “Численная оптимизация” Второе издание (2006).