迪利克雷分布是什么?
迪利克雷分布(Dirichlet Distribution)是一种连续的、多元的概率分布。它定义在一个K维的单形体(simplex)上,这意味着它的随机变量是一个K维的向量,其中向量的每个分量都是非负的,并且所有分量之和必须等于1。这使得迪利克雷分布非常适合于建模构成整体的比例或概率值。
迪利克雷分布的构成与参数
- 样本空间: 迪利克雷分布的样本是一个K维的向量 $\mathbf{p} = (p_1, p_2, \ldots, p_K)$,其中 $p_i \ge 0$ 且 $\sum_{i=1}^{K} p_i = 1$。这样的向量空间被称为K-1维标准单形体。
- 参数: 迪利克雷分布由一个“浓度参数”向量 $\boldsymbol{\alpha} = (\alpha_1, \alpha_2, \ldots, \alpha_K)$ 定义,其中每个 $\alpha_i > 0$。这些参数通常被称为伪计数(pseudo-counts)或先验观测值,它们直接影响分布的形状和集中度。
- 概率密度函数(PDF): 迪利克雷分布的PDF形式为:
$$f(p_1, \ldots, p_K; \alpha_1, \ldots, \alpha_K) = \frac{1}{\mathrm{B}(\boldsymbol{\alpha})} \prod_{i=1}^{K} p_i^{\alpha_i – 1}$$
其中,$\mathrm{B}(\boldsymbol{\alpha})$ 是多元Beta函数,作为归一化常数,其定义为:
$$\mathrm{B}(\boldsymbol{\alpha}) = \frac{\prod_{i=1}^{K} \Gamma(\alpha_i)}{\Gamma\left(\sum_{i=1}^{K} \alpha_i\right)}$$
这里的 $\Gamma(\cdot)$ 是伽马函数。
- 与贝塔分布的关系: 当K=2时,迪利克雷分布退化为贝塔分布。即 $\text{Dir}(\alpha_1, \alpha_2)$ 与 $\text{Beta}(\alpha_1, \alpha_2)$ 是等价的。贝塔分布是对二元比例(例如,成功与失败的概率)进行建模的,而迪利克雷分布将其推广到多于两个类别的情况。
迪利克雷分布为什么被使用?
迪利克雷分布之所以在统计建模和机器学习中占据核心地位,主要归因于其独特的数学性质和对现实世界问题的良好拟合能力。
共轭先验的地位
这是迪利克雷分布最核心的“为什么”之一。它是多项式分布(以及其特殊形式,分类分布)的共轭先验。这意味着如果一个事件的类别概率服从迪利克雷分布(作为先验),并且我们观察到了一系列该事件的发生次数(服从多项式分布),那么更新后的类别概率(后验)仍然服从迪利克雷分布。具体来说:
如果先验 $P(\mathbf{p}) \sim \text{Dir}(\boldsymbol{\alpha})$,
且观测数据 $X \sim \text{Multinomial}(N, \mathbf{p})$(其中 $N$ 是总观测数,$X_i$ 是第 $i$ 类别的观测数),
那么后验 $P(\mathbf{p}|X) \sim \text{Dir}(\boldsymbol{\alpha} + X)$,即 $(\alpha_1 + X_1, \ldots, \alpha_K + X_K)$。
这种共轭性质极大地简化了贝叶斯推断过程。在没有共轭先验的情况下,后验分布通常非常复杂,需要通过马尔可夫链蒙特卡洛(MCMC)等计算密集型方法进行近似。而有了共轭先验,后验分布的参数可以直接通过简单的加法计算出来,使得贝叶斯更新变得高效且解析可解。
建模比例和组合数据
迪利克雷分布的样本是和为1的向量,这使得它天然适用于建模各种比例、概率或组成部分。例如:
- 文档中不同主题的比例。
- 混合模型中各个组成部分的权重。
- 基因组中不同基因类型的频率。
- 消费者在不同商品上的支出比例。
它提供了一种灵活的方式来表达这些比例的不确定性,并且可以通过调整参数来控制这种不确定性的程度以及比例的倾向性。
正则化与平滑
迪利克雷分布的参数 $\alpha_i$ 可以被视为“伪计数”。在贝叶斯推断中,即使某个类别在观测数据中从未出现(即 $X_i = 0$),只要 $\alpha_i > 0$,其后验概率 $p_i$ 就不会是零。这提供了一种隐式的平滑或正则化效果,避免了零频率问题,尤其是在处理稀疏数据时非常有用。例如,在自然语言处理中,即使训练集中没有某个词,我们仍然可以为其分配一个非常小的非零概率,以防在测试集中遇到。
迪利克雷分布哪里被使用?
迪利克雷分布因其独特的优势,在众多领域和模型中扮演着关键角色,尤其是在需要处理比例数据和进行贝叶斯推断的场景。
自然语言处理(NLP)
隐式迪利克雷分配(Latent Dirichlet Allocation, LDA)
这是迪利克雷分布最著名的应用之一。LDA是一种生成式统计模型,用于发现文档集合中的“主题”。在LDA中,迪利克雷分布被用来:
- 为每个文档中的主题分布提供先验:即文档由哪些主题组成,以及每个主题的比例。
- 为每个主题中的词语分布提供先验:即每个主题由哪些词语组成,以及每个词语的比例。
这种分层贝叶斯模型能够自动从大量文本数据中抽取有意义的语义结构。
机器学习与统计建模
贝叶斯非参数方法(Dirichlet Process)
迪利克雷过程(Dirichlet Process, DP)是迪利克雷分布的无限维推广。它允许我们对无限维的概率分布进行建模,常用于聚类(例如,为数据自动确定聚类的数量)、密度估计、主题模型(如嵌套迪利克雷过程)等。DP在非参数贝叶斯模型中扮演着核心角色,因为它们允许模型复杂度根据数据自适应地增长。
混合模型
在高斯混合模型(Gaussian Mixture Models, GMMs)等混合模型中,如果使用贝叶斯方法进行推断,通常会对各个组分(component)的权重(它们是和为1的比例)施加一个迪利克雷先验,以平滑权重估计并引入正则化。
贝叶斯网络与图模型
在一些结构学习和参数推断的贝叶斯网络中,当节点是分类变量时,其条件概率表(CPT)的每一行(即给定父节点状态下的子节点状态概率)可以被视为一个多项式分布的参数,而这些参数的先验通常就是迪利克雷分布。
其他具体应用领域
- 人口遗传学: 用于建模群体中不同等位基因的频率。
- 计算生物学: 分析微生物群落组成,例如不同细菌物种在肠道中的比例。
- 社会科学: 预测选举结果中不同候选人的得票比例,或分析消费者在不同产品类别的支出分布。
- 生态学: 描述生态系统中不同物种的丰度分布。
- 财务领域: 投资组合分配中不同资产的比例建模。
- 数据可视化: 在可视化成分数据(compositional data)时,迪利克雷分布的样本可以生成类似散点图的效果,帮助理解不同成分的相对丰度。
迪利克雷分布的参数“多少”如何影响其形状?
迪利克雷分布的形状完全由其浓度参数 $\boldsymbol{\alpha} = (\alpha_1, \ldots, \alpha_K)$ 决定。理解这些参数如何影响分布的集中度和偏好,对于正确应用迪利克雷分布至关重要。
浓度参数 $\boldsymbol{\alpha}$ 的整体大小
一个关键概念是所有 $\alpha_i$ 之和 $\alpha_0 = \sum_{i=1}^{K} \alpha_i$,也被称为“浓度参数”或“强度参数”。
- $\alpha_0$ 越大: 分布越集中,样本越倾向于其均值。这意味着从分布中抽取的比例向量会更接近于期望值 $(\alpha_1/\alpha_0, \ldots, \alpha_K/\alpha_0)$,方差越小。可以想象成在单形体内部,分布形成一个更尖锐的峰。
- $\alpha_0$ 越小: 分布越分散,样本的变异性越大。当 $\alpha_0$ 趋近于0时,样本会倾向于单形体的边界和顶点。
单个 $\alpha_i$ 的相对大小
- 当所有 $\alpha_i = 1$ 时(对称迪利克雷分布):
这被称为均匀迪利克雷分布。在这种情况下,PDF中的指数项 $p_i^{\alpha_i – 1}$ 变为 $p_i^0 = 1$。这意味着所有可能的比例组合在单形体上都具有相同的概率密度。这相当于在没有任何先验偏好时,每个类别都得到一个“伪计数”1。
- 当所有 $\alpha_i > 1$ 时(例如,$\boldsymbol{\alpha} = (10, 10, 10)$):
分布在单形体的中心区域形成一个峰值。样本会倾向于均匀分布,即 $p_i \approx 1/K$。$\alpha_i$ 越大,这个峰值越尖锐,样本离中心点越近。这通常用于表示我们预期比例是相对均衡的,并且对这种均衡有很高的信心。
- 当所有 $\alpha_i < 1$ 时(例如,$\boldsymbol{\alpha} = (0.1, 0.1, 0.1)$):
分布的概率质量集中在单形体的顶点或边缘,而不是中心。这意味着样本会倾向于稀疏分布,即某个 $p_i$ 接近1,而其他 $p_j$ 接近0。这种情况常用于鼓励稀疏性,例如在主题模型中,希望文档只包含少数几个主题,或者主题只包含少数几个词语。
- 当 $\boldsymbol{\alpha}$ 不对称时(例如,$\boldsymbol{\alpha} = (1, 10, 1)$):
分布会偏向具有较大 $\alpha_i$ 值的那个分量。在这种情况下,样本的 $p_2$ 分量将倾向于比 $p_1$ 或 $p_3$ 更大。例如,如果 $\boldsymbol{\alpha} = (1, 10, 1)$,那么抽取的向量很可能接近 $(0.05, 0.9, 0.05)$,而不是均匀的 $(1/3, 1/3, 1/3)$。
示例图示(概念性):
想象一个三维迪利克雷分布(K=3),它定义在一个等边三角形内部(二维单形体)。
- 如果 $\boldsymbol{\alpha}=(1,1,1)$,整个三角形区域的概率密度是均匀的。
- 如果 $\boldsymbol{\alpha}=(10,10,10)$,概率密度在三角形中心有一个尖锐的峰。
- 如果 $\boldsymbol{\alpha}=(0.1,0.1,0.1)$,概率密度在三角形的三个顶点处最高,中间区域概率很低。
- 如果 $\boldsymbol{\alpha}=(2,5,2)$,概率密度会在三角形内部偏向第二个顶点的区域。
如何使用迪利克雷分布?
使用迪利克雷分布通常涉及两个主要方面:从它中采样和将其作为贝叶斯推断中的先验。
从迪利克雷分布中采样
尽管迪利克雷分布的PDF看起来有些复杂,但从它中生成随机样本却相对简单,因为它与伽马分布有密切联系。
采样步骤:
- 对于每个维度 $i=1, \ldots, K$,独立地生成一个随机变量 $Y_i$,使其服从伽马分布 $\text{Gamma}(\alpha_i, 1)$。这里,伽马分布的形状参数是 $\alpha_i$,尺度参数(或逆尺度参数/率参数)是1。许多编程语言和统计软件库都有内置的伽马分布采样器。
- 计算所有 $Y_i$ 的和:$S = \sum_{j=1}^{K} Y_j$。
- 对每个 $Y_i$ 进行归一化:$p_i = Y_i / S$。
所得的向量 $\mathbf{p} = (p_1, \ldots, p_K)$ 就是一个服从 $\text{Dir}(\boldsymbol{\alpha})$ 分布的样本。这个过程保证了 $p_i \ge 0$ 且 $\sum p_i = 1$,完美地满足了迪利克雷分布的定义。
迪利克雷分布作为先验的使用
在贝叶斯建模中,迪利克雷分布最普遍的应用就是作为多项式分布或分类分布的先验。其使用方式如下:
- 定义先验: 假设我们希望对一组概率 $\mathbf{p} = (p_1, \ldots, p_K)$ 进行推断,这些概率是某个分类或多项式过程的参数。我们将其先验分布设置为迪利克雷分布:$\mathbf{p} \sim \text{Dir}(\boldsymbol{\alpha}_{\text{prior}})$。这里的 $\boldsymbol{\alpha}_{\text{prior}}$ 是我们在观测数据之前对这些概率的初始信念。
- 观测数据: 我们收集到一些数据,这些数据是关于分类计数的。例如,进行了 $N$ 次试验,其中第 $i$ 类事件发生了 $X_i$ 次。这些计数服从多项式分布:$\mathbf{X} \sim \text{Multinomial}(N, \mathbf{p})$,其中 $N = \sum X_i$。
- 计算后验: 利用共轭性质,后验分布 $P(\mathbf{p}|\mathbf{X})$ 仍然是一个迪利克雷分布,其参数更新为:$\text{Dir}(\boldsymbol{\alpha}_{\text{prior}} + \mathbf{X})$,即新的参数向量是 $(\alpha_1 + X_1, \ldots, \alpha_K + X_K)$。
这个后验分布反映了结合先验信念和观测数据后,我们对 $\mathbf{p}$ 的更新知识。从这个后验迪利克雷分布中采样,可以得到在给定数据下对 $\mathbf{p}$ 的估计。
示例场景:
假设你想估计一个四面骰子各面朝上的概率 $(p_1, p_2, p_3, p_4)$。
- 先验: 如果你没有特别的偏好,可以设置一个对称先验,例如 $\boldsymbol{\alpha}_{\text{prior}} = (1, 1, 1, 1)$。这表示你认为每个面朝上的概率是均匀的,并且你有相当于每个面发生了一次的先验信息。
- 数据: 你掷了骰子 100 次,得到结果:面1出现 20 次,面2出现 30 次,面3出现 25 次,面4出现 25 次。所以 $\mathbf{X} = (20, 30, 25, 25)$。
- 后验: 根据贝叶斯更新规则,后验分布为 $\text{Dir}((1+20), (1+30), (1+25), (1+25)) = \text{Dir}(21, 31, 26, 26)$。
现在,你的后验信念已经更新为这个新的迪利克雷分布,你可以从中抽取样本来代表你对骰子概率的推断,或者计算其均值作为点估计。
迪利克雷分布的内在机制如何?
除了上述的应用和性质,理解迪利克雷分布的一些内在数学机制和统计特性,可以帮助我们更深入地掌握其行为。
期望和方差
对于一个服从 $\text{Dir}(\boldsymbol{\alpha})$ 分布的随机向量 $\mathbf{p}=(p_1, \ldots, p_K)$:
- 期望(平均值):
$$E[p_i] = \frac{\alpha_i}{\sum_{j=1}^{K} \alpha_j}$$
这表明每个分量的期望值是其对应的浓度参数占总浓度参数之和的比例。这与我们直观上将 $\alpha_i$ 视为“伪计数”是吻合的。
- 方差:
$$\text{Var}[p_i] = \frac{\alpha_i (\sum_{j=1}^{K} \alpha_j – \alpha_i)}{(\sum_{j=1}^{K} \alpha_j)^2 (\sum_{j=1}^{K} \alpha_j + 1)}$$
可以观察到,当 $\sum \alpha_j$ 增大时(即分布更集中),方差会减小,这再次印证了浓度参数对分布集中度的影响。
- 协方差:
$$\text{Cov}[p_i, p_j] = – \frac{\alpha_i \alpha_j}{(\sum_{k=1}^{K} \alpha_k)^2 (\sum_{k=1}^{K} \alpha_k + 1)} \quad \text{for } i \neq j$$
重要的观察是协方差总是负的。这意味着,由于所有分量之和必须为1,当一个分量 $p_i$ 的值增大时,至少有一个其他分量 $p_j$ 的值必须减小。这种负相关性是迪利克雷分布作为“组成数据”模型的一个关键特性。
与分类/多项式分布的关系
迪利克雷分布和多项式分布之间存在一种深刻的概率学关系,不仅仅是共轭先验那么简单。在分层模型中,这种关系非常常见。
边缘化:
如果我们有一个分类变量 $X$ 具有 $K$ 个可能的值,其概率为 $\mathbf{p} = (p_1, \ldots, p_K)$,并且我们假设 $\mathbf{p} \sim \text{Dir}(\boldsymbol{\alpha})$。那么,我们对 $X$ 的观测进行边缘化(即积分掉 $\mathbf{p}$),得到的 $X$ 的边缘概率分布是一个广义的波利亚罐子模型(Generalized Polya Urn Model)。
例如,第一此观测 $P(X_1=k) = \frac{\alpha_k}{\sum_j \alpha_j}$。
第二次观测 $P(X_2=k | X_1=k’) = \frac{\alpha_k + \delta_{kk’}}{\sum_j \alpha_j + 1}$,其中 $\delta_{kk’}$ 是克罗内克符号。
这种“富者更富”(rich-get-richer)的机制是许多非参数贝叶斯模型(如迪利克雷过程)的基础,它允许新的观测偏向于已经频繁出现的类别。
对称与非对称
正如在“多少”部分所讨论的,迪利克雷分布可以是完全对称的(所有 $\alpha_i$ 相等),也可以是非对称的。这种灵活性使得它能够适应各种先验知识和数据模式。
- 对称性: 当 $\alpha_1 = \alpha_2 = \ldots = \alpha_K = \alpha’$ 时,分布是完全对称的。这意味着在期望意义上,所有类别都是等可能的。改变 $\alpha’$ 的大小会改变样本的集中度,但不会改变其中心。
- 非对称性: 当 $\alpha_i$ 不等时,分布是非对称的。它会倾向于那些具有更大 $\alpha_i$ 值的维度。这种非对称性在许多现实世界场景中是必要的,因为我们往往对某些类别的概率有先验的偏好或信息。
通过这些深入的探讨,我们不仅了解了迪利克雷分布“是什么”以及“为什么”如此重要,更具体地剖析了它在“哪里”被使用,其参数“如何”影响行为,以及在实践中“如何”进行采样和推断,并深入理解了其“内在机制”。