在记录概率时摆脱 ValueErrors

Getting rid of ValueErrors when taking log of probabilities

我想找到最大可能路径,我尝试关联对数概率以消除乘法步骤序列时的下溢错误。

在计算最大可能路径时,我迭代地只保留最佳路径并从头到尾移除其他路径(考虑我在此处绘制的图像)。在第一步之后(我不必删除任何东西,因为从初始状态到第一个状态只有一条路径)我只保留到该状态的最佳可能路径,并且该状态有可能达到该状态。

在第 3 步(我没有在这里显示)中,这个分数将与其他状态转换概率相乘,算法将在第三步选择到每个状态的最佳路径。但是,正如您所看到的,因为与节点关联的分数(用 * 标记)是 -3.0,在尝试计算它的日志值时会抛出 ValueError。想摆脱这个吗?

P.S 我已经实现了,不想展示它,因为它很大,很难解释。错误仅在于以下行,其中 best_incoming_weight = -3.0 here

    probability = math.log2(best_incoming_weight) + math.log2(current_incoming_weights)

您计算了概率的对数。它必须为负数或零,因为零和一之间的任何数字的对数都是 non-positive。将得到的结果转换为传统概率,需要计算2**probability 其中probability如上