scipy.optimize.fmin_l_bfgs_b¶
- scipy.optimize.fmin_l_bfgs_b(func, x0, fprime=None, args=(), approx_grad=0, bounds=None, m=10, factr=10000000.0, pgtol=1e-05, epsilon=1e-08, iprint=- 1, maxfun=15000, maxiter=15000, disp=None, callback=None, maxls=20)[源代码]¶
使用L-BFGS-B算法最小化函数函数。
- 参数
- func可调用f(x,*args)
函数最小化。
- x0ndarray
初步猜测是这样的。
- fprime可调用的fPrime(x,*args),可选
的梯度 func 。如果没有,则 func 返回函数值和梯度 (
f, g = func(x, *args)
),除非 approx_grad 在哪种情况下为真 func 仅返回f
。- args序列,可选
要传递给的参数 func 和 fprime 。
- approx_grad布尔值,可选
是否在数值上近似梯度(在这种情况下 func 仅返回函数值)。
- bounds列表,可选
(min, max)
中每个元素的对x
,定义该参数的界限。对以下选项之一使用NONE或+-infmin
或max
当没有那个方向的界限时。- m整型,可选
用于定义有限内存矩阵的可变度量校正的最大数量。(有限内存的BFGS方法不存储完整的Hessian,但使用与其近似的如此多的项。)
- factr浮动,可选
迭代在以下情况下停止
(f^k - f^{{k+1}})/max{{|f^k|,|f^{{k+1}}|,1}} <= factr * eps
,在哪里eps
是机器精度,由代码自动生成。的典型值 factr 是:1e12表示低精度;1e7表示中等精度;10.0表示极高精度。有关与的关系,请参阅注释 ftol ,它是暴露的(而不是 factr )由scipy.optimize.minimize
与L-BFGS-B的接口。- pgtol浮动,可选
迭代将在以下情况下停止
max{{|proj g_i | i = 1, ..., n}} <= pgtol
哪里pg_i
是投影渐变的第i个分量。- epsilon浮动,可选
在以下情况下使用的步长 approx_grad 为True,用于数值计算渐变
- iprint整型,可选
控制输出的频率。
iprint < 0
表示无输出;iprint = 0
最后一次迭代只打印一行;0 < iprint < 99
同时打印f和|proj g|
每次iPrint迭代;iprint = 99
打印除n向量外的每个迭代的详细信息;iprint = 100
同时打印活动集和最终x的变化;iprint > 100
打印每个迭代的详细信息,包括x和g。- disp整型,可选
如果为零,则无输出。如果为正数,则此参数将重写 iprint (即, iprint 获取 disp )。
- maxfun整型,可选
函数求值的最大次数。
- maxiter整型,可选
最大迭代次数。
- callback可调用,可选
在每次迭代后调用,如
callback(xk)
,在哪里xk
是当前参数向量。- maxls整型,可选
最大行搜索步数(每次迭代)。默认值为20。
- 退货
- xarray_like
最小值的估计位置。
- f浮动
的价值 func 至少是这样。
- dDICT
信息字典。
D [“warnflag”] 是
如果收敛,则为0,
1如果函数求值过多或迭代过多,
2如果由于其他原因停止,则在d中给出 [“任务”]
D [“毕业”] 渐变是否最小(应为0英寸)
D [“礼仪”] 进行的函数调用数。
D [“Nit”] 是迭代次数。
参见
minimize
与多变量函数的最小化算法的接口。见“L-BFGS-B” method 尤其是。请注意, ftol 选项通过该界面可用,而 factr 通过此接口提供,其中 factr 是乘以要得到的默认机器浮点精度的因子 ftol :
ftol = factr * numpy.finfo(float).eps
。
注意事项
L-BFGS-B许可证(FORTRAN代码):
此处包含的版本(Fortran代码)是3.0(发布于2011年4月25日)。作者是朱慈佑、理查德·伯德和豪尔赫·诺西达尔<nocedal@ece.nwu.edu>。它具有以下使用条件:
该软件是免费提供的,但我们希望所有描述使用该软件的工作的出版物或使用该软件的所有商业产品,至少引用下面给出的参考文献之一。此软件是在BSD许可下发布的。
参考文献
R.H.Byrd,P.Lu和J.Nocedal.有界约束最优化的有限记忆算法,(1995),SIAM科学与统计计算杂志,16,5,pp.1190-1208。
C.朱,R.H.伯德和J.Nocedal。L-BFGS-B:算法778:L-BFGS-B,FORTRAN大规模边界约束优化例程(1997),ACM数学软件学报,23,4,pp.550-560。
J.L.莫拉莱斯和J.Nocedal。L-BFGS-B:关于算法778的注释:L-BFGS-B,FORTRAN大规模边界约束优化例程(2011),ACM数学软件学报,38,1。