You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效对两个已零膨胀的概率分布执行卷积操作?

高效处理零膨胀分布的卷积方法

核心思路:拆解零膨胀分布的概率结构

零膨胀分布本质是点质量(零损失)和非零损失分布的混合,不需要直接在离散样本中填充大量零,而是通过概率分解拆分卷积场景,只对非零部分做必要的卷积计算。

假设:

  • 事件X:不发生概率为 $p_x$,发生时的损失分布为 $X^+$(均匀间隔离散样本,权重序列为 $W_x$,对应取值 $V_x$)
  • 事件Y:不发生概率为 $p_y$,发生时的损失分布为 $Y^+$(均匀间隔离散样本,权重序列为 $W_y$,对应取值 $V_y$)

X+Y的总损失分布可拆分为4种互斥场景,分别计算后合并:

  1. X、Y都不发生:损失为0,概率为 $p_x \times p_y$
  2. X不发生,Y发生:损失等于 $Y^+$ 的取值,每个权重乘以 $p_x \times (1-p_y)$
  3. X发生,Y不发生:损失等于 $X^+$ 的取值,每个权重乘以 $(1-p_x) \times p_y$
  4. X、Y都发生:损失为 $X^+ + Y^+$,这部分才需要对 $W_x$ 和 $W_y$ 做卷积,卷积结果的每个权重再乘以 $(1-p_x) \times (1-p_y)$

具体实现步骤

  1. 预处理非零样本

    • 确保 $X^+$ 和 $Y^+$ 的离散样本步长完全一致(若不一致,用线性插值对齐),记录步长 $h$
    • 确认 $W_x$ 和 $W_y$ 已归一化(即权重和为1,代表发生时的概率分布)
  2. 分别计算各场景的分布贡献

    • 零损失概率:直接计算 $p_0 = p_x * p_y$
    • 仅Y发生的分布:复制 $Y^+$ 的取值序列,权重序列更新为 $W_y \times p_x \times (1-p_y)$
    • 仅X发生的分布:复制 $X^+$ 的取值序列,权重序列更新为 $W_x \times (1-p_x) \times p_y$
    • 都发生的分布:对 $W_x$ 和 $W_y$ 做卷积(优先用FFT加速,时间复杂度O(N log N)),卷积后的取值序列为 $V_x + V_y$(步长仍为 $h$),权重序列更新为 $conv(W_x, W_y) \times (1-p_x) \times (1-p_y)$
  3. 合并所有非零分布

    • 将仅X、仅Y、都发生的三个分布按取值对齐,相同取值的权重相加
    • 最终总分布为:零损失概率 $p_0$ + 合并后的非零分布

多事件扩展方案

当需要合并多个零膨胀分布(如k个事件)时,采用迭代合并策略,每次维护当前总分布的两个核心参数:

  • 当前总零概率 $p_{total}$
  • 当前总非零损失的离散样本(取值 $V_{total}$、权重 $W_{total}$)

合并下一个事件Z(零概率 $p_z$,非零分布 $Z^+$)时:

  1. 新的总零概率:$p_{new} = p_{total} \times p_z$
  2. 新的非零分布由三部分组成:
    • 原非零分布,权重乘以 $p_z$(原发生,Z不发生)
    • $Z^+$ 的分布,权重乘以 $(1-p_{total})$(原不发生,Z发生)
    • 原非零分布与 $Z^+$ 的卷积,权重乘以 $(1-p_{total}) \times (1-p_z)$(都发生)
  3. 合并这三部分非零分布,更新为新的 $V_{total}$ 和 $W_{total}$

这种方式避免了每次合并都处理全零扩展的长序列,仅在必要时做非零部分的卷积,可高效扩展到大量事件场景。

关键优化点

  • FFT加速卷积:对于较长的非零样本序列,用FFT替代直接卷积,大幅降低计算时间
  • 步长对齐:确保所有非零样本步长一致,避免插值引入的额外误差
  • 权重截断:若某些非零权重极小(远小于精度阈值),可直接截断,减少计算量(需权衡精度与效率)

内容的提问来源于stack exchange,提问作者Vermin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:45:19