繁体   English   中英

限制负对数似然最小化的参数

[英]Constrain on parameters for Negative Log Likelihood Minimization

我正在尝试拟合 5 个参数(a,b,c,d,e)model,其中一个参数受另一个参数的约束,比方说,

0< d < 1

e < |d|

我目前正在使用zfit ,据我所知,使用iMinuit

我只创建了zfit.Parameters并设置了限制,以便它们可以访问的范围是有效的,再一次,让我们说:

d = zfit.Parameter('d', value=0.5, lower_limit=0.3, upper_limit=1.0, step_size=0.01)

e = zfit.Parameter('e', value=0.1, lower_limit=0.0, upper_limit=0.3, step_size=0.01)

到目前为止,它一直运行良好,但我认为这不是正确的方法。

所以我的问题是,处理这种约束的正确方法是什么?

干杯

我会谨慎使用这个限制,因为它们会阻塞变量,理想情况下,它们应该远离最终值。

有两种方法可以实现您想要的:

  • 要么在“数学上”施加约束作为逻辑结果,因此使用组合参数(这是其他参数的 function)从另一个参数定义一个参数。 如果可能,这应该是首选方式。
  • 另一种选择是通过附加条款施加这种限制。 但是,这可能会在您修改可能性时产生影响。 最小化器会找到一个最小值,但这可能不是您寻找的最小值。 您可以使用 SimpleConstraints 并在违反上述任何一项时为可能性添加一个惩罚项(例如tf.cast(tf.greater(d, 1), tf.float64) * 100. )。 也许还要确保使用 use_minuit_grad 运行 minuit。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM