具有框约束的非线性最小二乘法


10

推荐什么方法来做非线性最小二乘法min erri(p)2,且有盒约束loj<=pj<=hij?在我看来(愚蠢地赶到)可以使框约束成为二次方,并且将

ierri(p)2+Cjtub(pj,loj,hij)2
其中tub(x,lo,hi)是形状为\___ /, 的“桶函数”max(lox,0,xhi)
这在理论上起作用,在实践上起作用吗?
(有关NLS +的理论文章似乎很多,但我的兴趣是实用的-
实际或现实的测试用例将帮助我在方法中进行选择。)

(专家,请添加标签:“最小二乘”?)


5
用罚函数代替严格约束是数值优化中的常用技术。您似乎建议的是这种替换的一种特殊形式。您可以阅读所有有关类似技术的信息,例如,在这里:stanford.edu/~boyd/cvxbook
David Ketcheson 2012年

ppi=min(max(loj,pj),hij)

Answers:


11

添加平方罚分项以摆脱约束是一种简单的方法,仅给出1级/罚因子的精度。因此,除非您在计算过程中让损失达到无穷大,否则不建议您以较高的精度使用。但是高的罚分因子使Hessian病情严重,这限制了可达到的总精度,而没有明确考虑约束条件。

请注意,约束约束比常规约束容易得多,因为约束约束实际上从不转换为惩罚。

求解器L-BFGS-B(使用大约5维的历史)通常在两个低的高维中都非常可靠且快速地解决约束问题。例外是问题的收敛性,这些问题在解决方案之外变得很平坦,在解决方案中很容易陷入下降方法。

我们在许多不同的维度上对非常不同的函数进行了许多实验,并提供了许多不同的求解器,因为我们需要一个非常强大的边界约束求解器作为全局优化软件的一部分。L-BFGS-B显然是通用方法,尽管当然在其他问题上,其他求解器的性能要好得多。因此,我建议将L-BFGS-B作为首选,并在L-BFGS-B无法很好地处理您的特殊问题的情况下尝试其他技术。


L-BFGS在IPOPT中可用,我修改了答案。
阿里

5

我只会使用通用NLP求解器 IPOPT。它是我尝试过的最强大的求解器。

除非您有一些非常特殊的要求,否则没有理由坚持使用特定于问题的求解器,该求解器仅适用于具有框约束的NLS。

需求的变化(例如,添加非线性约束)将导致特定问题的求解器严重头痛。如果使用通用IPOPT,则不会有此类问题。


更新:您可以尝试使用IPOPT的L-BFGS,请参阅文档中的准牛顿一节。

解决方案的速度可以更快,但会损害IPOPT的出色鲁棒性。我认为,请使用精确的导数(如果可用)。只有在我已经证明性能问题的情况下,我才会开始使用近似值(例如L-BFGS)。


我不知道IPOPT的效果如何,但是您的建议使我想起了提倡下坡单纯形法的类似言论。由于非线性最小二乘是常见的问题类别,因此使用现有的NLS解算器之一完全拒绝对我来说有点可疑。
Thomas Klimpel 2012年

@ThomasKlimpel好吧,丹尼斯应该给我们更多细节,然后我们可以帮助他选择合适的求解器。:)或者他可以自己检查一下,找出最适合他的需求。IPOPT似乎是一个很好的解决方案。
阿里

@Ali,能否请您指出一些“真实或真实的测试用例”?
丹尼斯2012年

@denis我可以,但我无意这样做,这会让您偏离轨道。唯一重要的是IPOPT如何处理您的问题。除非您有一些非常特殊的要求,否则它应该可以很好地解决。IPOPT具有与MATLAB,C ++,C,Fortran,R,AMPL,CUTEr的接口。选择一个接口并测试您的问题会发生什么:)测试特定于问题的解决程序也不会很容易。
阿里

@Thomas Klimpel,猜想我不清楚:我不是拒绝,不是问软件包,而是问见解或测试案例:为什么这种琐碎的方法可能行不通?
丹尼斯2012年

1

所述řminpack.lm CRAN包提供列文伯格-马夸尔特执行与框约束。

通常,对于最小二乘问题,Levenberg-Marquardt比L-BFGS-B更适合。在具有挑战性的问题上,它将更好地融合。由于它是针对非线性最小二乘问题量身定制的,因此它也将比通用IPOPT快得多。

R包选择了一种非常简单的投影方法来强制执行约束(请参见源代码)。根据您使用的LM实现,可能很容易包含它。

现在,注释中使用转换的建议(例如,在scipy中使用正弦转换)也是将不受约束的LM算法转换为受限算法的一种好方法。如果Jacobian是分析型的,则还需要将转换包括在Jacobian中。


0

(几年后)两个处理盒约束的求解器:

  • Scipy minimum_squares 有3种方法,并提供大量文档:

    1. 'trf':信任区域反射
    2. “狗箱”
    3. 'lm':MINPACK的传统包装器,没有盒子的限制。
  • 蜡膜

1
Scipy明确表示,Levenberg-Marquardt算法无法处理盒子约束。
tholy
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.