Introduction
考虑如下一个随机过程
给定分布
G
0
G_0
G0,一个正实数
α
\alpha
α
- 从分布 G 0 G_0 G0中采样 X 1 X_1 X1
-
n
>
1
n>1
n>1时:
以概率 α n − 1 + α \frac{\alpha}{n-1+\alpha} n−1+αα 从 G 0 G_0 G0中采样 X n X_n Xn
以概率 1 n − 1 + α \frac{1}{n-1+\alpha} n−1+α1, X n = X i X_n = X_i Xn=Xi
这个随机过程的样本轨道的联合分布根据链式法则,可以写成:
P
(
X
1
,
X
2
,
.
.
.
,
X
n
)
=
P
(
X
1
)
P
(
X
2
∣
X
1
)
∗
.
.
.
∗
P
(
X
n
∣
X
1
,
X
2
,
.
.
.
,
X
n
−
1
)
P(X_1,X_2,... ,X_n)=P(X_1)P(X_2|X_1)*...*P(X_n|X_1,X_2,...,X_{n-1})
P(X1,X2,...,Xn)=P(X1)P(X2∣X1)∗...∗P(Xn∣X1,X2,...,Xn−1)
样本轨道的第n个位置的条件概率为:
P
(
X
n
∣
X
1
,
.
.
,
X
n
−
1
)
=
α
n
−
1
+
α
G
0
(
X
n
)
∏
i
=
1
n
−
1
δ
X
n
≠
X
i
+
1
n
−
1
+
α
∑
i
=
1
n
−
1
δ
X
n
=
X
i
P(X_n|X_1,..,X_{n-1})=\frac{\alpha}{n-1+\alpha}G_0(X_n)\prod_{i=1}^{n-1}{\delta_{X_n\neq X_i}}+\frac{1}{n-1+\alpha}\sum_{i=1}^{n-1}\delta_{X_n=X_i}
P(Xn∣X1,..,Xn−1)=n−1+ααG0(Xn)i=1∏n−1δXn̸=Xi+n−1+α1i=1∑n−1δXn=Xi
可以计算出联合分布为
P
(
X
1
,
X
2
,
.
.
.
,
X
n
)
=
α
K
∏
k
=
1
K
n
u
m
(
x
k
−
1
)
!
α
(
1
+
α
)
.
.
.
(
n
−
1
+
α
)
∏
i
=
1
K
G
0
(
x
k
)
P(X_1,X_2,...,X_n) = \frac{\alpha^K\prod_{k=1}^{K}num(x_k-1)!}{\alpha(1+\alpha)...(n-1+\alpha)}\prod_{i=1}^{K}G_0(x_k)
P(X1,X2,...,Xn)=α(1+α)...(n−1+α)αK∏k=1Knum(xk−1)!i=1∏KG0(xk)
上述公式中
X
n
X_n
Xn表示第n个样本的取值,
x
k
x_k
xk表示样本取值为第k个状态。
可以看到,这个随机过程产生的样本,虽然不是独立的,但是样本轨道的联合分布,却与样本出现的顺序无关,也就是说样本轨道是可交换的,根据
De Finett表示定理,存在一个分布
P
P
P,
X
1
,
X
2
,
.
.
.
,
X
n
X_1,X_2,...,X_n
X1,X2,...,Xn在
P
P
P的条件下独立。
上述随机过程等价于
给定分布
G
0
G_0
G0与正实数
α
\alpha
α
P
∼
D
P
(
G
0
,
α
)
P\sim DP(G_0,\alpha)
P∼DP(G0,α)
X
1
,
X
2
,
.
.
.
,
X
n
∼
P
X_1,X_2,...,X_n \sim P
X1,X2,...,Xn∼P
Defination
给定可测集
S
S
S,正实数
α
\alpha
α,
S
S
S上的分布
G
0
G_0
G0,
P
∼
G
P
(
G
0
,
α
)
P\sim GP(G_0,\alpha)
P∼GP(G0,α),若对S上的任意有限划分
{
A
i
}
K
\{A_i\}_K
{Ai}K,都有:
P
(
A
1
)
,
P
(
A
2
)
,
.
.
.
,
P
(
A
k
)
∼
D
i
r
(
α
G
0
(
A
1
)
,
α
G
0
(
A
2
)
,
.
.
.
,
α
G
0
(
A
K
)
P(A_1),P(A_2),...,P(A_k)\sim Dir(\alpha G_0(A_1),\alpha G_0(A_2),...,\alpha G_0(A_K)
P(A1),P(A2),...,P(Ak)∼Dir(αG0(A1),αG0(A2),...,αG0(AK)
那么
G
P
(
G
0
,
α
)
GP(G_0,\alpha)
GP(G0,α)称为Dirichlet 过程
Dirichlet过程是一个分布上的分布。Dirichlet过程产生的每一个轨道,都是在S的任意划分上的一个Dirichlet分布
如果G是Dirichlet过程的一个样本轨道,那么G的表达形式为
G
(
x
)
=
∑
π
i
δ
θ
i
(
x
)
G(x) = \sum\pi_i\delta_{\theta_i}(x)
G(x)=∑πiδθi(x)
其中
∑
π
i
=
1
\sum\pi_i=1
∑πi=1
Dirichlet分布将原来连续的分布转化为了与原分布相似的一个离散的分布,随着
α
\alpha
α的增大,这个相似程度原来越大,当
α
=
+
∞
\alpha=+\infty
α=+∞时,G与原分布式相同的
Example
1. 中餐馆模型
有一个中餐馆有无限张桌子,每来一个客人都会有两个选择,以
1
n
−
1
+
α
\frac{1}{n-1+\alpha}
n−1+α1与其中一个人坐同一张桌子,以
α
n
−
1
+
α
\frac{\alpha}{n-1+\alpha}
n−1+αα自己坐一个新的桌子。
注意到这个过程和上述Introduction部分的过程是一样的,不作深入解释
Stick Breaking
给定一个参数为
α
\alpha
α的
B
e
t
a
Beta
Beta分布
B
e
t
a
(
1
,
α
)
Beta(1,\alpha)
Beta(1,α),以及一个基分布
G
0
G_0
G0
β
i
∼
B
e
t
a
(
1
,
α
)
θ
i
∼
G
0
π
i
=
β
i
∏
j
<
i
(
1
−
β
j
)
G
(
x
)
=
∑
i
=
1
+
∞
π
i
δ
θ
i
(
x
)
\beta_i \sim Beta(1,\alpha)\newline \theta_i \sim G_0 \newline \pi_i = \beta_i\prod_{j<i}(1-\beta_j) \newline G(x) = \sum_{i=1}^{+\infty} \pi_i\delta_{\theta_i}(x)
βi∼Beta(1,α)θi∼G0πi=βij<i∏(1−βj)G(x)=i=1∑+∞πiδθi(x)
相当于一根总长度为1的过程,不断的把剩余的部分切下来一小段分配给当前从基分布中产生的样本。
Dirichlet 过程的共轭
Dirichlet 过程的共轭是一个Dirichlet过程
G
∼
D
P
(
G
0
,
α
)
θ
∼
G
is observed
G\sim DP(G_0,\alpha)\newline \theta \sim G \text{ is observed}
G∼DP(G0,α)θ∼G is observed
那么
P
(
G
∣
θ
)
∼
D
P
(
α
1
+
α
G
0
+
1
1
+
α
δ
θ
,
α
+
1
)
P(G|\theta) \sim DP(\frac{\alpha}{1+\alpha}G_0+\frac{1}{1+\alpha}\delta_{\theta},\alpha + 1)
P(G∣θ)∼DP(1+ααG0+1+α1δθ,α+1)
如果有n-1个样本
P
(
G
∣
θ
1
,
.
.
.
,
θ
n
−
1
)
∼
D
P
(
α
n
−
1
+
α
G
0
+
1
n
−
1
+
α
∑
i
=
1
n
δ
θ
i
,
α
−
1
+
n
)
P(G|\theta_1,...,\theta_{n-1}) \sim DP(\frac{\alpha}{n-1+\alpha}G_0+\frac{1}{n-1+\alpha}\sum_{i=1}^n\delta_{\theta_i},\alpha -1+ n)
P(G∣θ1,...,θn−1)∼DP(n−1+ααG0+n−1+α1i=1∑nδθi,α−1+n)
新样本
θ
n
\theta_{n}
θn
P
(
θ
n
∣
θ
1
,
.
.
.
θ
n
−
1
,
G
0
,
α
)
=
α
n
−
1
+
α
G
0
+
1
n
−
1
+
α
∑
i
=
1
n
−
1
δ
θ
i
P(\theta_{n}|\theta_1,...\theta_{n-1},G_0,\alpha) = \frac{\alpha}{n-1+\alpha}G_0+\frac{1}{n-1+\alpha}\sum_{i=1}^{n-1}\delta_{\theta_i}
P(θn∣θ1,...θn−1,G0,α)=n−1+ααG0+n−1+α1i=1∑n−1δθi
同时
P
(
θ
1
,
.
.
.
θ
n
∣
G
0
,
α
)
=
∫
G
∏
i
=
1
n
P
(
θ
i
∣
G
)
P
(
G
∣
G
0
,
α
)
d
G
P(\theta_1,...\theta_n|G_0,\alpha) = \int _G \prod_{i=1}^nP(\theta_{i}|G)P(G|G_0,\alpha)dG
P(θ1,...θn∣G0,α)=∫Gi=1∏nP(θi∣G)P(G∣G0,α)dG
上述结果表明,当我们将Dirichlet过程的中间变量边缘化之后,任意样本之间都是相关的,其后验分布是一个Dirichlet过程
Dirichlet Process 的应用
Dirichlet 过程混合
我们假设分布有K个成分组合起来
f
(
x
)
=
∑
j
=
1
K
w
j
f
(
x
;
θ
j
)
∑
i
=
1
K
w
i
=
1
f(x) = \sum_{j=1}^Kw_jf(x;\theta_j)\newline \sum_{i=1}^K w_i= 1
f(x)=j=1∑Kwjf(x;θj)i=1∑Kwi=1
我们需要对成分K的分布进行建模,然而,任何有限的K值都是不合理的
而上述的stick breaking模型,恰好能够产生无穷多个权重,且权重之和为1。即:
f
(
x
)
=
∑
j
=
1
+
∞
w
j
f
(
x
;
θ
j
)
∑
i
=
1
+
∞
w
i
=
1
f(x) = \sum_{j=1}^{+\infty}w_jf(x;\theta_j)\newline \sum_{i=1}^{+\infty} w_i= 1
f(x)=j=1∑+∞wjf(x;θj)i=1∑+∞wi=1
相当于
K
=
+
∞
K=+\infty
K=+∞
也就是说我们假设x是由无穷多个成分混合起来的。
stick breaking对应的Dirichlet过程为
G
∼
G
P
(
G
0
,
α
)
θ
∣
G
∼
G
X
i
∣
θ
i
∼
f
(
x
;
θ
i
)
G\sim GP(G_0 ,\alpha)\newline \theta|G \sim G \newline X_i|\theta_i \sim f(x;\theta_i)
G∼GP(G0,α)θ∣G∼GXi∣θi∼f(x;θi)
为了确定每个
x
i
x_i
xi对应的
θ
i
\theta_i
θi,即
P
(
θ
1
,
θ
2
,
.
.
.
,
θ
n
∣
x
1
,
x
2
,
.
.
.
,
x
n
,
α
,
G
0
)
P(\theta_1,\theta_2,...,\theta_n|x_1,x_2,...,x_n,\alpha,G_0)
P(θ1,θ2,...,θn∣x1,x2,...,xn,α,G0)
我们需要使用Gibbs采样
先考虑
θ
i
,
x
i
\theta_i,x_i
θi,xi的条件分布
p
(
θ
i
,
x
i
∣
θ
−
i
,
x
−
i
,
α
,
G
0
)
=
p
(
x
i
∣
θ
i
)
p
(
θ
i
∣
θ
−
i
,
α
,
G
0
)
p(\theta_i,x_i|\theta_{-i},x_{-i},\alpha,G_0)=p(x_i|\theta_i)p(\theta_i|\theta_{-i},\alpha,G_0)
p(θi,xi∣θ−i,x−i,α,G0)=p(xi∣θi)p(θi∣θ−i,α,G0)
根据贝叶斯公式
p
(
θ
i
∣
x
i
,
λ
)
∝
p
(
θ
i
,
x
i
∣
λ
)
p(\theta_i|x_i,\lambda) \propto p(\theta_i,x_i|\lambda)
p(θi∣xi,λ)∝p(θi,xi∣λ)
而我们已经知道:
p
(
θ
i
∣
θ
−
i
,
G
0
,
α
)
=
α
n
−
1
+
α
G
0
+
1
n
−
1
+
α
∑
j
≠
i
δ
θ
j
p(\theta_{i}|\theta_{-i},G_0,\alpha) = \frac{\alpha}{n-1+\alpha}G_0+\frac{1}{n-1+\alpha}\sum_{j\neq i}\delta_{\theta_j}
p(θi∣θ−i,G0,α)=n−1+ααG0+n−1+α1j̸=i∑δθj
也就是说
p
(
θ
i
∣
x
i
,
θ
−
i
,
x
−
i
,
α
,
G
0
)
∝
p
(
x
i
∣
θ
i
)
p
(
θ
i
∣
θ
−
i
,
α
,
G
0
)
p
(
θ
i
∣
x
i
,
θ
−
i
,
x
−
i
,
α
,
G
0
)
=
r
i
G
i
(
θ
i
)
+
∑
j
≠
i
q
i
,
j
δ
θ
j
(
θ
i
)
p(\theta_i | x_i,\theta_{-i},x_{-i},\alpha,G_0)\propto p(x_i|\theta_i)p(\theta_i|\theta_{-i},\alpha,G_0)\newline p(\theta_i | x_i,\theta_{-i},x_{-i},\alpha,G_0)= {r_i}G_i(\theta_i)+\sum_{j\neq i}q_{i,j}\delta_{\theta_j}(\theta_i)
p(θi∣xi,θ−i,x−i,α,G0)∝p(xi∣θi)p(θi∣θ−i,α,G0)p(θi∣xi,θ−i,x−i,α,G0)=riGi(θi)+j̸=i∑qi,jδθj(θi)
其中:
G
i
(
θ
i
)
=
G
0
(
θ
i
)
p
(
x
i
∣
θ
i
)
∫
θ
i
G
0
(
θ
i
)
p
(
x
i
∣
θ
i
)
d
θ
i
G_i(\theta_i)= \frac{G_0(\theta_i)p(x_i|\theta_i)}{\int _{\theta_i}G_0(\theta_i)p(x_i|\theta_i)d\theta_i}
Gi(θi)=∫θiG0(θi)p(xi∣θi)dθiG0(θi)p(xi∣θi)
为
G
0
G_0
G0在观察到
x
i
x_i
xi时的后验分布
r
i
=
b
∗
α
r_i = b*\alpha
ri=b∗α
q
i
,
j
=
b
∗
p
(
x
i
∣
θ
j
)
q_{i,j} = b*p(x_i|\theta_j)
qi,j=b∗p(xi∣θj)
∑
j
≠
i
q
i
,
j
+
r
i
=
1
\sum_{j\neq i}q_{i,j}+r_i = 1
j̸=i∑qi,j+ri=1
只要我们使用的
G
0
G_0
G0是与
p
(
x
∣
θ
)
p(x|\theta)
p(x∣θ)共轭的分布,就能够得到上述的条件概率,这样Gibbs采样所需的所有条件就全部达成了。
运行Gibbs采样直到收敛,这样我们就可以得到每一个样本
x
i
x_i
xi对应的cluster