狄利克雷过程笔记

本文主要摘自 Yee Whye Teh 的《Dirichlet Processes: Tutorial and Practical Course》。


前言

简单考虑这样一类问题:根据已知观测数据集 $X=\{x_{i}\}_{i=1}^{|X|}$,预测新的数据 $\tilde{x}$ 的条件概率分布,即 $p(\tilde{x}|X)$。

若我们认为 $x$ 是满足 i.i.d 条件的参数为 $\theta$ 的随机变量,则将问题转化为:

$p(\tilde{x}|X)=\int_{\theta \in \Theta}p(\tilde{x}|\theta)p(\theta|X)d\theta$

$=\int_{\theta \in \Theta}p(\tilde{x}|\theta)\frac{p(X|\theta) \cdot p(\theta)}{p(X)}d\theta$

其中,$p(\theta|X)$ 称为后验分布,$p(\theta)$ 称为先验分布,$p(X|\theta)$ 称为似然分布,$p(X)$ 称为边缘分布


为求解上述积分式,则可将问题转化为:

  • 选择一个模型来用表示 $\theta$ 与 $X,\tilde{x}$ 的关系,即公式化似然函数 $p(x|\theta)$
  • 选择一个模型来表示超参数 $\alpha$ 与 $\theta$ 的关系,即公式化先验函数 $p(\theta):=p(\theta|\alpha)$
  • 根据选择的似然函数和先验函数,表示出 $x$ 的分布函数 $p(x)=\int p(x|\theta)p(\theta)d\theta$

由上述分析可知,求解 $p(\tilde{x}|X)$ 需要解决似然和先验建模的问题。


以投骰子为例,$x$ 代表着骰子投掷的值,考虑根据前 $n - 1$ 次投掷的值 $X=\{x_i|i=1,...,n-1\}$,求解第 $n$ 次投掷的值的分布 $p(x_{n-1}|x_{1},...,x_{n-1})$。

首先考虑似然函数的模型。假设骰子掷出六个面的值 $x=1,..,x=6$ 的概率分别是 $\theta_{1},...,\theta_{6}$,即:

$x|\theta \sim Discrete(\theta)$

其中,$\theta = \{\theta_{1},...,\theta_{6}\}, \sum_{i=1}^{6}\theta_{i}=1$,则 $x|\theta$ 的概率密度函数为:

$P(x|\theta)=\prod_{i=1}^{6}\theta_{i}^{\delta_{i}(x)}$

其中,当 $x$ 取第 $i$ 个值时 $\delta_{i}(x)$ 的值为1;否则为0。又 $x_{i}$ 是条件独立的,则有似然函数为:

$p(X|\theta)=\prod_{j=1}^{n-1}p(x_{j}|\theta)=\prod_{i=1}^{6}\theta_{i}^{\delta_{i}(X)}$

其中,$\delta_{i}(X)=\sum_{j=1}^{n-1}\delta_{i}(x_{i})$

接下来考虑先验分布的模型。假设 $\theta$ 满足狄利克雷分布,即:

$(\theta_{1},...,\theta_{6}) \sim Dirichlet(\alpha_{1},...,\alpha_{6})$

则此时有 $\theta$ 的概率密度函数:

$P(\theta)=\frac{1}{B(\alpha)}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}-1}$

其中,$B(\alpha)=\int \prod_{i=1}^{6}\theta_{i}^{\alpha_{i} - 1}d\theta=\frac{\prod_{i=1}^{6}\Gamma(\alpha_{i})}{\Gamma(\sum_{i=1}^{6}\alpha_{i})}$。

若选用上述似然以及先验函数模型,则有:

$p(X|\theta)p(\theta)=\prod_{j=1}^{n-1}p(x_{j}|\theta)=\prod_{i=1}^{6}\theta_{i}^{\delta_{i}(X)}\frac{1}{B(\alpha)}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}-1}$

$=\frac{1}{B(\alpha)}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}+\delta_{i}(X)-1}$

可知边缘分布 $p(X)$ 的概率密度函数为:

$p(X)=\int p(X|\theta)p(\theta)d\theta=\int \frac{1}{B(\alpha)}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}+\delta_{i}(X)-1}d\theta$

$=\frac{B(\alpha+\delta(X))}{B(\alpha)}$

所以后验分布 $p(\theta|X)$ 的概率密度函数为:

$p(\theta|X)=\frac{p(X|\theta)p(\theta)}{p(X)}=\frac{1}{B(\alpha+\delta(X))}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}+\delta_{i}(X)-1}$

所以,第 $n$ 次投递骰子的值的概率密度函数 $p(x_{n-1}|X)$ 为:

$p(x_{n-1}|X)=\int p(x_{n}|\theta)p(\theta|X)d\theta$

$=\int \prod_{i=1}^{6}\theta_{i}^{\delta_{i}(x_{n})} \frac{1}{B(\alpha+\delta(X))}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}+\delta_{i}(X)-1} d\theta$

$=\frac{1}{B(\alpha+\delta(X))}\int \prod_{i=1}^{6}\theta_{i}^{\alpha_{i} + \delta_{i}(x_{n}) +\delta_{i}(X)-1} d\theta$

$=\frac{B(\alpha+\delta(X)+\delta(x_{n}))}{B(\alpha+\delta(X))}$

$=\frac{\Gamma(\alpha+\delta(X))}{\Gamma(\alpha+\delta(X)+1)}\prod_{i=1}^{6}(\frac{\Gamma(\alpha_{i}+\delta_{i}(X)+1)}{\Gamma(\alpha_{i}+\delta_{i}(X))})^{\delta_{i}(x_{n})}$

$=\frac{1}{\alpha+\delta(X)}\prod_{i=1}^{6}(\alpha_{i}+\delta_{i}(X))^{\delta_{i}(x_{n})}$

$x_{n}|x_{1},...,x_{n-1} \sim Discrete(\frac{\alpha_{1}+\delta_{1}(X)}{\sum_{j=1}^{6}\alpha_{j}+\delta_{j}(X)},...,\frac{\alpha_{6}+\delta_{6}(X)}{\sum_{j=1}^{6}\alpha_{j}+\delta_{j}(X)})$

至此我们便能解答掷骰子的概率分布问题。


现在让我们来思考一个更复杂的问题,如果这枚投掷的骰子不是一个正常的6面骰子,而是不知道多少个面的骰子的时候,我们又应该如何对似然和先验函数建模呢?

至此,我们可以引入狄利克雷过程来解决该问题。


狄利克雷过程

考虑上述投掷骰子的例子,由于不知道骰子有多少个面,即不知道 $\theta$ 有多少个离散值,那么,我们考虑用定义域为实数的函数 $G$ 来表示 $x$ 取不同值时的概率值,即:

$x \sim G, \ G:\mathbb{X} \to \mathbb{R}$

即似然函数是 $p(x|G)=G(x)$。根据上述分析思路,我们需要找到似然函数 $G$ 和先验函数。

那么这个似然函数 $G$ 和先验函数应该具有什么样的性质呢?


仍考虑上述投骰子的例子,假设我们已经找了能很好反映数据本身性质的似然函数 $G$,若该骰子正好为6面的,则函数 $G(x)$ 的图形(或者说$p(x)$)应该很好的反映了骰子是6个面的性质,如下图:

即 $x$ 在 $1,2,...,6$ 的附近时取值的概率 $p(x)$ (即$G(x)$)很大。亦即有

$\int_{-\infty}^{1+\Delta}G(x)dx \approx p(x=1),\int_{1+\Delta}^{2+\Delta}G(x)dx \approx p(x=2),...$

所以若函数 $G$ 能较好的反映6面骰子的性质,则有:

$(\int_{-\infty}^{1+\Delta}G(x)dx,...,\int_{6+\Delta}^{+\infty}G(x)dx) \sim Dirichlet(\alpha_{1},...,\alpha_{6})$

即找到一个划分,将实数域划分成6个区域,这6个区域分别包含1到6,则按该划分后的6个区域的积分值满足狄利克雷分布。


同理,若骰子实际上是 $K$ 个面的,我们按上述规则划分 $K$ 个区域,则该 $K$ 个区域的积分值需同样满足狄利克雷分布。

考虑到问题中 $G$ 要良好的反映 $K$ 取任意值有限值时函数的性质,不失一般性,考虑 $x$ 的取值范围为 $\mathbb{X}$,则可知函数 $G$ 必须有如下性质:

$\forall\ A_{1}\dot{\cup}...\dot{\cup}A_{K}=\mathbb{X},\ (G(A_{1}),...,G(A_{K})) \sim Dirichlet(\alpha_{1},...,\alpha_{K})$

其中,$\forall i \neq j, A_{i} \cap A_{j} = \phi$。

考虑到 ${A_{i}}$ 为任意有限划分,所以对应的狄利克雷分布参数 ${\alpha_{i}}$ 应为自变量为 $A_{i}$ 的函数,即:

$\alpha_{i}:=f(A_{i})$


那么 $f$ 应该满足什么条件呢?

考虑狄利克雷分布 $(\pi_{1},...,\pi_{K}) \sim Dirichlet(\alpha_{1},...,\alpha_{K})$ 有如下性质:

  • $l_{1} \cup...\cup l_{j}=\{1,...,K\}$ $\ \forall i \neq j, l_{i} \cap l_{j}=\phi \Rightarrow (\sum_{i \in l_{1}}\pi_{i},...,\sum_{i \in l_{j}}\pi_{i}) \sim Dirichlet (\sum_{i \in l_{i}}\alpha_{i},...,\sum_{i \in l_{j}}\alpha_{i})$

  • $\forall (\tau_{1},\tau_{2}) \sim Dirichlet(\alpha_{m}\beta_{1}, \alpha_{m}\beta_{2})$ $\ \beta_{1}+\beta_{2}=1 \Rightarrow (\pi_{1},...,\pi_{m}\tau_{1},\pi_{m}\tau_{2},...,\pi_{K})\sim(\alpha_{1},...,\alpha_{m}\beta_{1},\alpha_{m}\beta_{2},...,\alpha_{K})$

则 $f$ 有如下性质:

$\sum_{i \in l} \alpha_{i} = f(\sum_{i \in l} A_{i}), l \subset \mathbb{R}$

则可令 $f:=\alpha H$,即:

$\alpha_{i}:=\alpha H(A_{i})$

其中,$H$ 为 $x$ 的分布函数,记为基分布。$\alpha$ 与基分布的乘积即为狄利克雷分布的参数,称 $\alpha$ 为强度参数


至此,我们可以记:

$G \sim DP(\alpha, H)$

表示若函数 $G$ 服从参数为 $\alpha,H$ 的狄利克雷过程,则有在定义域 $\mathbb{X}$ 上的任意有限划分 ${A_{1},...,A_{K}}$,函数 $G$ 有如下特性:

$(G(A_{1}),...,G(A_{K})) \sim Dirichlet(\alpha H(A_{1}),...,\alpha H(A_{K}))$

根据狄利克雷分布的性质,我们有:

  • $E[G(A_{i})]=\frac{\alpha H(A_{i})}{\sum \alpha H(A_{j})}=H(A_{i})$

  • $V[G(A_{i})]=\frac{\alpha H(A_{i})(\alpha - \alpha H(A_{i}))}{\alpha(\alpha+1)}=\frac{H(A_{i})(1-H(A_{i}))}{\alpha + 1}$

即 $\alpha$ 越大,逆方差越小,$G$ 越和 $H$ 相似。


考虑掷骰子的例子,假设似然和先验模型如下:

  • $x|G \sim G$

  • $G \sim DP(\alpha, H)$

同样,我们需要计算后验分布。考虑 $\mathbb{X}$ 上的任意有限划分 $\{A_{1},...,A_{K}\}$,记:

  • $Z:=(G(A_{1}),...,G(A_{K})) \sim Dir(\alpha H(A_{1}),...,\alpha H(A_{K}))$

  • $X|Z \sim Multi(Z, || X ||)$

  • $p(Z)=\frac{1}{B(\alpha H)}\prod_{i=1}^{K}G(A_{i})^{\alpha H(A_{i}) - 1}$

  • $p(X|Z)=\prod_{i=1}^{K}G(A_{i})^{\delta_{A_{i}}(X)}$

根据上述分析,可知:

$Z|X \sim Dir(\alpha H(A_{1}) + \delta_{A_{1}}(X),...,\alpha H(A_{K}) + \delta_{A_{K}}(X))$

即对于 $\mathbb{X}$ 上的任意有限划分 $\{A_{1},...,A_{K}\}$,$Z|X$ 满足狄利克雷分布,即后验 $G|X$ 仍是一个DP过程。为了统一表示,可记为:

$G|X \sim DP(\alpha + ||X||, \frac{\alpha H + \delta(X)}{\alpha + ||X||})$

记 $G|X$ 为 $G_{X}$,结合上述分析的 $DP$ 的性质,我们可以计算出积分:

$p(x_{n}|X)=\int p(x_{n}|G_{X})p(G_{X}|X)dG_{X}=\int G_{X}(x_{n})p(G_{X})d(G_{X})$

$=E[G_{X}(x_{n})]=\frac{\alpha H + \delta(X)}{\alpha + ||X||}$

$x_{n}|x_{1},...,x_{n-1} \sim \frac{\alpha H + \sum_{i=1}^{n-1}\delta_{x_{i}}(x_{n})}{\alpha + n - 1}$

xiehao

Read more posts by this author.