最小化(方法=‘L-BFGS-B’)¶
- scipy.optimize.minimize(fun, x0, args=(), method='L-BFGS-B', jac=None, bounds=None, tol=None, callback=None, options={'disp': None, 'maxcor': 10, 'ftol': 2.220446049250313e-09, 'gtol': 1e-05, 'eps': 1e-08, 'maxfun': 15000, 'maxiter': 15000, 'iprint': - 1, 'maxls': 20, 'finite_diff_rel_step': None})
使用L-BFGS-B算法最小化一个或多个变量的标量函数。
参见
有关参数睡觉的文档,请参阅
scipy.optimize.minimize
- 选项
- disp无或整型
如果 disp is None (默认值),然后是提供的版本 iprint 是使用的。如果 disp is not None ,则它将覆盖提供的版本 iprint 与你勾勒出的行为相吻合。
- maxcor集成
用于定义有限内存矩阵的可变度量校正的最大数量。(有限内存的BFGS方法不存储完整的Hessian,但使用与其近似的如此多的项。)
- ftol浮动
迭代在以下情况下停止
(f^k - f^{{k+1}})/max{{|f^k|,|f^{{k+1}}|,1}} <= ftol
。- gtol浮动
迭代将在以下情况下停止
max{{|proj g_i | i = 1, ..., n}} <= gtol
哪里pg_i
是投影渐变的第i个分量。- eps浮动或ndarray
如果 jac is None 用于通过向前差分数值逼近雅可比的绝对步长。
- maxfun集成
函数求值的最大次数。
- maxiter集成
最大迭代次数。
- iprint整型,可选
控制输出的频率。
iprint < 0
表示无输出;iprint = 0
最后一次迭代只打印一行;0 < iprint < 99
同时打印f和|proj g|
每次iPrint迭代;iprint = 99
打印除n向量外的每个迭代的详细信息;iprint = 100
同时打印活动集和最终x的变化;iprint > 100
打印每个迭代的详细信息,包括x和g。- callback可调用,可选
在每次迭代后调用,如
callback(xk)
,在哪里xk
是当前参数向量。- maxls整型,可选
最大行搜索步数(每次迭代)。默认值为20。
- finite_diff_rel_stepNONE或ARRAY_LIKE,可选
如果 jac in ['2-point', '3-point', 'cs'] 用于数值逼近雅可比的相对步长。绝对步长的计算公式为
h = rel_step * sign(x0) * max(1, abs(x0))
,可能会进行调整以适应边界。为method='3-point'
……的记号 h 被忽略。如果无(默认),则自动选择步骤。
注意事项
该选项 ftol 是通过
scipy.optimize.minimize
接口,但调用scipy.optimize.fmin_l_bfgs_b
直接暴露在 factr 。两者之间的关系是ftol = factr * numpy.finfo(float).eps
。即, factr 乘以默认的计算机浮点精度以得出 ftol 。