首页 > 代码库 > 【机器学习中的数学】贝叶斯框架下二元离散随机变量的概率分布

【机器学习中的数学】贝叶斯框架下二元离散随机变量的概率分布

引言

我感觉学习机器学习算法还是要从数学角度入门才是唯一正道,机器学习领域大牛Michael I. Jordan给出的机器学习定义是,“A field that bridge computation and statistics,with ties to information theory, signal processing, algorithm, control theory and optimization theory”。所以对于机器学习的门徒来说,我认为将计算机和统计理论有机结合起来才是正确的出路。市面上吹嘘的所谓不介绍数学背景,只引入如何使用算法的书籍,只能是迎合那些急功近利的人的口味,确实可以感觉出被火热概念炒出来的人们的浮躁。
当然,看别人的浮躁,说明你也有一颗浮躁的心。
我还是踏踏实实的一步一个脚印的赶紧上路吧!不然,我也是一个随波逐流,追赶鱼潮的打渔人,没有自己的根本,一旦翻了船,那才是一无所获呢。
学校里很多老师教的课程确实都是在忽悠学生,其实他们可能也没有很扎实的数学基础,以至于很难将学生领入正确的道路上来。至少作为听课学生来讲,我是这么感觉的。造成的结果是,感觉这门课程是独立于一个领域的,是很孤立的。而从一些外文书籍中可以看出来,机器学习其实是多学科交叉的衍生物,和很多工程领域理论都有密切的联系,这样,至少让我们这种初学者有据可查,不至于感觉它是从石头缝里蹦出来的。

接下来,几篇文章介绍的概率分布是构建复杂模型的基础。讨论这些概率分布的一个重要应用就是密度估计(density estimation),即根据有限的观测数据,去建立模型,然后得到这些随机变量的样本所遵循的概率分布。(直到这时,我才多少明白一点本科时概率统计课上教的参数估计是干什么用的)

二元变量(Binary Variables)

我们首先来考虑二元随机变量x∈{0,1}。

伯努利分布(Bernoulli Distribution)

伯努利分布(the Bernoulli distribution,又名两点分布或者0-1分布,是一个离散型概率分布,为纪念瑞士科学家雅各布·伯努利而命名),若伯努利试验成功,则伯努利随机变量取值为1。若伯努利试验失败,则伯努利随机变量取值为0。

技术分享

最大似然估计(Maximum Likelihood Estimation)

现在给出一组观测数据D={x1,...,xN},我们通过构建似然函数,来估计参数μ(随机变量取1时对应的概率)。

技术分享

举个例子,
如果进行三次观测,三次观测结果x均为1,那么μML为1,这说明未来的观测结果应该均为x=1。根据常识,这显然是不合常理的。实际上,这是由于小数据集导致的过拟合的结果。接下来我们要解释的就是从贝叶斯理论的角度,如何去理解这个问题。

二项分布(Binomial Distribution)

二项分布是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。这样的单次成功/失败试验又称为伯努利试验。实际上,当n = 1时,二项分布就是伯努利分布。
二项分布定义为:

技术分享

二项分布的期望和方差分别是:

技术分享

Beta分布

为了解决小数据集中用最大似然估计的方法来估计参数产生的过拟合的现象,我们尝试用贝叶斯的方式引入参数μ的先验分布。

技术分享

这里a和b被称为超参数(hyperparameters),因为它们左右了参数μ的分布,它们不一定为整数。
下面的图像显示了不同的超参对分布的影响:

技术分享

先验概率

在贝叶斯统计中,某一不确定量p的先验概率分布是在考虑"观测数据"前,能表达p不确定性的概率分布。它旨在描述这个不确定量的不确定程度,而不是这个不确定量的随机性。这个不确定量可以是一个参数,或者是一个隐含变量(latent variable)。
在使用贝叶斯定理时,我们通过将先验概率与似然函数相乘,随后标准化,来得到后验概率分布,也就是给出某数据,该不确定量的条件分布。
先验概率通常是主观的猜测,为了使计算后验概率方便,有时候会选择共轭先验。如果后验概率和先验概率是同一族的,则认为它们是共轭分布,这个先验概率就是对应于似然函数的共轭先验

共轭分布(Conjugate Prior)

为了使得先验分布和后验分布的形式相同,我们定义:如果先验分布和似然函数可以使得先验分布和后验分布有相同的形式,那么就称先验分布与似然函数是共轭的。所以共轭是指:先验分布和似然函数共轭。
共轭先验的意义在于,使得贝叶斯推理更加方便,比如在续贝叶斯推理(Sequential Bayesian inference连)中,得到一个observation之后,可以算出一个后验分布。由于选取的是共轭先验,因此后验和原来先验的形式一样,可以把该后验当做新的先验,用于下一次observation,然后继续迭代。

后验分布

参数μ的后验分布是将其先验分布乘上二项式似然函数(binomial likelihood function),再归一化得到。
后验分布有如下形式:

技术分享

其中,l = N-m。
我们可以看出,这里的后验分布和先验分布有相同的形式,这体现了似然函数的共轭先验的特性。这个后验分布也是一个Beta分布,这样我们可以将这个后验分布当做是一个新的先验分布,当得到一组新的数据之后,我们可以更新得到新的后验分布。
这种顺序方法(sequential approach)每次利用一小波(small batches)观测数据,当新的观测数据来的时候,就会丢弃旧的观测数据。
所以这种方法非常适用于数据流稳定到来,而在观测所有数据之后得出预测结果的实时学习的情景,因为这种方法不要求数据一次性的全部载入内存来计算。
下面的图片形象的描述了连续贝叶斯推理(sequential Bayesian inference)的一个环节。先验分布参数a=2、b=2,对应只有一个观测数据x=1的似然函数,其参数N=m=1,而后验分布的参数a=3、b=2。

技术分享

预测数据

现在我们要做的是,根据给定的观测数据集D来评估x的预测分布。

技术分享

由上式,我们可以看出,随着数据癿增加, m、l 趋于无穷大时,这时参数的后验分布就等于最大似然解。而对于有限数据集来说,参数μ的后验均值总是介于先验平均和μ的最大似然估计值之间的。

总结

我们可以看出,随着观测数据的增多,后验分布变成一个越来越陡峭的山峰形状。这通过Beta分布的方差可以看出,当a和b趋近于无穷大时,Beta分布的方差趋近于0。从宏观层面上说,当我们观察到更多的数据时,后验分布所体现的不确定性将骤然降低(steadily decrease)。
有些先验分布可以证明,随着数据的增加方差越来越小,分布越来越陡,最后坍缩成狄拉克函数,这时贝叶斯方法和频率派方法是等价的。

参考资料

Pattern Recognition and Machine Learning, Christopher M. Bishop
Wiki:β-二项式分布

转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

【机器学习中的数学】贝叶斯框架下二元离散随机变量的概率分布