Dirichlet Process

Introduction

考虑如下一个随机过程
给定分布 G 0 G_0 G0,一个正实数 α \alpha α

  1. 从分布 G 0 G_0 G0中采样 X 1 X_1 X1
  2. n > 1 n>1 n>1时:
    以概率 α n − 1 + α \frac{\alpha}{n-1+\alpha} n1+αα G 0 G_0 G0中采样 X n X_n Xn
    以概率 1 n − 1 + α \frac{1}{n-1+\alpha} n1+α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(X2X1)...P(XnX1,X2,...,Xn1)
样本轨道的第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(XnX1,..,Xn1)=n1+ααG0(Xn)i=1n1δXn̸=Xi+n1+α1i=1n1δ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+α)...(n1+α)αKk=1Knum(xk1)!i=1KG0(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) PDP(G0,α)
X 1 , X 2 , . . . , X n ∼ P X_1,X_2,...,X_n \sim P X1,X2,...,XnP

Defination

给定可测集 S S S,正实数 α \alpha α, S S S上的分布 G 0 G_0 G0, P ∼ G P ( G 0 , α ) P\sim GP(G_0,\alpha) PGP(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 过程
Ferguson, 1973
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} n1+α1与其中一个人坐同一张桌子,以 α n − 1 + α \frac{\alpha}{n-1+\alpha} n1+αα自己坐一个新的桌子。
注意到这个过程和上述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 &lt; 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&lt;i}(1-\beta_j) \newline G(x) = \sum_{i=1}^{+\infty} \pi_i\delta_{\theta_i}(x) βiBeta(1,α)θiG0π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} GDP(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,...,θn1)DP(n1+ααG0+n1+α1i=1nδθ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,...θn1,G0,α)=n1+ααG0+n1+α1i=1n1δθ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,...θnG0,α)=Gi=1nP(θiG)P(GG0,α)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=1Kwjf(x;θj)i=1Kwi=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) GGP(G0,α)θGGXiθif(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,...,θnx1,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,xi,α,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(θixi,λ)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,α)=n1+ααG0+n1+α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(θixi,θi,xi,α,G0)p(xiθi)p(θiθi,α,G0)p(θixi,θi,xi,α,G0)=riGi(θi)+j̸=iqi,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=bp(xiθj)
∑ j ≠ i q i , j + r i = 1 \sum_{j\neq i}q_{i,j}+r_i = 1 j̸=iqi,j+ri=1

只要我们使用的 G 0 G_0 G0是与 p ( x ∣ θ ) p(x|\theta) p(xθ)共轭的分布,就能够得到上述的条件概率,这样Gibbs采样所需的所有条件就全部达成了。
运行Gibbs采样直到收敛,这样我们就可以得到每一个样本 x i x_i xi对应的cluster

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值