【问题标题】:R nlminb What does false convergence actually mean?R nlminb 错误收敛实际上是什么意思?
【发布时间】:2017-02-23 15:31:29
【问题描述】:

我正在使用函数 nlminb 来最大化函数并通过消息 false-convergence 获得收敛(convergence =0 )。

我尝试了文档但没有答案。我试图在函数上获取port documentation,并且可以找到函数nlminb

谁能指点我nlminb的端口文档或者解释一下错误收敛是什么意思?

我也尝试了其他优化函数,但尽管 nlminb 有点晦涩难懂,但它似乎比任何其他函数更快地收敛到正确答案。需要进行更多测试才能确定。即使通过 optimx 使用 nlminb 也相当慢。

如果我们能更多地了解这个函数是如何工作的,那将是一件好事。请 Fortran 编码人员随时提供帮助。

编辑 我应该早点找到代码。 Here 是,但它仍然是模糊的。有人可以帮忙吗

【问题讨论】:

    标签: r optimization fortran


    【解决方案1】:

    这是answer of mine from r-sig-mixed models的转贴/改编

    [... nlminb() 优化器...基于 PORT 库。

    ?nlminb 链接的文档曾经是http://netlib.bell-labs.com/cm/cs/cstr/153.pdfhttp://www.netlib.org/port/cs/cstr

    port/readme 指向“选定优化例程的使用摘要”,有时在 http://netlib.bell-labs.com/cm/cs/cstr/153.ps.gzhttp://netlib.bell-labs.com/cm/cs/cstr/153.pdf 中称为 PORT OPTIMIZATION DOCUMENTATION

    ...但是这些链接已损坏(port/readme 仍然存在,但提供的链接均无效...)。

    我设法通过Google Scholar 找到了文档,并发布了更方便的PDF version

    我能在这些文档中找到的唯一有用材料是:

    p。 5:错误收敛:可以计算梯度∇f(x) 错误地,其他停止公差可能太紧,或者 f 或 ∇f 在当前迭代 x 附近可能不连续。

    p。 9:V(XFTOL) — V(34) 是错误收敛容限。回报 如果没有更有利的停止测试,则出现 IV(1) = 8 满意并且如果尝试了最多 V(XFTOL) 的缩放长度的步长,但是 不接受。 “缩放长度”在 (5.1) 的意义上。这样一个 return 通常意味着计算 ∇f(x) 时有错误,或者 有利的收敛容差 (V(RFCTOL)、V(XCTOL) 和 也许 V(AFCTOL)) 对于 f(x) 的精度来说太紧了 计算(参见§9),或 ∇f (或 f 本身)在 x 附近是不连续的。一个 计算 ∇f(x) 的错误通常会导致错误收敛 只有几次迭代——通常是第一次。默认值 = 100*MACHEP。

    p。 13:有时评估 f(x) 涉及大量计算, 例如执行模拟或自适应数值求积或 积分一个常微分方程或偏微分方程。在这样的 为 f (x) 计算的值,例如 f̃( x ),可能涉及 实质性错误(在优化算法的眼中)。到 消除一些“错误收敛”信息和无用功能 评估,有必要增加停止公差, 当使用有限差分导数近似时,增加 用于估计导数的步长。

    【讨论】:

    • 非常感谢您的详细解释。我认为这篇文章提供了有关 nlminb 的宝贵信息,如果您不知道在哪里查找,这些信息就不容易找到。据我所知,它不在 SO 上。
    • 我正在使用我认为我已经很好地测试过的分析梯度和粗麻布。因此我寻找一个停止公差。
    猜你喜欢
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 2018-09-22
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多