数值稳定的在线更新矢量和算法

时间:2012-12-10 21:52:51

标签: numerical-stability

给定向量v,我想跟踪变量sum_v中元素的总和。向量v的每个元素i是权重向量w_i与其他向量d_i的点积。因此,每次d_i改变时,v也是如此。我一直在通过在d_i改变时根据v_i的改变来改变sum_v来更新sum_v。不幸的是,小的数值不稳定性很快就会增加。

我可以使用哪些有效的技术来阻止这种情况?

编辑:现在,只要d_i发生变化,我的算法就会花费一些时间来更新sum_v。我想留在log(n)之下,其中n是v的长度。

1 个答案:

答案 0 :(得分:0)

一种解决方案是构建一个完整的二叉树,使叶子各自代表v_i的元素,父母代表其子元素的总和。更改v的元素需要对数时间来将更改过滤为sum_v,但结果在取消增量方面在数值上是稳定的,尽管不取消v的相邻元素。

找到一种方法可以使两种问题在数值上保持稳定,这是一个有趣的问题。