什么是 Dirichlet 分布?
Dirichlet 分布的一次采样是一个概率向量:各分量非负,且总和为一。
这个向量位于标准单纯形上:
ΔK−1={x∈[0,1]K:i=1∑Kxi=1}.
每个这样的向量都可以作为分类分布或多项分布的概率参数。因此,对于一组固定的可能结果,Dirichlet 可以理解为**“概率分布上的分布”**。
当 K≥2 且各参数 αi>0 时,其在单纯形内部的概率密度函数(PDF)为:
f(x;α)=B(α)1i=1∏Kxiαi−1,xi>0,i=1∑Kxi=1.
B 函数
多元 Beta 函数是未归一化密度在单纯形上的积分:
B(α)=∫ΔK−1j=1∏Kxjαj−1dx=Γ(α0)∏j=1KΓ(αj),α0=j=1∑Kαj.
这里对 K−1 个自由坐标积分,即 dx=dx1⋯dxK−1,而 xK=1−∑j=1K−1xj。因此,除以 B(α) 就能使 PDF 的积分为一。
其中 Γ 是 Gamma 函数,对 t>0 定义为:
Γ(t)=∫0∞ut−1e−udu.
后面的推导会用到它的递推关系 Γ(t+1)=tΓ(t)。
关键性质
给定 α 后,B(α) 是一个常数,用来保证密度的积分为一。因此,分布的形状由乘积部分决定:
f(x;α)∝i=1∏Kxiαi−1.
当 α=(1,…,1) 时,乘积为常数,分布在单纯形上均匀分布。均匀不代表密度一定为一:K=2 时密度为 1,K=3 时为 2。
两个分量
当 K=2 时,x2=1−x1,所有可能的向量构成一条线段。此时 x1 的密度就是 Beta 分布。调整下方的 α1 和 α2,或选择均匀,观察密度曲线。
三个分量
当 K=3 时,单纯形是一个三角形。每个点表示一个向量 (x1,x2,x3),颜色或高度表示该点的密度。先选择均匀,再调整参数观察形状变化。密度不是某一点的概率,数值可以大于一。
期望与方差
设 X∼Dirichlet(α),记参数总和为
α0=j=1∑Kαj.
每个分量的期望和方差分别为:
E[Xi]Var(Xi)=α0αi,=α02(α0+1)αi(α0−αi).
以下利用 B 函数的参数平移关系证明。
期望的推导
记 ei 为第 i 个分量等于一、其余分量等于零的向量。乘上 xi 后,对应指数从 αi−1 变为 αi,相当于把参数向量换成 α+ei:
E[Xi]=B(α)1∫ΔK−1xij=1∏Kxjαj−1dx=B(α)B(α+ei)=Γ(αi)Γ(αi+1)Γ(α0+1)Γ(α0)=α0αi.
其余 Gamma 因子相互抵消,最后一步使用了 Γ(t+1)=tΓ(t)。
方差的推导
先计算二阶矩。类似地,乘上 xi2 相当于把 αi 增加二:
E[Xi2]=B(α)B(α+2ei)=Γ(αi)Γ(αi+2)Γ(α0+2)Γ(α0)=α0(α0+1)αi(αi+1).
再减去期望的平方,得到方差:
Var(Xi)=E[Xi2]−(E[Xi])2=α0(α0+1)αi(αi+1)−α02αi2=α02(α0+1)αi(α0−αi).
参数的直观含义
参数的相对大小决定平均概率向量。如果保持参数比例不变,增大参数总和 α0 会减小方差,使分布更集中在均值附近。
参考:SciPy:Dirichlet 分布 · Probability Distribution Explorer:矩。