scipy.optimize.
BFGS#
- class scipy.optimize.BFGS(exception_strategy='skip_update', min_curvature=None, init_scale='auto')[來源]#
Broyden-Fletcher-Goldfarb-Shanno (BFGS) 黑塞矩陣更新策略。
- 參數:
- exception_strategy{‘skip_update’, ‘damp_update’}, 選擇性
定義當曲率條件被違反時如何進行。設定為 ‘skip_update’ 以直接跳過更新。或者,設定為 ‘damp_update’ 以在實際的 BFGS 結果和未修改的矩陣之間進行內插。兩種例外策略都在 [1], p.536-537 中有解釋。
- min_curvaturefloat
此數值,經由正規化因子縮放,定義了最小曲率
dot(delta_grad, delta_x)
,允許不受例外策略影響。預設值在exception_strategy = 'skip_update'
時等於 1e-8,在exception_strategy = 'damp_update'
時等於 0.2。- init_scale{float, np.array, ‘auto’}
此參數可用於初始化黑塞矩陣或其反矩陣。當給定一個浮點數時,相關陣列會初始化為
np.eye(n) * init_scale
,其中n
是問題維度。或者,如果給定一個精確(n, n)
形狀的對稱陣列,則將使用此陣列。否則會產生錯誤。設定為 ‘auto’ 以使用自動啟發式方法來選擇初始縮放。啟發式方法在 [1], p.143 中有描述。預設值為 ‘auto’。
註解
此更新基於 [1], p.140 中的描述。
參考文獻
方法
dot
(p)計算內部矩陣與給定向量的乘積。
返回目前的內部矩陣。
initialize
(n, approx_type)初始化內部矩陣。
update
(delta_x, delta_grad)更新內部矩陣。