【问题标题】:How to determine appropriate values for ftol, xtol and gtol for least_squares optimization?如何为最小二乘法优化确定 ftol、xtol 和 gtol 的适当值?
【发布时间】:2022-02-02 07:22:39
【问题描述】:

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

例如,我对我的测量数据进行了不确定性估计,因此一旦优化器在不确定性限制内达到模型输出和测量数据之间的足够一致性,停止是合理的(即np.all(np.abs(model_output - measured_data) < uncertainty))。然而,这似乎不能用ftol 参数来表达。终止条件是dF < ftol * F(其中F 是残差平方和,dF 是它的变化),所以即使我可以计算ftol 以防止更新小于不确定性,一旦F 有在该水平内达到,我也有可能在远离所需解决方案的地方提前终止。最后,它取决于优化器在每次迭代中它想要采取多大的步骤(从而确定dF),因此dFF 相比可能很小,即使它与所需的解决方案相去甚远。

另一方面是参数值的变化。最后,从优化中获得的结果值将用于调整一些实际设备,这些设备具有有限的精度。因此,例如,设备不会区分相差小于1e-6 的值。这再次意味着,一旦模型的输出和测量数据之间达到了足够的一致性,任何小于1e-6 的参数更新都没有意义。另一方面,< 1e-6 的许多小更新可以总结为更大的整体更新> 1e-6,我又回到了同样的问题:这取决于优化器它想要采取多大的步骤并限制这一点,我担心我会面临提前终止的风险。此外,xtol 参数再次仅描述了参数更新和当前值之间的比例因子。虽然我可以使用一些值来反映设备在预期最终参数值周围的精度,但我已经看到优化器达到的中间参数值比最终估计值大两个数量级,所以这很明显有提前终止的风险。

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

【问题讨论】:

  • 由于这没有任何活动并且不是真正的代码问题,您可能需要考虑 stackexchange.com/sites#science 的数学/comp-sci 论坛之一
  • @mdurant 我希望使用此功能的人也可以分享他们对参数选择的想法/见解,我认为有更多的用户在 SO 上比在统计数据或其他网站上。最后,这也是关于具体的实现以及他们为什么选择公开这三个不同的停止条件以及为什么选择特定的默认值。但是,如果问题在这里没有得到答案,我会在其他 SE 站点之一再次询问。
  • 我的拟合经验与您的相似:有时默认设置效果很好,有时效果不佳,这在很大程度上取决于所选择的算法。我担心这可能是普通科学家/编码员的经验!

标签: python optimization scipy scipy-optimize


【解决方案1】:

ftolxtolgtol的选择与具体优化问题的speed of convergence有关。 假设找到解决方案x_min+err,其中err 是与真实值x_min 的偏差,我喜欢以以下(简化)方式考虑容差:

ftol 需要对F 的形状在最小值附近有所了解。即,F 的值变化了多少x_min。更准确地说,如果|F(x_min+err)/F(x_min) - 1| < gtolerrx_min 相比小到可以忽略不计。当然,这在很大程度上取决于属性F(x)

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

gtol 以下的值(梯度的无穷范数)被解释为零梯度(即,一个静止点)。这也需要了解F 的形状和噪声。

我知道这些都是相当不具体的陈述。一切都围绕F(x) 的形状在最小值x_min 附近解决。 请注意,使用non-linear least squares methods 时需要考虑更多因素。即,推理选择estimation algorithm 很有用。换句话说:不确定性的统计特性(由测量噪声、模型偏差、数字等引起)是否表现良好,以至于可以预期有意义的估计(biasednessconsistencymain characteristics)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2013-05-20
    • 2020-05-20
    相关资源
    最近更新 更多