要想了解LDA背后的算法原理,我们首先要有一定的数学基础,这一节,我们一起来学习LDA算法中涉及的一些基础的数学知识。
1、gamma函数
所谓的gamma函数其实就是阶乘的函数形式,中学时候我们都学过n的阶乘,比如我们知道n!=123....n,如果我问你3的阶乘是多少,你能够立即回答出12*3=6,但是咱们学过的阶乘知识仅限于整数范围,如果我问你0.5的阶乘是多少,你可能会哑口无言,不过没关系,学过gamma 函数之后你就能够回答了,欧拉经过不懈努力,终于发现阶乘的更一般的函数形式gamma函数,gamma函数如下所示:
不难发现:
接下来,我们共同推导一下0.5的阶乘:
在上面的推导过程中,大家可能对雅可比行列式不是十分了解,我也一样,所以经过百度,终于明白了其中的道理,雅可比行列式在求解积分的过程中往往可以发挥重要的作用:
所以,在极坐标变换中:
为什么gamma函数可以表示阶乘呢,这里我们只需证明下面的式子即可:
证明过程也很简单:
上面提到了分部积分法,说实话是真忘了,如果大家对分部积分法有点遗忘的话,希望下面的图片可以帮你回忆起来,如果你没有忘,下面的部分可以直接跳过:
所以,其实gamma函数表示的是x-1的阶乘。即:
2、二项分布
二项分布相信大家都接触过,二项分布即重复n次独立的伯努利试验,在每次实验中只有两种可能的结果,成功或者失败,每次成功的概率为p,失败的概率就为1-p,假设在n次实验中,成功了k次,则二项分布的概率密度函数是:
3、beta分布
在概率论中,beta分布是指一组定义在区间(0,1)的连续概率分布,有两个参数α和 β,且 α ,β > 0
Beta分布的概率密度函数是:
随机变量服从参数为α和 β的beta分布通常写作,X~Beta(α,β),式中的分布的函数称为B函数
可以看到beta分布中用到了gamma分布,所以我们首先来验证一个公式,这个公式也就是B函数和Gamma函数的关系:
这里给出一种证明方法
证明过程太复杂了,没有点数学功底是搞不出来的,不过我们就先记住结论吧。
接下来我们来看一下Beta分布的期望:
讲了这么多Beta分布的公式,那么我们该如何通俗的理解Beta分布呢?用一句话来说,beta分布可以看作一个概率的概率分布,当你不知道一个东西的具体概率是多少时,它可以给出了所有概率出现的可能性大小。
举一个简单的例子,熟悉棒球运动的都知道有一个指标就是棒球击球率(batting average),就是用一个运动员击中的球数除以击球的总数,我们一般认为0.266是正常水平的击球率,而如果击球率高达0.3就被认为是非常优秀的。现在有一个棒球运动员,我们希望能够预测他在这一赛季中的棒球击球率是多少。你可能就会直接计算棒球击球率,用击中的数除以击球数,但是如果这个棒球运动员只打了一次,而且还命中了,那么他就击球率就是100%了,这显然是不合理的,因为根据棒球的历史信息,我们知道这个击球率应该是0.215到0.36之间才对啊。对于这个问题,我们可以用一个二项分布表示(一系列成功或失败),一个最好的方法来表示这些经验(在统计中称为先验信息)就是用beta分布,这表示在我们没有看到这个运动员打球之前,我们就有了一个大概的范围。beta分布的定义域是(0,1)这就跟概率的范围是一样的。接下来我们将这些先验信息转换为beta分布的参数,我们知道一个击球率应该是平均0.27左右,而他的范围是0.21到0.35,那么根据这个信息,我们可以取α=81,β=219
之所以取这两个参数是因为:
从图中可以看到这个分布主要落在了(0.2,0.35)间,这是从经验中得出的合理的范围。
在这个例子里,我们的x轴就表示各个击球率的取值,x对应的y值就是这个击球率所对应的概率。也就是说beta分布可以看作一个概率的概率分布。
可以看到这个分布其实没多大变化,这是因为只打了1次球并不能说明什么问题。但是如果我们得到了更多的数据,假设一共打了300次,其中击中了100次,200次没击中,那么这一新分布就是:
注意到这个曲线变得更加尖,并且平移到了一个右边的位置,表示比平均水平要高。
一个有趣的事情是,根据这个新的beta分布,我们可以得出他的数学期望为:
因此,对于一个我们不知道概率是什么,而又有一些合理的猜测时,beta分布能很好的作为一个表示概率的概率分布。
4、多项分布
多项分布是二项分布的扩展,在n次独立试验中每次只输出k种结果中的一个,且每种结果都有一个确定的概率p。多项分布给出了在多种输出状态的情况下,关于成功次数的各种组合的概率。
举一个掷骰子的例子,掷n次骰子,每次可能有六种输出,1点出现概率为p1,2点出现概率为p2,依次类推,在n次试验中,骰子1点出现次数为x1次,骰子2点出现次数为x2次,依次类推,这个组合出现的概率为:
也可以用gamma分布来表示:
5、狄利克雷分布(dirichlet distribution)
狄利克雷分布是beta分布在多项情况下的推广,也是多项分布的共轭先验分布(共轭先验分布我们在接下来会讲到),dirichlet分布的概率密度函数如下:
还有一个重要的公式,实在是太难推导了,大家记住结论就好:
跟前面beta分布类似,我们可以得到参数p的期望:
参考文献:https://www.zhihu.com/question/30269898/answer/123261564