Skip to content

Commit 42d44e7

Browse files
committed
PGMIntro completed
1 parent 04c21d6 commit 42d44e7

File tree

2 files changed

+178
-2
lines changed

2 files changed

+178
-2
lines changed

1.Intro_Math.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ p(\theta|X)=\frac{p(X|\theta)\cdot p(\theta)}{p(X)}=\frac{p(X|\theta)\cdot p(\th
2424
$$
2525
为了求 $\theta$ 的值,我们要最大化这个参数后验MAP:
2626

27-
27+
2828
$$
2929
\theta_{MAP}=\mathop{argmax}\limits _{\theta}p(\theta|X)=\mathop{argmax}\limits _{\theta}p(X|\theta)\cdot p(\theta)
3030
$$

7.PGMIntro.md

Lines changed: 177 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,5 +120,181 @@ $$
120120
$$
121121
\phi(x_{ci})=\exp(-E(x_{ci}))
122122
$$
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 算法的推广。
124300

0 commit comments

Comments
 (0)