Demo 6:树近似 Ising 格点推断

本 demo 用一个 3×3 Ising 格点说明树近似(tree approximation)的核心想法:原始网格有环,精确推断需要枚举全部状态; 若只保留一棵 spanning tree,就可以在树上用 sum-product 精确计算边缘。这里刻意只讨论“直接删除边得到树”的朴素树近似,不引入其他近似算法。

问题情境:这是一个 3×3 格点上的 Ising / 地图调色式二值标记问题。每个格点代表一个待推断的区域、像素或地图单元,状态只能是 -1+1

模型与两种推断方式

p(x) ∝ exp( Σ_i h_i x_i + J Σ_(i,j) x_i x_j ), x_i ∈ {-1,+1}

精确推断

枚举全部 2^9=512 个状态,精确计算归一化常数和每个格点的边缘概率。它是本 demo 的 ground truth。

树近似

从 3×3 网格的 12 条边中选出 8 条构成 spanning tree,在这棵树上运行精确 sum-product。因为树无环,BP 在有限步内精确;但被删除的 off-tree 边不再影响推断。

这里不重新调参数:保留下来的节点证据 h_i 和树边耦合 J 原样使用;没有保留的边等价于把该边耦合设为 0。因此本 demo 展示的是最朴素、最透明的“直接删除边”树近似。

树近似到底做了什么?

在本 demo 中,树近似不学习新参数,也不补偿被删掉的边。操作只有两步:先选择一棵包含全部 9 个格点的树;再把不在树上的边从模型中删除。 这样得到的树模型仍使用原来的局部证据 h_i 和保留边上的同一个 J。优点是推断清楚、快速、可解释;代价是被删除的邻居约束不再传递信息,所以边缘概率可能偏离 exact inference。

如果采用更高级的结构化变分或树加权方法,确实可能重新加权或优化参数;但那已经不是这里的朴素树近似。本页只回答“直接删除边会怎样”。

精确推断
树近似

数值比较:p(x_i=+1)

更偏向 -1 不确定 / 0.5 更偏向 +1 树图橙色边 = 被保留的 spanning tree;灰色虚线 = 被树近似删除的边。