非线性方程组优化与求解系统中基于牛顿的方法


12

我要求澄清有关minpack的最新问题,并得到以下评论:

任何方程组都等于一个优化问题,这就是为什么在优化中基于牛顿的方法看起来很类似于求解非线性方程组的基于牛顿的方法。

我可能会在共轭梯度法的示例中得到最好的解释,这使我对此评论(以及有关专门的非线性最小二乘法求解器(如minpack)的负面评论)感到困惑。该方法适用于具有对称正定矩阵A的系统A x = b。它也可以用来解决普通最小二乘问题分钟X | | A x b | | 2对于任意矩阵AAx=bAminx||Axb||2A,但不建议这样做。为什么不应该这样做的一种解释是,系统的条件数将大大增加。

但是,即使将线性方程组转化为优化问题也被认为是有问题的,为什么对于一般情况却没有那么多问题呢?似乎与使用最先进的优化算法而不是使用稍微老化的非线性最小二乘法求解器有关。但是,与扔掉信息和增加系统条件数有关的问题不是相对独立于实际使用的优化算法吗?

Answers:


10

由于已引用了我的答案之一,因此我将尝试阐明为什么建议使用IPOPT而不是MINPACK。

我对使用MINPACK的反对意见与MINPACK所使用的算法无关,并且与它们的实现无关。我的主要反对意见是该软件的历史可以追溯到1980年,并于1999年进行了最后一次更新。我怀疑他或该软件的任何其他作者都不会继续关注该软件,并且没有人积极支持该软件。我可以在该软件上找到的唯一文档是JorgeMoré和其他MINPACK作者撰写的原始的1980 Argonne技术报告。(第1-3章可在此处找到,第4章可在此处找到。)搜索MINPACK源代码并仔细阅读文档(PDF是扫描的图像,无法搜索)之后,我看不到任何可满足约束的选项。由于非线性最小二乘问题的原始发布者想解决一个受约束的非线性最小二乘问题,因此MINPACK甚至无法解决该问题。

如果您查看IPOPT邮件列表,一些用户指出相对于Levenberg-Marquardt算法和更专业的NLS算法(参见此处此处此处),该软件包在非线性最小二乘(NLS)问题上的性能是混合的。相对于NLS算法,IPOPT的性能当然取决于问题。考虑到用户的反馈,相对于NLS算法,IPOPT似乎是一个合理的建议。

但是,您指出应该研究NLS算法。我同意。我只是认为应该使用比MINPACK更现代的软件包,因为我相信它会更好地执行,更易使用并得到支持。谷神星似乎是一个有趣的候选程序包,但它现在无法处理受约束的问题。尽管它没有实现经典的Levenberg-Marquardt,而是实现了无导数算法,但可以解决框约束的最小二乘问题。无导数算法可能会很好地解决大规模问题,但我不会将其用于小规模问题。我找不到其他激发他们对其软件工程充满信心的软件包。例如,乍看之下,GALAHAD似乎并没有使用版本控制或任何自动化测试。MINPACK似乎也不做这些事情。如果您有使用MINPACK的经验或有关更好软件的建议,我将不胜枚举。

考虑到所有这些,请回到我的评论引文:

任何方程组都等于一个优化问题,这就是为什么在优化中基于牛顿的方法看起来很类似于求解非线性方程组的基于牛顿的方法。

更好的评论可能会带来以下效果:

nng(x)=0

该陈述甚至适用于在约束条件下求解方程组。对于变量存在约束的情况,我不知道任何被认为是“方程求解器”的算法。我所知道的常见方法,可能是将几个学期的优化课程和在优化实验室中进行的研究弄得一团糟,是将方程组的约束条件合并到一个优化公式中。如果要尝试在类似Newton-Raphson的方案中使用约束条件进行方程求解,则最终可能会遇到投影梯度或投影信任区域方法,这与约束优化中使用的方法非常相似。


我确实有MINPACK的经验。作为本地方法就足够了。我喜欢这样,无需进行任何调整即可使停止条件正常运行。我知道有约束的事情可能很烦人,特别是因为这不会对算法本身进行重大更改。我什至知道提供变量和一般线性约束范围的LM实现,但是这些实现并不比MINPACK本身年轻得多,而且我也没有费心去评估它们。
Thomas Klimpel 2012年

1
g(x)=0g(x)2

@JedBrown:我应该改变语言。我认为,仅当函数评估非常昂贵时,才需要使用无导数优化(DFO)。出于某种原因,想到的一个开创性案例是目标涉及解决PDE时,这就是为什么我说“大规模”(当然,对于我来说,在优化中,“大规模PDE”的含义与对您来说,他们会定期并行解决PDE)。当我想到“用约束求解方程”时,我想到的问题是。(续)g(x)=0,xS,SRn,SRn
Geoff Oxberry 2012年

@JedBrown:解决该问题的标准方法是解决。可能还有其他方法,但我不知道。我不建议一个丢弃 ; 具有非零目标函数值的极小值显然无法解决要求解的方程组。在非凸情况下,必须使用全局优化方法来证明解决方案的存在或不存在。我对变分不等式没有很多经验,所以我现在还不清楚在这里VI的作用,尤其是因为不一定是圆锥体。minxSg(x)2g(x)=0S
Geoff Oxberry 2012年

1
因此,您仍然需要能够精确定义位于边界上的解决方案的含义。通常作为互补性表述的VI可以做到这一点。对于无导数,我有相反的看法,尤其是在设计空间较大时。如果目标涉及昂贵的PDE解决方案,那么我认为这是必须有一个伴奏的要求,以便我们可以使用渐变来探索设计空间。与空间尺寸无关,PDE伴随仅花费正解的一小部分。这对模型的平滑度提出了额外的要求。S
杰德·布朗

14

如果给定的非线性系统是优化问题的一阶最优条件,那么我们通常可以使用该信息来生成更鲁棒的算法。例如,考虑等式

原始物镜

显然,这是一个唯一的最小值,并且我们希望我们的优化方法无论起点如何都可以找到它。但是,如果我们仅看第一阶最优条件下,我们正在寻找一个溶液的 [钨阿尔法]xf(x)=0

梯度

这有一个独特的解决方案,但是许多寻根方法可能会陷入局部最小值。

如果我们重新制定一个新的优化问题以最小化梯度平方的范数,我们正在寻找具有多个局部最小值的 [Wolfram Alpha]的全局最小值。xf(x)2

在此处输入图片说明

总而言之,我们从一个优化问题开始,这个问题有一个独特的解决方案,我们可以保证找到一种方法。我们将其重新构造为一个非线性的寻根问题,该问题具有可以在本地识别的独特解决方案,但寻根方法(如Newton)可能在达到它之前就停滞了。然后,我们将寻根问题重新表述为具有多个局部解决方案的优化问题(无法使用局部度量来确定我们不在全局最小值范围内)。

通常,每次将问题从优化转换为寻根或反之亦然时,我们会使可用的方法和相关的收敛性保证变弱。这些方法的实际机制通常非常相似,因此可以在非线性求解器和优化程序之间重用许多代码。


杰德(Jed),这些WA链接与您所说的完全不符。括号被忽略或在URL中传递不正确。
Bill Barth 2012年

奇怪,链接对我有用。可以依靠网络浏览器吗?有什么建议可以替代这种方式吗?
杰德·布朗

不确定。将重新格式化的链接从一个制表符剪切并粘贴到下一个制表符会导致其将WA拧紧,从而自行将其再次拧紧!
Bill Barth 2012年

还有其他人在链接方面遇到麻烦吗?我已经在多种浏览器中尝试过,并且在每种情况下都可以正常工作。
杰德·布朗

这是一个很好的答案。但是,我决定接受Geoff Oxberry的回答,因为我试图理解的部分原因是与该问题相关的“现实世界”问题。这包括像我这样的人尽管知道它的缺点,但仍在使用和推荐MINPACK,其他人则寻求有关解决“琐碎的”非线性系统的建议,但即使三个月也无法测试单个求解器大体时间。
Thomas Klimpel 2012年
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.