使用线性/非线性参数优化函数的最佳方法

计算科学 优化 回归 非线性规划 共轭梯度
2021-12-01 13:53:57

我正在尝试使用表单的函数来拟合一些原始数据

f(r)=i=1KdkSk(nk,αk,r)

在哪里

Sk(nk,αk,r)=αknk+3(nk+2)!rnkexp(αkr)

(请注意,实际的拟合函数要复杂得多)。

现在,对于每个k, 这有两个非线性参数 (αknk) 和一个线性参数 (dk)。我正在考虑各种非线性优化方法(遗传算法、共轭梯度法等),但我想知道我应该如何使用线性函数。

我是否应该将它们包含在非线性优化中(当我为 CGM 取梯度时将它们用作变量等)?我应该完全优化非线性参数αn然后执行线性拟合d? 我应该混合和匹配 - 执行一系列共轭梯度步骤,然后执行线性拟合、冲洗并重复吗?

注意:如果它有帮助,dk是一个实数,nk是一个正整数,αk是正实数。

2个回答

无论如何,对于最小二乘情况,一种标准方法是 Linda Kaufman 的 可变投影算法(也请参阅)。这是基于Gene Golub 和 Victor Pereyra 早期针对可分离非线性最小二乘问题所做的工作,其中他们展示了如何利用 Moore-Penrose 伪逆的结构来产生在存在线性参数时更有效的算法。是该方法的一种 FORTRAN 实现。

(但另请参阅Ruhe 和 Wedin的这篇论文以了解不同的方法。)

如果您想获得与您想要执行的拟合相对应的优化问题的(局部 epsilon-)最优解,则应该同时优化所有参数。JM 的建议对于最小二乘情况是一个很好的建议,但如果您的拟合细节不是最小二乘,那么同时拟合所有参数的一般策略将产生比单独优化参数组更好的拟合。

如果nk是整数,您需要使用混合整数非线性规划 (MINLP) 求解器(或算法)。在 MINLP 求解器中包含目标中的积分将很困难,除非您可以以封闭形式对其进行数值评估,这将限制您使用固定求积。MINLP 求解器要求将问题明确提出为方程,而不是算法。(可以使用本文中的算法优化作为算法一部分提出的问题,但支持的算法类别不包括使用自适应正交的算法。)