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)Вычислить произведение внутренней матрицы на заданный вектор.
Возвращает текущую внутреннюю матрицу.
initialize(n, approx_type)Инициализация внутренней матрицы.
update(delta_x, delta_grad)Обновить внутреннюю матрицу.
Примечания
Обновление основано на описании в [1], стр.140.
Ссылки