1 前言
要想彻底搞明白 LDA 的实现原理,就需要具备一定的数学基础。LDA 用到的数学知识包括:
- 一个公式和两个概念:贝叶斯公式、共轭分布和共轭先验
- 一个函数:gamma 函数
- 四个分布:二项分布、多项分布、beta 分布、dirichlet 分布
- 一个采样:gibbs 采样
下面将分别对这几个部分作介绍。
2 一个公式和两个概念
先来看一下贝叶斯公式:
- 先验概率:在事件尚未发生前,对该事件发生概率的估计。利用过去历史资料计算出来得到的先验概率叫做客观先验概率;凭主观经验来判断而得到的先验概率叫做主观先验概率。
- 后验概率:通过调查或其它方式获取新的附加信息,利用贝叶斯公式对先验概率进行修正后而得到的概率。
- 似然函数:给定模型参数
的条件下,样本数据服从这一概率模型的相似程度。
- 先验分布:反映在进行统计试验之前根据其他有关参数知识得到的分布。也就是说在观测获取样本之前,人们对
已经有一些知识,此时这个的分布函数为,的概率密度函数为,分别称为先验分布函数和先验概率密度函数,统称先验分布。
- 后验分布:根据样本 X 的分布以及
的先验分布,采用求解条件概率的方式可以计算出已知 X 的条件下,的条件分布。因为该分布是在获取样本 X 之后计算出来的,所以称为后验分布。
- 共轭分布和共轭先验:在贝叶斯概率理论中,如果后验概率
和先验概率满足同样的分布律,那么,先验分布和后验分布被叫做共轭分布。同时,先验分布叫做似然函数的共轭先验分布。
3 一个函数
gamma 函数定义如下:
4 四个分布
4.1 二项分布
二项分布是从伯努利分布推导出来的。伯努利分布,又称两点分布或0-1分布,是一个离散型的随机分布,其中的随机变量只有两种取值,非正即负{+,−}。而二项分布即重复 n 次伯努利试验,记为 X∽B(n,p) 。简言之,只做一次实验,是伯努利分布,重复做了 n 次,是二项分布。二项分布的概率密度函数为:
一个典型的例子就是抛硬币,我们做 n 次实验,有 k 次为正面的概率。
4.2 多项分布
多项分布是二项分布在多维上的推广,是指单次试验中随机变量的取值不再是 0-1 ,而是有多种离散值。比如掷骰子,有 6 个面,n 次试验结果服从 k=6 的多项分布。其中 k 个离散值的概率满足:
其中
4.3 beta 分布
用一句话来说,beta 分布可以看作是一个概率的概率分布。当你不知道一个事件的具体概率是多少时,它可以给出所有概率出现的可能性大小。
假设随机变量
首先把
从而问题转换为下述事件 E:
对于上述事件 E 有:
其中,
如果有 2 个数落在区间
类似于事件 E,对于 2 个数落在区间
有:
从上述的事件E、E' 中,可以看出,只要落在
从而得到概率密度函数:
考虑 gamma 函数的性质:
我们在来看看 Beta 分布的期望:
由于 Beta 分布的积分值为 1,所以:
那么 beta 分布有什么用处呢?
我们举个例子,熟悉棒球运动的都知道有一个指标就是棒球击球率,就是用一个运动员击中的球数除以击球的总数,我们一般认为 0.266 是正常水平的击球率,而如果击球率高达 0.3 就被认为是非常优秀的。
现在有一个棒球运动员,我们希望能够预测他在这一赛季中的棒球击球率是多少。你可能就会直接计算棒球击球率,用击中的数除以击球数,但是如果这个棒球运动员只打了一次,而且还命中了,那么他就击球率就是 100%,这显然是不合理的,因为根据棒球的历史信息,我们知道这个击球率应该是 0.215 到 0.36 之间。
对于这个问题,我们可以用一个二项分布表示(一系列成功或失败),一个最好的方法来表示这些经验(在统计中称为先验信息)就是用 Beta分布 ,这表示在我们没有看到这个运动员打球之前,我们就有了一个大概的范围。
beta 分布是指一组定义在 (0,1) 区间的连续概率分布,具有两个参数:a,b>0 。接下来我们将这些先验信息转换为 beta 分布的参数,我们知道一个击球率应该是平均 0.27 左右,而他的范围是 0.21 到 0.35,那么根据这个信息,我们可以取 a=81,b=219。
之所以取这两个参数是因为:
- beta 分布的均值是
- 从图中可以看到这个分布主要落在了
间,这是从经验中得出的合理的范围。
其中,x 轴就表示各个击球率的取值,y 值就是这个击球率所对应的概率。