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

计算科学 算法 优化
2021-12-12 12:17:56

我正在尝试解决具有线性约束的单边非线性最小二乘问题,即问题:

minxi=1mri(x) s.t Axb

在哪里

ri(x)=fi(x)2如果fi(x)>0, 和ri(x)=0别的。

换句话说,这可以被认为是一个最小二乘问题,其中只有正残差(f's) 包括在内。我不能过分强调这不是一个数据拟合案例。我知道如果用于大多数数据拟合情况会发生什么,结果只是一个“高于”所有观察结果的函数。该应用程序用于解决通常在 minmax 范数中解决的非常具体的优化问题(minx||f(x)||)。在所有实际情况下,解都不会达到零,即||f(x)||0由于该行为f职能。

f函数是非线性的,我们可以访问它们的导数,这样我们就可以分析地计算雅可比行列而不会有太多额外的麻烦。

我们已经成功地应用了 Levenberg-Marquardt 算法,其中目标函数如上所示,即f的低于 0 从总和中删除,并与雅可比行列式的相应行J设置为零(即Ji,:=0如果fi(x)<=0. 这相当粗略,但工作正常,不幸的是我们无法合并线性约束。

我们知道有许多方法可以解决仅使用有界约束的 NLLSQ 问题,但这些方法显然不能解决我们的问题。我们发现只有一个具有线性约束的 NLLSQ,称为 DQED,并且通过修改我们的目标函数,就像我们对 Levenberg Marquardt 所做的那样,使用它并获得了有限的成功(我们对迭代/函数评估的次数不满意)。

我在找什么

对于解决具有线性约束的非线性最小二乘问题的方法的任何建议。此外,关于如何修改算法以纳入我们仅包含正残差这一事实的建议也非常受欢迎。最后,欢迎任何提示或想法,尽管我必须再次强调,问题的表述没有错,尽管我意识到由于缺乏可微性,它不是最适合优化的ri(x)什么时候ri(x)=0.

2个回答

我对这个问题的很多回答也适用于此;忽略 PDE 部分,假装我在谈论一个普通的非线性优化问题。

通常,由于您具有连续函数,因此您可以使用直接搜索方法,尽管这些方法的收敛速度可能比使用高阶导数信息的相应方法慢(在这种情况下,您没有)。您还可以尝试查看非平滑优化求解器,例如使用捆绑方法的求解器。该领域的主要人物是弗兰克克拉克,他开发了非光滑优化背后的大部分理论。否则,我对那部文学作品了解不多。

我的猜测是,由于您的目标中的不可微分性,使用假设一阶或二阶导数信息的方法会导致收敛问题。

(多年后)如您所知,Levenberg-Marquardt 优化器采用整个函数向量 并在内部进行求和和平方。因此 只会看到,这就是你想要的,对吗?[fi]
levmar( max( [fi...], 0 )]
fi>0

线性约束 具有相同的属性,只有正数很重要。因此,您可以将大量 levmar:乘以 1000 或 1000000。)当然必须查看的符号,但这很容易。另外我会添加一个术语以防止徘徊到无穷大。lini(x)Aixbi0fi
levmar( max( [fi... lini...], 0 )]
liniJacobiansi(x)filinixx

Scipy least_squaresceres 都做盒子约束,但我看不到任何将区域映射到盒子的方法。)Axb