非线性最小二乘问题中优化函数的缩放

计算科学 优化 非线性规划
2021-12-23 03:25:10

假设我正在最小化以下功能:

g(α)=i=1n(yif(xi,α))2,

在哪里yixi是数据,f是一个已知的非线性函数并且α感兴趣的参数(尺寸大于 1)。最小化是否更好

g(α)n

而是为了防止舍入错误等?在我的情况下,我得到了相互矛盾的结果,对于某些问题,归一化会导致实现收敛的比例大幅提高(我进行 MC 模拟,所以我知道真实值α) 在其他情况下不是那么多。也许有某种算法或一般建议何时选择缩放,何时不选择?

我使用 R 的optim函数进行优化。我试过了method=Nelder-Mead"CG""BFGS"结果不同CGBFGS相同Nelder-Mead差异很小,但可以衡量,尤其是对于BFGS. 自然地,我为每次优化运行使用相同的起始值和相同的数据。

2个回答

优化的难点在于找到最小值的位置,而不是此时的这就是为什么您的缩放没有区别:位置完全相同。此外,无论您是否缩放目标函数,每个合理的优化算法都应该产生完全相同的中间点序列(迭代)。例如,对于牛顿法,这很容易看出。

当然,如果您使用的是自己的最小化器,并且它不具备无论函数是否缩放,迭代序列都相同的特性,那么您就有麻烦了。然而,这主要只是表明算法设计存在问题。

如果 Nelder-Mead 是一致的,但基于梯度的方法不是,则可能是梯度缩放不当。例如。参数 n 的单位变化对目标函数的影响与参数 m 的单位变化非常不同。尝试将参数(什么是 f btw?)缩放到(大约)相同的范围,或者如果你可以更好,这样如果你将任何单个参数更改给定数量,目标函数也会发生类似的变化。(例如http://www.alglib.net/optimization/scaling.php