为什么要有因子图?

其实在因子图出现之前,还有一个概念叫有向图(用箭头代表因果关系),可以很好地表示概率的依赖关系。例如将其写作:
$P(x) = P(x_1)P(x_2)P(x_3)P(x_4 \mid x_1,x_2,x_3)P(x_5 \mid x_1,x_3)P(x_6 \mid x_4)P(x_7 \mid x_4,x_5)$
如果用因子图的方式写,则是下面这样子:
$$ \begin{align*} P(x) &= P(x_1)P(x_2)P(x_3)P(x_4 \mid x_1,x_2,x_3)P(x_5 \mid x_1,x_3)P(x_6 \mid x_4)P(x_7 \mid x_4,x_5)\ &= f(x_1)f(x_2)f(x_3)f(x_1,x_2,x_3,x_4)f(x_1,x_3,x_5)f(x_4,x_6)f(x_4,x_5,x_7) \end{align*} $$
那问题就来了,为什么有向图可以表示因果关系,还要引出因子图这种写法,最后变成了一个联合分布,也看不出因果对应关系呢?其实'无条件概率'其实是条件概率的一种特殊情况。这里 $p(x_1), p(x_2), p(x_3)$ 看似不是条件概率,其实是:$p(x_1) = p(x_1 | Pa(x_1) = \emptyset)$,即'没有父节点的节点',其条件概率就是它本身。
需要注意以下两点:
【1】BN(贝叶斯网络)的因子有向图必须是合法的条件概率分布。条件概率分布必须满足:
- 必须归一化:$\sum_{x_i} p(x_i | parents) = 1$
- 必须是概率值,取值范围是 $[0, 1]$
- 必须表达'父变量→子变量'的因果方向
【2】因子图(Factor Graph)的因子是任意非负函数,完全没有这些限制。因子 $f(x_1,x_2,x_3)$ 可以是:
- 不归一化
- 值可以是任意正数(10, 0.3, $e^{-3}$, 99999 都行)
- 可以表示能量 $e^{-E}$
- 完全没有因果含义
它们只需要满足:$f(x) \geq 0$


