(我之前在 StackOverflow 上问过这个问题,但有人指出 CSSE 或 MSE 可能更合适)
我必须解决以下形式的约束优化问题,其中唯一的未知数是:
换句话说,一个非负最小二乘问题(NNLS)。或者,我可以解决一个线性程序(知道这些是不一样的,但我想要一个更方便的解决方案):
现在到目前为止一切顺利。我的问题是我使用的矩阵 A 和向量 b 包含非常小的条目(1e-60,1e-100)
。请注意,所有数字都大致如此之小。这是因为它们来自对高维 pdf 的评估。据我所知,即使是最精确的求解器也无法正确处理这些数字。我的算法的其余部分可以很好地处理这些数字,因为所有操作都是在对数空间中执行的,因为它在概率中很常见。
尝试使用我提出的任何一种方法来解决原始问题,即使用例如scipy.optimize.nnls
or scipy.optimize.linprog
,导致求解器仅返回一个零向量。
可以考虑解决以下修改后的问题(例如):
可以对前面显示的 LP 进行模拟修改。虽然这不会遇到相同的优化问题,但这个修改后的问题的最佳解决方案与原始问题的最佳解决方案不同。那是,并且. 解决这个修改后的问题并将其取幂并不会给出完全荒谬的结果,但对于我的目的来说还不够好。
尽管小条目给出了优化问题,我将如何解决原始问题和?