首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为least_squares优化确定ftol、xtol和gtol的适当值?

如何为least_squares优化确定ftol、xtol和gtol的适当值?
EN

Stack Overflow用户
提问于 2021-05-25 09:06:59
回答 1查看 512关注 0票数 6

我使用least_squares优化来调整一个数值模型的输出到一些实测数据。在这个阶段,我想知道如何为ftolxtolgtol参数确定适当的值,因为它们决定了优化的停止方式和地点。在我看来,这些参数似乎很好地符合算法的框架,但我发现很难将它们与现实世界的属性联系起来。

例如,我对我的测量数据有不确定性估计,所以一旦优化器在不确定度的范围内达到模型输出和测量数据的充分一致,停止(即np.all(np.abs(model_output - measured_data) < uncertainty))是合理的。但是,这似乎不能用ftol参数来表示。终止条件是dF < ftol * F ( F是平方残差之和,dF是它的变化),因此即使我可以计算ftol,以防止在该级别内达到F时小于不确定性的更新,但我也有可能在远离期望的解决方案的某个地方过早终止。最后,这取决于优化器在每次迭代时要采取多大的步骤(从而决定了dF),因此dF可能比F小,尽管它离所需的解决方案很远。

另一个方面是参数值的变化。最后,利用优化得到的结果对一些实际装置进行调整,具有一定的精度。因此,例如,这些设备不会区分那些差于1e-6的值。这意味着,一旦模型的输出与实测数据之间达成了充分的一致,任何小于1e-6的参数更新都是没有意义的。另一方面,< 1e-6的许多小更新可以归结为更大的总体更新> 1e-6,而我又回到了同样的问题:这取决于优化器想要采取多大的步骤并限制这一点,我担心我可能会过早终止。此外,xtol参数再次描述了参数更新与当前值之间的缩放因子。虽然我可以使用一些值来反映设备围绕预期的最终参数值的精度,但我看到优化器达到中间参数值比最终估计值大两个数量级,因此这显然有过早终止的风险。

虽然我发现很难为ftolxtolgtol参数选择合适的值,但在没有好的参数的情况下保留它们的默认值也是不令人满意的,因为这意味着同意它们的默认值是合理的。

EN

回答 1

Stack Overflow用户

发布于 2022-02-01 23:22:39

ftolxtolgtol的选择与具体优化问题的收敛速度有关。假设找到了一个解决方案x_min+err,其中err是与真实值x_min的偏差,我喜欢以以下(简化)的方式来考虑公差:

ftol需要对F的形状有一定的了解。也就是说,F值的变化对x_min有多大的影响。更准确地说,如果是|F(x_min+err)/F(x_min) - 1| < gtol,那么errx_min小得多。当然,这在很大程度上取决于属性F(x)

xtolx_min的相对精度。即,|(x_min+err) / x_min - 1| < xtol.

gtol以下(梯度的无穷范数)的值被解释为零梯度(即一个平稳点)。这也需要一些关于F的形状和噪音的洞察力。

我知道这些都是相当不明确的说法。在最小F(x)的邻域内,一切都围绕着x_min的形状进行解析。请注意,在使用非线性最小二乘法时需要考虑更多的因素。也就是说,对估计算法的选择进行推理是很有用的。换句话说,不确定性的统计特性(由测量噪声、模型偏差、数字等引起)是否表现得很好,以至于可以期望有意义的估计(偏倚一致性主要特征)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67684927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档