PyMC3 中的噪声 OR-gate
Noisy OR-gate in PyMC3
我正在尝试创建噪声 OR-gate(common-effect 贝叶斯网络,见下图)的 PyMC3 模型,如 Rehder (1999) 中所述:
- a1、a2 和 a3 中的每一个都同样可能独立地导致 a4:p(a4 | ai = 1) = c for i != 4.
- 如果parent个节点关闭,则a4打开的概率为u。
得到的概率分布应该如下面的 table,在 "Common Effect Causal Model" 下。 q 是 parents.
的无条件概率
当然,我可以轻松地硬编码 a4 对其他三个随机变量的依赖性,但我想知道 PyMC3 是否有更紧凑的方式来表达这种析取相互作用。
参考文献: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
来完成)。
如果这不是您要查找的内容,那么也许可以对问题进行一些说明。
我正在尝试创建噪声 OR-gate(common-effect 贝叶斯网络,见下图)的 PyMC3 模型,如 Rehder (1999) 中所述:
- a1、a2 和 a3 中的每一个都同样可能独立地导致 a4:p(a4 | ai = 1) = c for i != 4.
- 如果parent个节点关闭,则a4打开的概率为u。
得到的概率分布应该如下面的 table,在 "Common Effect Causal Model" 下。 q 是 parents.
的无条件概率当然,我可以轻松地硬编码 a4 对其他三个随机变量的依赖性,但我想知道 PyMC3 是否有更紧凑的方式来表达这种析取相互作用。
参考文献: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
来完成)。
如果这不是您要查找的内容,那么也许可以对问题进行一些说明。