nlm()函数中的代码变量


9

在R中,有一个函数nlm(),它使用牛顿-拉夫森算法使函数f最小化。特别是,该函数输出如下定义的可变代码的值:

编码一个整数,指示优化过程为何终止。

1:相对梯度接近零,可能是电流迭代。

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

3:最后一个全局步骤未能找到一个低于估计值的点。估计是函数的局部最小值,或者阶跃过小。

4:超出迭代限制。

5:最大步长stepmax连续五次超过。该函数在下面是无界的,或者是从上方在某个方向上逐渐变为有限值,或者stepmax太小。

有人可以针对情况1-5解释我(也许只是使用一个仅带有一个变量的函数的简单图示)吗?

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

在此处输入图片说明

先感谢您!

Answers:


8

当记住什么是最小化或最大化以及优化如何工作时,可以更清楚地了解这些情况。

假设我们有功能 F 局部最小值 X0。优化方法尝试构建序列X一世 收敛到 X0。总是表明,理论上构造的序列对于某些类的函数收敛到局部极小点F

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

然后每个 X 相近 X0 我们有 FX>FX0。因此,如果FX一世>FX一世-1个这表明我们已达到最低要求。这对应于情况3

现在,如果功能 F 在有一个导数 X0 然后必然 FX0=0。牛顿-拉夫森(Newton-Raphson)方法计算每个步骤的梯度,因此如果FX一世0X一世可能是一种解决方案,对应于情况1

实向量的每个收敛序列都是柯西序列,反之亦然,大致意味着 X一世 接近 X0, 然后 X一世 接近 X一世+1个 反之亦然 一世是迭代次数。因此,如果|X一世-X一世-1个|<ε,并且我们知道理论上 X一世 收敛到 X0,那么我们应该接近最低点。这对应于情况2

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

注意严格的数学定义被有意排除在外。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.