gpt4 book ai didi

math - 如何实现数值稳定的加权 logaddexp?

转载 作者:行者123 更新时间:2023-12-02 13:45:07 25 4
gpt4 key购买 nike

数值上最稳定的计算方法是什么:

log[(wx * exp(x) + wy * exp_y)/(wx + wy)]

权重wx, wy > 0在哪里?

如果没有权重,此函数为 logaddexp,并且可以使用 NumPy 在 Python 中实现为:

tmp = x - y
return np.where(tmp > 0,
x + np.log1p(np.exp(-tmp)),
y + np.log1p(np.exp(tmp)))

我应该如何将其推广到加权版本?

最佳答案

如果您将加权表达式重写为,您可以使用原始的 logaddexp 函数来实现此目的,

new logadd expression

这相当于,

logaddexp( x + log(w_x), y + log(w_y) ) - log(w_x + w_y)

它应该与原始的 logaddexp 实现一样在数值上稳定。

注意:我指的是 numpy.logaddexp正如您在问题中提到的,该函数接受 xy,而不是 xexp_y

关于math - 如何实现数值稳定的加权 logaddexp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com