gpt4 book ai didi

python - PyMC3 中的嘈杂或门

转载 作者:行者123 更新时间:2023-12-01 08:24:01 28 4
gpt4 key购买 nike

我正在尝试创建一个噪声 OR 门的 PyMC3 模型(共效贝叶斯网络,见下图),如 Rehder (1999) 中所述:

  • a1、a2 和 a3 中的每一个都同样可能独立地导致 a4:p(a4 | ai = 1) = c for i != 4。
  • 如果父节点关闭,则a4打开的概率为u。

生成的概率分布应如下表“共同效应因果模型”下所示。 q 是 parent 的无条件概率。

当然,我可以轻松地对 a4 对其他三个随机变量的依赖进行硬编码,但我想知道 PyMC3 是否有更紧凑的方式来表达这种析取交互。

common-effect net enter image description here

引用文献:Rehder, B. (1999)。分类的因果模型理论。见*认知科学学会第 21 届年会记录*(第 595-600 页)。

最佳答案

假设 c 是共享值,我能想到的捕获关系的最紧凑方法是将 a_4 降低到单个概率。也就是说,大致如下:

import pymc3 as pm
import theano.tensor as tt

with pm.Model() as model:
# prior probabilities
q = pm.Beta('q', alpha=1, beta=1)
c = pm.Beta('c', alpha=1, beta=1)
u = pm.Beta('u', alpha=1, beta=1)

# input nodes
a_i = pm.Bernoulli('a_i', p=q, shape=3)

# prob for a_4
p = pm.math.switch(tt.any(a_i), 1.0 - (1.0 - c)**tt.sum(a_i), u)

# output node
a_4 = pm.Bernoulli('a_4', p=p)

prior = pm.sample_prior_predictive(samples=1000)

其中,如果任何 a_i 成功,那么我们计算 sum(a_i) 尝试中任何成功的概率(即 1-(1 -c)^sum(a_i)),否则只需使用 u

显然,先验概率可以根据需要固定或独立(例如,也许您想要独立的 q 值,这可以通过添加 shape=3 来完成) .

如果这不是您要寻找的内容,那么也许可以对问题进行一些说明。

关于python - PyMC3 中的嘈杂或门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54421539/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com