概率分布(多项分布,Dirichlet分布)

本文介绍了概率模型中的关键概念,包括累积分布函数、概率密度函数等,并深入探讨了多项分布及其共轭先验——Dirichlet分布,揭示了它们在机器学习中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在机器学习领域中,概率模型是一个常用的利器。用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型有很好的概率解释;2)可以利用现有的EM算法或者Variational method来学习。通常为了方便推导参数的后验分布,会假设参数的先验分布是似然的某个共轭分布,这样后验分布和先验分布具有相同的形式,这可以大大简化建模过程中的数学推导,保证最后的形式是tractable。

在概率模型中,Dirichlet这个词出现的频率非常的高。初学机器学习的同学,在学习概率模型的时候,很多同学都不清楚为啥一个表现形式如此奇怪的分布Dirichlet分布会出现在我们的教科书中,它是靠啥关系攀上了多项分布(Multinomial distribution)这个亲戚的,以至于它可以“堂而皇之”地扼杀我大天朝这么多数学家和科学家梦想的?为了引出背后这层关系,我们需要先介绍一个概念——共轭先验(Conjugate Prior)。

  • 在贝叶斯统计理论中,如果某个随机变量Θ的后验概率 p(θ|x)和其先验概率p(θ)属于同一个分布簇的,那么称p(θ|x)和p(θ)为共轭分布,同时,也称p(θ)为似然函数p(x|θ)的共轭先验。
  • 事情还没有发生,要求这件事情发生的可能性的大小,是先验概率。事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,是后验概率。

1、累积分布函数(分布函数)(CDF-Cumulative Distribution Function)

分布函数的定义为

FX(x)=P(Xx)

假设P(X=0)=14,P(X=1)=12,P(X=2)=14,那么分布函数如下图所示:
图片
这里需要注意两点
  • 函数是右连续的
  • FX(1.4)=34, 这里P(1X<2)=12

因此F函数始终是非降的, 右连续的, 且limxF(x)=1

2、概率密度函数(PDF-Probability Density Function)

离散随机变量的密度函数为:

fX(x)=P(X=x)

对于连续随机变量,若存在一个函数fX对所有的x均满足fX(x)0abfX(x)dx=1,并且有
P(a<X<b)=abfX(x)dx

fX就是FX(x)的密度函数,并且FX(x)=xfX(t)dtfX(x)=ddxFX(x),这是一个很重要的概念,后面所谓的密度估计(density estimation)(EM algorithm和Sampling Methods)都是要估计出一个概率密度函数来。

3、伯努利分布,二项分布

  • 伯努利分布就是对单次抛硬币的建模,X~Bernoulli(p)的密度函数是f(x)=px(1p)1x,随机变量只能取{0,1}。对于所有的密度函数都要归一化!而伯努利分布天然是归一化。因此归一化参数就是1.

  • 多次伯努利实验即为二项分布,其密度函数为

    f(x)=P(X=x)=P(X=x|n,p)=Cxnpx(1p)nx

    这里Cxn可以看作是二项分布的归一化参数。

4、β分布

概率密度函数

f(x)=Γ(α+β)Γ(α)Γ(β)xα1(1x)β1

其中
Γ(x)=0tx1etdt
通过分部积分法,可推导出这个函数有如下递归性质
Γ(x+1)=xΓ(x)
Γ(x)函数可以看作是阶乘在实数集上的延拓,具有如下性质
Γ(n)=(n1)!

5、多项分布

把二项分布再推广,就得到多项分布。二项分布的典型例子是扔硬币,硬币正面向上的概率为p,重复扔n次硬币,k次为下面的概率即为一个二项分布。二项分布即为多重伯努利实验。
不同于扔硬币,多项分布类似于扔骰子。假设萤火虫对食物的喜欢程序,我们给三种选择:花粉,蚜虫,面团。假设20%的萤火虫喜欢花粉,35%的萤火虫喜欢蚜虫,45%的萤火虫喜欢面团。我们对30只萤火虫做实验,发现8只喜欢花粉,10只喜欢蚜虫,12只喜欢面团,这件事的概率为

P(N1=8,N2=10,N3=12)=30!8!10!12!0.280.35100.4512

这时的参数μ变成了一个向量μ⃗ ={μ1,μ2,...,μk}表示第一个取值被选中的概率,这里为μ⃗ ={0.2,0.35,0.45},那么X~Multinomial(n,p)的PDF为:
f(x)=P(m1,m2,...,mk|n,μ⃗ )=n!ki=1mi!μmix

6、Dirichlet Distribution(迪利特雷分布)

Dirichlet分布可以看做是分布之上的分布。如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}。现在我们做了10000次投掷的实验,得到的实验结果是六面分别出现了{2000,2000,2000,2000,1000,1000}次,如果用每一面出现的次数与试验总数的比值估计这个面出现的概率,则我们得到六面出现的概率,分别为{0.2,0.2,0.2,0.2,0.1,0.1}。现在,我们还不满足,我们想要做10000次试验,每次试验中我们都投掷骰子10000次。我们想知道,骰子六面出现概率为{0.2,0.2,0.2,0.2,0.1,0.1}的概率是多少(说不定下次试验统计得到的概率为{0.1, 0.1, 0.2, 0.2, 0.2, 0.2}这样了)。这样我们就在思考骰子六面出现概率分布这样的分布之上的分布。而这样一个分布就是Dirichlet分布。
下面正式进入狄利克雷分布介绍,首先说一下这个多项分布的参数μ。在伯努利分布里,参数μ就是抛硬币取某一面的概率,因为伯努利分布的状态空间只有{0,1}。但是在多项分布里,因为状态空间有K个取值,因此μ变成了向量μ⃗ ={μ1,μ2,...,μk}。多项分布的likelihood函数形式是μmix,因此就像选择伯努利分布的共轭先验贝塔函数时那样,狄利克雷分布的函数形式应该如下:

p(μ|α)k=1Kμαk1k

上式中,kμk=1α⃗ =(α1,...,αk)是迪利特雷参数,把上式归一化为真正的迪利特雷分布为:
Dir(μα)=Γ(α0)Γ(α1)...Γ(αk)k=1Kμαk1k

其中α0=k=1Kαk。这个函数和贝塔分布有点像,跟多项式分布也有点像。就像β分布那样,狄利克雷分布就是它所对应的后验多项分布的参数μ⃗ 的分布,只不过μ是一个向量。
### Dirichlet 分布的定义 Dirichlet 分布是一组定义在 \( K \) 维单纯形上的连续概率分布,通常用于表示多项分布参数的先验分布。其概率密度函数的形式为: \[ f(\mathbf{p}; \boldsymbol{\alpha}) = \frac{1}{B(\boldsymbol{\alpha})} \prod_{i=1}^K p_i^{\alpha_i - 1} \] 其中,\( \mathbf{p} = (p_1, p_2, \ldots, p_K) \) 是一个 \( K \)-维向量,满足 \( p_i \geq 0 \) 且 \( \sum_{i=1}^K p_i = 1 \),\( \boldsymbol{\alpha} = (\alpha_1, \alpha_2, \ldots, \alpha_K) \) 是一个正实数向量,\( B(\boldsymbol{\alpha}) \) 是归一化常数,定义为: \[ B(\boldsymbol{\alpha}) = \frac{\prod_{i=1}^K \Gamma(\alpha_i)}{\Gamma\left(\sum_{i=1}^K \alpha_i\right)} \] 这里 \( \Gamma(x) \) 是 Gamma 函数[^2]。 ### Dirichlet 分布的性质 - **共轭性**:Dirichlet 分布多项分布的共轭先验分布。这意味着如果先验分布Dirichlet 分布,则在观测到多项分布的数据后,后验分布仍然是 Dirichlet 分布,只是参数 \( \boldsymbol{\alpha} \) 会根据数据进行更新[^2]。 - **均匀分布特例**:当所有 \( \alpha_i = 1 \) 时,Dirichlet 分布退化为均匀分布,即每个 \( \mathbf{p} \) 的组合具有相同的概率。 - **期望与方差**:对于 Dirichlet 分布中的每个分量 \( p_i \),其期望和方差分别为: \[ \mathbb{E}[p_i] = \frac{\alpha_i}{\sum_{j=1}^K \alpha_j} \] \[ \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)} \] 这些性质使得 Dirichlet 分布在贝叶斯统计中非常有用。 ### Dirichlet 分布的应用领域 #### 在机器学习中的应用 Dirichlet 分布广泛应用于机器学习领域,尤其是在需要建模离散分布参数的情况下。例如,在主题模型(如 LDA,Latent Dirichlet Allocation)中,文档的主题分布和主题的词分布通常假设服从 Dirichlet 分布[^4]。 #### 在统计学中的应用 在统计学中,Dirichlet 分布常用于对多项分布参数进行贝叶斯推断。通过选择适当的先验分布,可以有效地结合先验知识和观测数据,从而得到后验分布。 以下是一个简单的 Python 示例,展示如何使用 Dirichlet 分布生成随机样本: ```python import numpy as np from scipy.stats import dirichlet # 设置 Dirichlet 分布的参数 alpha = [1.0, 2.0, 3.0] # 创建 Dirichlet 分布对象 dist = dirichlet(alpha) # 生成 5 个随机样本 samples = dist.rvs(size=5) print("生成的随机样本:") print(samples) ``` ### 总结 Dirichlet 分布作为一种重要的概率分布,因其与多项分布的共轭性以及灵活的建模能力,在机器学习和统计学中有着广泛的应用。通过合理设置参数 \( \boldsymbol{\alpha} \),可以有效表达对离散分布参数的不同假设。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值