|
120 | 120 | $$
|
121 | 121 | \phi(x_{ci})=\exp(-E(x_{ci}))
|
122 | 122 | $$
|
123 |
| -这个分布叫做 Gibbs 分布(玻尔兹曼分布)。于是也可以记为:$p(x)=\frac{1}{Z}\exp(-\sum\limits_{i=1}^KE(x_{ci}))$。这个分解和条件独立性等价(Hammesley-Clifford 定理),这个分布的形式也和指数族分布形式上相同,于是满足最大熵原理。 |
| 123 | + 这个分布叫做 Gibbs 分布(玻尔兹曼分布)。于是也可以记为:$p(x)=\frac{1}{Z}\exp(-\sum\limits_{i=1}^KE(x_{ci}))$。这个分解和条件独立性等价(Hammesley-Clifford 定理),这个分布的形式也和指数族分布形式上相同,于是满足最大熵原理。 |
| 124 | +
|
| 125 | +## 两种图的转换-道德图 |
| 126 | +
|
| 127 | +我们常常想将有向图转为无向图,从而应用更一般的表达式。 |
| 128 | +
|
| 129 | +1. 链式: |
| 130 | +
|
| 131 | + ```mermaid |
| 132 | + graph TB; |
| 133 | + A((A))-->B((B)); |
| 134 | + B-->C((C)); |
| 135 | + ``` |
| 136 | +
|
| 137 | + 直接去掉箭头,$p(a,b,c)=p(a)p(b|a)p(c|b)=\phi(a,b)\phi(b,c)$: |
| 138 | +
|
| 139 | + ```mermaid |
| 140 | + graph TB; |
| 141 | + A((A))---B((B)); |
| 142 | + B---C((C)); |
| 143 | + ``` |
| 144 | +
|
| 145 | +2. V 形: |
| 146 | +
|
| 147 | + ```mermaid |
| 148 | + graph TB; |
| 149 | + B((B))-->A((A)); |
| 150 | + B-->C((C)); |
| 151 | + ``` |
| 152 | +
|
| 153 | + 由于 $p(a,b,c)=p(b)p(a|b)p(c|b)=\phi(a,b)\phi(b,c)$,直接去掉箭头: |
| 154 | +
|
| 155 | + ```mermaid |
| 156 | + graph TB; |
| 157 | + B((B))---A((A)); |
| 158 | + B---C((C)); |
| 159 | + ``` |
| 160 | +
|
| 161 | +3. 倒 V 形: |
| 162 | +
|
| 163 | + ```mermaid |
| 164 | + graph TB; |
| 165 | + A((A))-->B((B)); |
| 166 | + C((C))-->B |
| 167 | + ``` |
| 168 | +
|
| 169 | + 由于 $p(a,b,c)=p(a)p(c)p(b|a,c)=\phi(a,b,c)$,于是在 $a,c$ 之间添加线: |
| 170 | +
|
| 171 | + ```mermaid |
| 172 | + graph TD; |
| 173 | + a((a))---b((b)); |
| 174 | + b---c((c)); |
| 175 | + a---c; |
| 176 | + ``` |
| 177 | +
|
| 178 | + 观察着三种情况可以概括为: |
| 179 | +
|
| 180 | + 1. 将每个节点的父节点两两相连 |
| 181 | + 2. 将有向边替换为无向边 |
| 182 | +
|
| 183 | +## 更精细的分解-因子图 |
| 184 | +
|
| 185 | +对于一个有向图,可以通过引入环的方式,可以将其转换为无向图(Tree-like graph),这个图就叫做道德图。但是我们上面的 BP 算法只对无环图有效,通过因子图可以变为无环图。 |
| 186 | +
|
| 187 | +考虑一个无向图: |
| 188 | +
|
| 189 | +```mermaid |
| 190 | +graph TD; |
| 191 | + a((a))---b((b)); |
| 192 | + b---c((c)); |
| 193 | + a---c; |
| 194 | +``` |
| 195 | + |
| 196 | +可以将其转为: |
| 197 | + |
| 198 | +```mermaid |
| 199 | +graph TD; |
| 200 | + a((a))---f; |
| 201 | + f---b((b)); |
| 202 | + f---c((c)) |
| 203 | +``` |
| 204 | + |
| 205 | +其中 $f=f(a,b,c)$。因子图不是唯一的,这是由于因式分解本身就对应一个特殊的因子图,将因式分解:$p(x)=\prod\limits_{s}f_s(x_s)$ 可以进一步分解得到因子图。 |
| 206 | + |
| 207 | +## 推断 |
| 208 | + |
| 209 | +推断的主要目的是求各种概率分布,包括边缘概率,条件概率,以及使用 MAP 来求得参数。通常推断可以分为: |
| 210 | + |
| 211 | +1. 精确推断 |
| 212 | + 1. Variable Elimination(VE) |
| 213 | + 2. Belief Propagation(BP, Sum-Product Algo),从 VE 发展而来 |
| 214 | + 3. Junction Tree,上面两种在树结构上应用,Junction Tree 在图结构上应用 |
| 215 | +2. 近似推断 |
| 216 | + 1. Loop Belief Propagation(针对有环图) |
| 217 | + 2. Mente Carlo Interference:例如 Importance Sampling,MCMC |
| 218 | + 3. Variational Inference |
| 219 | + |
| 220 | +### 推断-变量消除(VE) |
| 221 | + |
| 222 | +变量消除的方法是在求解概率分布的时候,将相关的条件概率先行求和或积分,从而一步步地消除变量,例如在马尔可夫链中: |
| 223 | + |
| 224 | +```mermaid |
| 225 | +graph LR; |
| 226 | + a((a))-->b((b)); |
| 227 | + b-->c((c)); |
| 228 | + c-->d((d)) |
| 229 | +``` |
| 230 | + |
| 231 | +$$ |
| 232 | +p(d)=\sum\limits_{a,b,c}p(a,b,c,d)=\sum\limits_cp(d|c)\sum\limits_bp(c|b)\sum\limits_ap(b|a)p(a) |
| 233 | +$$ |
| 234 | + |
| 235 | +变量消除的缺点很明显: |
| 236 | + |
| 237 | +1. 计算步骤无法存储 |
| 238 | +2. 消除的最优次序是一个 NP-hard 问题 |
| 239 | + |
| 240 | +### 推断-信念传播(BP) |
| 241 | + |
| 242 | +为了克服 VE 的第一个缺陷-计算步骤无法存储。我们进一步地对上面的马尔可夫链进行观察: |
| 243 | + |
| 244 | +```mermaid |
| 245 | +graph LR; |
| 246 | + a((a))-->b((b)); |
| 247 | + b-->c((c)); |
| 248 | + c-->d((d)); |
| 249 | + d-->e((e)); |
| 250 | +``` |
| 251 | + |
| 252 | +要求 $p(e)$,当然使用 VE,从 $a$ 一直消除到 $d$,记 $\sum\limits_ap(a)p(b|a)=m_{a\to b(b)}$,表示这是消除 $a$ 后的关于 $b$ 的概率,类似地,记 $\sum\limits_bp(c|b)m_{a\to b}(b)=m_{b\to c}(c)$。于是 $p(e)=\sum\limits_dp(e|d)m_{b\to c}(c)$。进一步观察,对 $p(c)$: |
| 253 | +$$ |
| 254 | +p(c)=[\sum\limits_bp(c|b)\sum\limits_ap(b|a)p(a)]\cdot[\sum\limits_dp(d|c)\sum\limits_ep(e)p(e|d)] |
| 255 | +$$ |
| 256 | +我们发现了和上面计算 $p(e)$ 类似的结构,这个式子可以分成两个部分,一部分是从 $a$ 传播过来的概率,第二部分是从 $ e$ 传播过来的概率。 |
| 257 | + |
| 258 | +一般地,对于图(只对树形状的图): |
| 259 | + |
| 260 | +```mermaid |
| 261 | +graph TD; |
| 262 | + a((a))---b((b)); |
| 263 | + b---c((c)); |
| 264 | + b---d((d)); |
| 265 | +``` |
| 266 | + |
| 267 | +这四个团(对于无向图是团,对于有向图就是概率为除了根的节点为1),有四个节点,三个边: |
| 268 | +$$ |
| 269 | +p(a,b,c,d)=\frac{1}{Z}\phi_a(a)\phi_b(b)\phi_c(c)\phi_d(d)\cdot\phi_{ab}(a,b)\phi_{bc}(c,b)\phi_{bd}(d,b) |
| 270 | +$$ |
| 271 | +套用上面关于有向图的观察,如果求解边缘概率 $p(a)$,定义 $m_{c\to b}(b)=\sum\limits_c\phi_c(c)\phi_{bc}(bc)$,$m_{d\to b}(b)=\sum\limits_d\phi_d(d)\phi_{bd}(bd)$,$m_{b\to a}(a)=\sum\limits_b\phi_{ba}(ba)\phi_b(b)m_{c\to b}(b)_{d\to b}m(b)$,这样概率就一步步地传播到了 $a$: |
| 272 | +$$ |
| 273 | +p(a)=\phi_a(a)m_{b\to a}(a) |
| 274 | +$$ |
| 275 | +写成一般的形式,对于相邻节点 $i,j$: |
| 276 | +$$ |
| 277 | +m_{j\to i}(i)=\sum\limits_j\phi_j(j)\phi_{ij}(ij)\prod\limits_{k\in Neighbour(j)-i}m_{k\to j}(j) |
| 278 | +$$ |
| 279 | +这个表达式,就可以保存计算过程了,只要对每条边的传播分别计算,对于一个无向树形图可以递归并行实现: |
| 280 | + |
| 281 | +1. 任取一个节点 $a$ 作为根节点 |
| 282 | +2. 对这个根节点的邻居中的每一个节点,收集信息(计算入信息) |
| 283 | +3. 对根节点的邻居,分发信息(计算出信息) |
| 284 | + |
| 285 | +### 推断-Max-Product 算法 |
| 286 | + |
| 287 | +在推断任务中,MAP 也是常常需要的,MAP 的目的是寻找最佳参数: |
| 288 | +$$ |
| 289 | +(\hat{a},\hat{b},\hat{c},\hat{d})=\mathop{argmax}_{a,b,c,d}p(a,b,c,d|E) |
| 290 | +$$ |
| 291 | +类似 BP,我们采用信息传递的方式来求得最优参数,不同的是,我们在所有信息传递中,传递的是最大化参数的概率,而不是将所有可能求和: |
| 292 | +$$ |
| 293 | +m_{j\to i}=\max\limits_{j}\phi_j\phi_{ij}\prod\limits_{k\in Neighbour(j)-i}m_{k\to j} |
| 294 | +$$ |
| 295 | +于是对于上面的图: |
| 296 | +$$ |
| 297 | +\max_a p(a,b,c,d)=\max_a\phi_a\phi_{ab}m_{c\to b}m_{d\to b} |
| 298 | +$$ |
| 299 | +这个算法是 Sum-Product 算法的改进,也是在 HMM 中应用给的 Viterbi 算法的推广。 |
124 | 300 |
|
0 commit comments