beta分布,dirichlet分布与贝叶斯参数估计简介
概述
最大似然估计与最大后验估计
最大似然估计也就是最大化似然函数
最大后验估计也就是最大化后验概率
$g(\theta)$ 为参数 $\theta$ 的先验概率分布
相比于最大似然估计,最大后验估计考虑了参数本身也是一个随机变量,在估计时使用了参数的先验概率分布. 从机器学习的角度来看, 最大后验概率估计可以看作是规则化(regularization)的最大似然估计。
从wiki上关于map的介绍, 最大后验估计(贝叶斯估计)的计算方法有下列几种
- 解析方法,当后验分布的模能够用闭合形式方式表示的时候用这种方法.当使用共轭先验的时候就是这种情况.
- 通过如共扼积分法或者牛顿法这样的数值优化方法进行,这通常需要一阶或者导数,导数需要通过解析或者数值方法得到.
- 通过期望最大化(EM)算法的修改实现,这种方法不需要后验密度的导数.
本文讨论离散情况下,使用共轭先验概率的贝叶斯估计
二项分布与Beta分布
二项分布
对于经典的抛硬币的实验,给定$\theta$为抛硬币正面向上的概率 关于在n次实验中出现正面向上的次数为k次的二项分布的概率质量函数为
下图为10次实验正面向上为5次的概率质量函数 
共轭先验分布
假设我们做了10次实验,出现7次正面向上.
对于最大似然估计只需要要将n=10, k=7代入二项分布的概率质量函数,然后取对数,求一阶导数并设为0可以求得$\theta = 0.7$
而对于采用共轭先验的贝叶斯估计,我们则需要给出二项分布的参数的先验分布.对于上述抛硬币的实验,(个人认为)先验分布应当具有下列特性
- 当我们对事物一无所知时先验分布可以转变成均匀分布
- 后续的实验可以方便利用已做实验的结果. 例如后续又继续做10次实验并得到正面向上的次数为8次, 本质上不应当是认为$\theta=0.8$, 在序列模型中应当考虑到前面实验的结果, 对于最大后验估计来说要得到这种便利性, 实际上是将上次实验得到的后验估计可以作为下次实验的先验. 这就需要保持后验分布与先验分布是同一种分布.
- 当实验次数趋于无穷大时先验分布就应当逼近真实概率的分布, 在抛硬币实验中,其实是趋于真实的正面向上的概率分布,也就是真实概率的二项分布
对于共轭先验的wiki上的定义: 在贝叶斯统计中,如果后验分布与先验分布属于同类,则先验分布与后验分布被称为共轭分布. 高斯分布家族在高斯似然函数下与其自身共轭
那么对于二项分布似然函数的共轭分布是什么分布呢? Beta 分布
Beta 分布
Beta分布的定义如下
上面的公式用到了Gamma函数和Beta函数
Gamma 函数
Gamma的介绍可以参考网上的文章, http://cos.name/2013/01/lda-math-gamma-function/, 快速的理解可以直接认为是阶乘在实数和复数域的推广. Gamma函数具有下列性质
Beta 函数
同时
Beta 分布与二项分布的比较
用$\alpha = k, \beta = n-k$代入Beta分布的公式,由于$\alpha,\beta$都被限制在整数,用阶乘的方式来表示Gamma函数
可以看出Beta分布与二项分布的差异,当取$\alpha = k, \beta = n-k $时beta分布为二项分布乘以系数项$\frac{k(n-k)}{n} \frac{1}{\theta (1-\theta)} $ 当$\alpha, \beta$取值较大时,$\frac{k}{n} \approx \theta, \frac{n-k}{n} \approx (1-\theta)$,beta分布就逼近真实概率下的二项分布. 当$\alpha,\beta$取值较小时,如(1,1),Beta分布为均匀分布
下图为beta分布的pdf

基于二项分布与beta先验分布的贝叶斯估计
在进行n次试验,并发生k次正面向上的抛硬币的后,关于正面向上的后验概率为
D 为实验后数据即n次试验k次正面向上
似然函数为二项分布 $p(D \vert \theta) = \dbinom{n}{k} \theta^k (1-\theta)^{(n-k)} $ 先验概率为beta分布 $p(\theta) = \frac{1}{B(\alpha,\beta)} \theta^{\alpha-1} (1-\theta)^{\beta-1} $
上式中分子部分为
归一化因子为
回顾前面关于Beta函数的定义
最后的后验概率为
后验概率仍是一个Beta分布$Beta(\theta \vert \alpha+k,\beta+n-k)$, 可以作为下一次实验估计用的先验概率
多项分布与Dirichlet分布
多项分布
当实验结果可能有k种取值时,二项分布要扩展成多项分布. 例如掷骰子游戏
对于n次实验,试验结果可能有k种取值,$\theta_i$为第i种取值发生的概率, 记$x_i$为第i种取值发生的次数, 多项分布的概率质量函数为
可以看出多项分布就是二项分布的扩展.
Dirichlet 分布
Dirichlet分布就是多项分布对应共轭分布. 在贝叶斯参数估计中,用作多项分布的先验概率
Beta分布的超参有两个$\alpha,\beta$, 而Dirichlet分布的超参则有k个,对应多项分布的k种取值,记为$\alpha = (\alpha_1, … \alpha_k)$
可以看出Dirichlet分布就是Beta分布的扩展.
基于多项分布与Dirichlet先验分布的贝叶斯估计
对于n次实验,试验结果可能有k种取值,记$x_i$为第i种取值发生的次数, 采用超参为$\alpha=(\alpha_1,…,\alpha_k)$的Dirichlet分布为参数$\theta = (\theta_1, … \theta_k)$先验概率分布, 其后验概率如下
其中$\alpha^\prime = (\alpha_1^\prime,…, \alpha_k^\prime) = (\alpha_1+x_1, …, \alpha_k+x_k) $
推导过程类似于二项分布时,用Beta分布做先验分布求后验概率. 此处略去.
总结
- Beta分布为似然函数为二项分布的共轭先验分布
- Dirichlet为似然函数为多项分布的共轭先验分布,是Beta分布的推广
- Dirichlet的超参为$\alpha = (\alpha_1,…,\alpha_k)$, 参数的个数k为对应多项分布中单次实验可取值的个数.同时,估计参数$\theta=(\theta_1,…,\theta_k)$也为k个
- Dirichlet中的$Beta(\alpha)$实际为对于参数$\theta$的归一化因子.
- Dirichlet分布超参$\alpha$的值的大小对应先验的强度,相互比值对应先验估计的概率值,例如Diri(1,1)表明先验对两种取值概率的估计为(0.5,0.5),但是这是很弱的先验,其概率密度函数为均匀分布,而Diri(30,30)仍然标明对两种取值概率的估计为(0.5,0.5),但这个先验分布是比较强的,其概率密度函数接近多项(二项)分布,形状为比较尖锐的钟形