nlm() 函数中的代码变量

机器算法验证 r 极值
2022-03-20 18:29:00

在 R 中有一个函数nlm(),它使用 Newton-Raphson 算法执行函数 f 的最小化。特别是,该函数输出定义如下的变量代码的值:

编码一个整数,指示优化过程终止的原因。

1:相对梯度接近于零,当前迭代可能是解。

2:在公差范围内连续迭代,当前迭代可能是解决方案。

3:最后一个全局步骤未能找到低于估计值的点。要么估计是函数的近似局部最小值,要么 steptol 太小。

4:超出迭代限制。

5:最大步长stepmax连续超过五次。要么函数在下方无界,要么在某个方向上从上方渐近到有限值,要么 stepmax 太小。

有人可以向我解释(也许使用一个只有一个变量的函数的简单说明)对应的情况 1-5 是什么?

例如,情况 1 可能对应于下图:

在此处输入图像描述

先感谢您!

1个回答

当牢记什么是最小化或最大化以及优化的工作原理时,这些情况会更清楚地理解。

假设我们有函数处具有局部最小值优化方法尝试构造收敛到总是表明,理论上构造的序列收敛到某些函数的局部最小值点。fx0xix0f

要在迭代中获得下一个候选可能是一个漫长的过程,因此通常所有算法都会限制迭代次数。这对应于情况4i

然后对于每个接近 ,我们都有所以如果这表明我们达到了最小值。这对应于情况3xx0f(x)>f(x0)f(xi)>f(xi1)

现在,如果函数处具有导数,则必然Newton-Raphson 方法在每一步都计算梯度,因此如果可能是一个解,它对应于情况1fx0f(x0)=0f(xi)0xi

实向量的每个收敛序列都是柯西序列,反之亦然,大致意思是如果 接近,则接近,反之亦然,其中是迭代次数。所以如果,并且我们知道理论上收敛到,那么我们应该接近最小点。这对应于情况2xix0xixi+1i|xixi1|<εxix0

收敛序列具有它们收缩的特性,即如果我们接近收敛,则序列的所有剩余元素都包含在小范围内。因此,如果理论上应该收敛的序列开始采取较大的步骤,这表明可能没有收敛。这对应于情况5

注意有意省略了严格的数学定义。