8得票4回答
Logsoftmax 稳定性

我知道如何通过将-max _i x_i 添加到元素中来使softmax稳定。这可以避免溢出和下溢。现在,对此取对数可能会导致下溢。log softmax(x) 可能会评估为零,导致 - 无穷大。 我不确定如何解决它。我知道这是一个常见的问题。我读了几篇关于它的答案,但我还是不理解。但我仍然困...

7得票2回答
调试数值稳定性问题的策略?

我正在尝试编写Python版本的Wilson谱密度因式分解算法[1]。该算法将一个[QxQ]矩阵函数迭代地分解为其平方根(类似于牛顿-拉夫逊求解谱密度矩阵的扩展)。 问题是我的实现只能收敛于45x45或更小的矩阵大小。因此,在20次迭代后,矩阵之间的平方差之和约为2.45e-13。但是,如果...

7得票2回答
如何实现一个数值稳定的加权对数求和?(涉及IT技术)

什么是最稳定的计算方式来计算: log[(wx * exp(x) + wy * exp_y)/(wx + wy)] 这里的权重 wx、wy > 0 是什么意思? 如果没有权重,这个函数就是 logaddexp,可以使用NumPy在Python中实现: tmp = x - y r...

7得票1回答
数字接近1的幂次方的强大威力

我猜测有一些标准的技巧我没能找到:无论如何,我想以数值稳定的方式计算一个非常接近1(比如1-p,其中p < 1e-17)的大数次幂。在我的系统上,1-p被截断为1。 使用对数的泰勒展开式,我得到以下界限: exp(-np-np^2/2) ≤ exp(n*log(1-p)) ≤ exp(-n...

7得票5回答
一个稳定的二维矩阵的数值逆矩阵

在我正在编写的C语言数值求解器中,我需要倒置一个2x2矩阵,并将其乘以另一个矩阵的右侧。 C = B . inv(A) 我一直在使用以下反转2x2矩阵的定义: a = A[0][0]; b = A[0][1]; c = A[1][0]; d = A[1][1]; invA[0][0] ...

7得票4回答
使用numpy.random.multinomial时,如何避免值错误?

当我使用这个随机生成器:numpy.random.multinomial时,我一直得到以下结果: ValueError: sum(pvals[:-1]) &gt; 1.0 我总是传递这个softmax函数的输出: def softmax(w, t = 1.0): e = num...

7得票2回答
计算36x36矩阵的Jordan形式时出现了错误的解释

我一直在尝试计算一个由仅有三个不同的元素1、1/2和0组成的36x36矩阵的Jordan标准形。该矩阵是一个概率转移矩阵,因此,根据这些条目,该矩阵显然是稀疏的。 我遇到的问题是:每当我尝试计算时,我的计算机似乎会崩溃。 [V, J] = jordan(A), 或者 [V, J] =...

7得票1回答
CVXPY抛出“SolverError”异常的具体原因是什么?

我正在使用CVXPY(版本1.0)解决一个二次规划(QP),但通常会出现以下异常:SolverError: 求解器“xxx”失败。请尝试另一个求解器。这使得我的程序非常脆弱。我已经尝试了不同的求解器,包括CVXOPT、OSQP、ECOS、ECOS_BB、SCS等。它们都或多或少存在相同的问题。...