You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scipy Optimize(L-BFGS-B)输出中变量M代表什么含义?

L-BFGS-B运行日志中参数M的含义

运行Scipy Optimize的L-BFGS-B算法时输出的日志内容如下:

RUNNING THE L-BFGS-B CODE

Machine precision = 2.220D-16

N = 425 M = 10

At X0 0 variables are exactly at the bounds

日志中参数的具体技术含义:

  • N是已知的可训练参数总维度,即优化问题的决策变量总个数,本次任务中为425维。
  • M是L-BFGS算法的有限记忆长度,对应Scipy接口里的maxcor超参数,默认值就是10。
    L-BFGS作为有限内存版本的拟牛顿优化算法,不会像原版BFGS那样存储完整的N×N大小的海森逆矩阵——当参数维度较高时,全量存储海森矩阵的内存开销会随维度平方级增长,成本极高。它只会保留最近M轮迭代过程中计算得到的曲率校正向量对,用这M组历史信息近似构造海森逆矩阵,进而计算每一步的迭代搜索方向。
  • 该参数的取值直接影响算法效率和收敛表现:
    • M设得越大,对海森矩阵的近似精度越高,单步迭代的内存占用、计算量也同步升高,在损失曲面不光滑、曲率变化大的场景下,适当调大M可能提升收敛稳定性
    • M设得越小,单步迭代速度越快、内存开销越低,但海森近似的精度会下降,可能需要更多迭代步才能收敛,部分场景下还可能出现迭代震荡
  • 本次日志中M=10是算法默认配置,对于425维参数的优化场景属于通用合理取值,大部分场景下不需要额外调整。

内容的提问来源于stack exchange,提问作者tonygrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:48:23