R包optim中BFGS方法的步长规则与Wolfe条件适用问题
R中optim函数BFGS实现相关问题解答
1. BFGS的步长规则是否符合Wolfe条件
R基础包中optim函数的BFGS算法没有使用固定步长,其线搜索实现遵循强Wolfe条件,和Nocedal、Wright所著《数值优化》中算法6.1的要求一致。
官方文档没有明确说明这一点,你可以通过查看R的底层源代码确认:optim的BFGS模块在迭代过程中会动态调整每一步的步长$\alpha_k$,直到同时满足充分下降条件和曲率条件,才会进入下一步的拟牛顿矩阵更新逻辑。
2. ndeps参数是否对应步长$\alpha$
ndeps参数和迭代步长$\alpha$没有任何关联。
该参数的作用是:当你没有向optim传入自定义的梯度函数时,函数会采用有限差分法近似计算目标函数的梯度,ndeps就是有限差分计算时的参数扰动步长,默认值为1e-3。你可以针对不同的优化参数设置不同的ndeps取值,来控制梯度近似的精度。
内容的提问来源于stack exchange,提问作者Esther12345
相关产品推荐
相关产品推荐

