2016-10-14 39 views
4

我使用函数nlminb来最大化一个函数,并得到收敛(收敛= 0)与消息虚假收敛。R nlminb虚假收敛实际上意味着什么?

我尝试了文档,但无人接听。我试图让该函数的port documentation和能找到的功能nlminb

任何人都可以点我的nlminb港口文档或解释什么假收敛的意思是吗?

我也尝试过其他的优化功能,但虽然nlminb有点晦涩,似乎收敛比其他任何功能,正确的答案更快。需要执行更多测试来确保。即使通过optimx使用nlminb也相当缓慢。

这将是一件好事,如果我们了解更多如何这个功能工作。 Fortran编码器请随时提供帮助。

编辑 我应该早点找到代码。 Here它是但它仍是模糊不清。有人可以帮

回答

5

这是一个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

端口/自述点给“使用的概要选择优化例程”,有时被称为端口优化文档中http://netlib.bell-labs.com/cm/cs/cstr/153.ps.gzhttp://netlib.bell-labs.com/cm/cs/cstr/153.pdf

...但这些链接被打破(port/readme仍然存在,但没有任何链接提供工作...)。

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

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

页。 5:假收敛:梯度∇f(x)可以被计算 不正确,其它的停止公差可以是过紧,或任一 F或∇f可以是当前迭代X附近不连续的。

p。 9:V(XFTOL) - V(34)是误收敛容差。与IV的返回 (1)= 8,如果一个更有利的停止测试不是 满足并且如果缩放的长度的至多V(XFTOL)的工序试图但 不接受发生。 “缩放长度”是指(5.1)的含义。这种 返回通常意味着在计算∇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),可能涉及实质性错误(在优化算法的眼中)。为了消除一些“假收敛”消息和无用功能评估,有必要增加停止容限,并且当使用有限差分导数近似时,增加估计导数所用的步长。

+0

非常感谢这个详细的解释。我认为这篇文章提供了关于nlminb的有价值的信息,如果你不知道在哪里寻找,那么这些信息不容易找到。据我所知,它并没有这么做。 – DJJ

+0

我正在使用解析梯度和粗麻布,我认为我已经很好地测试了。因此我正在寻找一个停止容忍。 – DJJ

+0

@VladimirF,它是从r-sig-mixed-models邮件列表中重新发布的,而不是Stack Overflow ... –

相关问题