簡體   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