大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
原文转自:http://hi.baidu.com/leifenglian/item/636198016851cee7f55ba652
一、前言
参数估计是一个重要的话题。对于典型的离散型随机变量分布:二项式分布,多项式分布;典型的连续型随机变量分布:正态分布。他们都可以看着是参数分布,因为他们的函数形式都被一小部分的参数控制,比如正态分布的均值和方差,二项式分布事件发生的概率等。因此,给定一堆观测数据集(假定数据满足独立同分布),我们需要有一个解决方案来确定这些参数值的大小,以便能够利用分布模型来做密度估计。这就是参数估计!
对于参数估计,一直存在两个学派的不同解决方案。一是频率学派解决方案:通过某些优化准则(比如似然函数)来选择特定参数值;二是贝叶斯学派解决方案:假定参数服从一个先验分布,通过观测到的数据,使用贝叶斯理论计算对应的后验分布。先验和后验的选择满足共轭,这些分布都是指数簇分布的例子。
参数估计方法的一个限制:是我们人为的假定了参数分布服从了某种指定形式的分布函数,这可能在某些特定情况下是不合适的。有一种可选的解决方案是:无参密度估计,他只依赖于观测数据量的大小,这种方法其实也需要参数,但是这些参数只是控制了模型的复杂性而不是分布的函数形式。有三种无参密度估计方法:直方图,最近邻,核函数。(可能在以后的博文中讲述)
本文从以参数估计为目标出发,从二项式分布讲述到多项式分布,从Beta分布讲述到Dirichlet分布。(有关离散型随机变量分布正态分布可能在以后博文中讲述)
二、二项式分布与Beta分布
二项式分布源自对二元变量的研究。
1)二元变量-贝努力实验
对于一次贝努力抛硬币实验中有两个结果,我们令x=1是正面,x=0是负面,令是正面的概率为u,则有:
p(x = 1|μ) = μ (2.1)则x的概率分布可写成如下形式:
(2.2)这就是贝努力分布(注意是一次实验),它有均值和方差为:
E[x] = μ (2.3)
var[x] = μ(1 − μ). (2.4)
现在假定有一个x的观测数据集D={x1,….,xN},那么我们能够构造出参数u的似然函数:
(2.5)
根据频率学派的思路,我们可以通过最大化似然函数来估算出参数u的值。我们选择最大化似然函数的Log,则对于贝努力分布,Log似然函数为:
(2.6)
求关于u的导并将导数设置为0可求得:
(2.7)去掉前面的1/N,右边的式子有个名字叫充分统计量,这里可用m表示,即N次贝努力实验中m次出现
所以可得到参数u的最有可能值:(2.8)
现在假设N=m=3,那么u=1,很明显与我们的经验值不符合,因此在小的的观测数据集下,最大化似然函数的方法容易与观测数据过度拟合。为了解决这个问题,可以根据贝叶斯学派的观点,引入参数的先验概率分布。见下文详解
2)二项式分布
在大小为N的数据集中(N重贝努力实验),以x=1的数据出现的次数为随机变量,他服从二项式分布:
(2.9)其中(2.10)
注意:二项式分布也可以作为参数u的似然函数,注意N次贝努力实验中式子2.5也是作为似然函数。
我们分别可以得到二项式分布的随机变量的期望和方差,如下:(期望=随机变量的值*概率)
为什么要引入二项式分布呢?继续
3)Beta分布
我们需要用贝叶斯理论求得参数u的值,需要给u一个先验分布,然后用贝叶斯理论求得u的后验分布,进而估计u值。那么,该选用什么样的分布作为先验分布呢?通过观察似然函数u与(1-u)乘积的形式,我们选用了Beta分布作为u的先验分布,因为根据贝叶斯理论,后验=似然函数*先验,我们发现当后验与先验同时具有相同的分布时具有一些优秀的性质,能使我们方便的进行u的估算,现在,似然函数可以如式2.9,当先验选择Beta分布时,后验正好也是Beta分布。
Beta分布:
(2.13)
其中,2.13式左边的系数为为了确保beta分布是归一化的:
(2.14)我们注意到参数u随机变量的取值在0到1之间
可求得随机变量的期望和方差:
a与b的值是参数u的分布中的参数,称之为超参数。
现在,参数的u的后验分布可以通过似然函数(2.9)乘以先验分布(2.13)来得到,得到的结果只保留与参数u相关的项得:
(2.17)其中l=N-m。
加入归一化系数后得:
(2.18)
可看到后验同样是beta分布,当先验和后验是同一分布时,我们称之为共轭。
仔细观测,他拥有优秀的性质:
1 观测以Gamma函数为分子分母的系数,参数a,b可分别看作事件x=1,x=0的有效观测量。a的值通过m的增加而增加,b的值通过l的值增加而增加(比较2.13和2.18两个式子的Gamma系数,可这样理解:a<— a+m,b<— b+l)
2 如果以后有新增的观测值,后验分布又可作为先验分布来进行计算。具体来讲,在某一个时间点,有一个观测值,此时可以得到后验,之后,每一个观测值的到来,都以之前的后验作为先验,乘以似然函数后,得到修正后的新后验。在这每一步中,其实我们不需要管什么似然函数,我们可以将后验分布看作是以代表x=1出现“次数”的参数a和代表x=0出现“次数”的参数b为参数的beta分布,当有一个新的x=1的观测量到来的时候,m=1,l=0,即a的值相应的加1,否则m=0,l=1即b的值加1。如图2.3解释了这一步骤:
图2.3
先验中a=2,b=2,当有新的观测值到来的时候,新的观测值是x=1的量,即m=1,l=0,此时后验中a=3,b=2,如第三个图。
我们可以把上面第二个优秀的性质所表示的方法看作为序列方法(sequential approach),该方法是贝叶斯观点中很自然得到的学习方法。他非常适合实时学习场景。在某一时刻,有一个观测数据,或是一小批量数据,在下一批观测数据到来之前我们就可以丢弃他们,因为我们可以在一开始的小批量数据中得到我们的后验分布模型,当有新的一批数据到来时,只需要更新这个模型就够了。一个实时学习应用场景是:在所有数据到来之前,预测就必须通过之前稳定到达的一部分数据流来做出预测。注意到,因为这种序列方法不需要将所有数据都载入内存,因此他在大数据的应用将非常有效。当然,之前频率学派所使用的最大化似然函数方法也可以转换成这种序列式方法的。
注意到一个问题,我们的终极目标是什么?是利用一堆观测数据集求得的参数u,来对新来的一个数据做出预测,但是注意,我们现在并不直接求参数u,而是求下一次实验的结果概率,对于抛硬币实验,我们要预测下一次实验出现正面的概率是多少。现在我们来解决这个问题。
我们的目标是在观察到一堆数据后,要预测下一次出现正面的概率:
注意到没,他的预测值就是u的后验分布的期望。后验分布为2.18式,他的期望是:(结合2.15式推出,a<— a+m,b<— b+l)
(2.20)这个结果是预测的结果,同时也即参数u的估计值。
是时候和频率学派做参数估计的方法做比较了:
1 贝叶斯学派采用给参数赋予先验分布,并使得先验与后验共轭,通过求后验均值来得到参数的估计,频率学派通过某个优化准则比如最大化似然函数来求得参数的估计;不管是哪个学派思想,都要用到似然函数,注意到频率学派所使用的似然函数是N次贝努力实验下的似然函数,但贝叶斯学派所使用的似然函数是二项式分布形式的似然函数(二项式分布是N次贝努力实验中出现事件A的次数的分布)。
2 当拥有无限数据量时(上式中m和l都趋向于无穷),贝叶斯方法和频率学派方法所得到的参数估计是一致的。当在有限的数据量下,贝叶斯学派的参数后验均值的大小介于前验均值和频率学派方法得到参数估计。比如在抛硬币实验中,当数据量有限时,先验均值为0.5,后验均值将会比先验大,比频率学派得到参数估计小。
3 随着观测数据的增多,后验分布曲线越来越陡峭(越来越集中),即方差越来越小(后验方差总比前验方差小),由方差式子2.16可知,当数据量无穷大时,方差趋近于0,即随着数据越来越多,后验的不确定性在减小。
三、多项式分布与Dirichlet分布
1)多项式分布
多项式分布时二项式分布的扩展,在多项式分布所代表的实验中,一次实验会有多个互斥结果,而二项式分布所代表的实验中,一次实验只有两个互斥结果。具体形式和演变过程听我慢慢道来。
假设事件发生有K=6个互斥的结果,如果这个结果中某个结果发生了,则令x3=1,如下式:
(2.25)这个向量满足:,如果我们用uk来表示xk=1是的概率,则向量x的分布为:
(2.26),其中,满足
注意到,向量x的分布在数学上并没有正式的名字,他其实就是贝努力分布如果在实验结果大于两种情况下的分布。在2.25式所示的向量中,则对应有
p(x|u)=u3。
很容易得到概率值的归一化形式:,进一步得到在u的条件下,向量x的期望:
(2.28)注意到Σ的下标x所表示的是一次实验的各种可能的值,对于上例,p(x|u)x=[0 0 u3 0 0 0]的转置,Σ之后就得到了u向量。
现在我们考虑一个数据集D,他有N个如上的独立实验结果,X1,….XN。我们可以得到似然函数(参照多次贝努力实验时的似然函数)有如下形式:
(2.29)其中mk称为这个分布的充分统计量。它有如下等式:(2.30),即mk表示的是N次实验中,互斥第k个结果出现的次数。
同样的,就像N次贝努力实验一样,依照频率学派的观点,在的条件下,我们可以极大化似然函数P(D|u)以求得我们的参数向量u,可以引入拉格朗日乘子将这个条件和似然函数合并到一起,并求log得到:
(2.31),通过求关于uk的导数并等于0得到结果:
(2.32)将拉格朗日乘子满足:λ=-N,可以得到终极结果:
(2.33)注意到uk最有可能的估计值为N次实验中,第k个互斥结果的比例。
说到现在,多项式分布的影子还没有呢,考虑数量m1,…,mk的联合分布(即k个不同互斥结果在N次实验中出现次数的联合分布),在参数u和N个观测数据的条件下,得到多项式分布:
系数即(2.35)即N个数据分配到K组,
和二项式分布作为似然函数一样,多项式分布也作为在贝叶斯学派下的似然函数
2)Dirichlet分布
为求得参数向量u的值,根据贝叶斯学派的观点,我们要引入u的先验,同时使得先验和后验共轭。同样,通过观察多项式分布似然函数的形式,先验分布选取形式为:
(2.37)其中,向量a表示,加入系数正规化,得到Dirichlet先验分布的正式表示:
(2.38),其中
因为u总和是常量,在分布在{uk}上的空间被限定在k-1维上,这句话不好理解,假设现在K=3,那么a的维就是a1和a2两维,我们可以画出如下分布图:
图2.5,水平轴方向是简化了的{
αk},垂直方向的值密度值,即先验参数值u向量的值。第一个图是{αk}=0.1,此时图中三个尖尖表示三个u值,即u1,u2,u3,第二个图是{
αk}=1,第三个是{
αk}=10。
乘以先验和多项式分布似然函数,可得参数{uk}的后验分布:
可看出后验也是Dirichlet分布,即后验与先验是关于多项式分布的共轭。比较2.38,加入归一化系数得:
其中,跟beta后验把a,b当着x=1和x=0的有效观测量一样,我们也可以把ak当着是xk=1事件的观测量,即ak的值通过mk的值增加而增加。
四、后记——Beta分布,Dirichlet分布的应用
介绍这些分布的目的是为了做参数估计,参数估计的方法大致分为两种,一种是频率学派利用某些优化准则求得参数值,一种是贝叶斯学派通过给参数先验分布,同时使后验与先验共轭,求得参数后验均值以得到参数估计。
接下来要学习的是主题模型PLSA和LDA,这两个模型都与这些分布密不可分。
主题模型的概率表示:
p(词语|文档)可通过观察数据集求得。那么右边的两个概率分布如何求得的?将这两个分布看着是上帝的游戏:上帝为了创造一篇文档,先用一个有M个面的骰子做实验,M个面代表M个主题,每做一次投骰子实验,就可以得到M个主题中的一个,进行多次投掷,就可以得到一篇文档的多个主题,可以看到这个实验描述的分布就是多项式分布。同样的某个主题下有多个词语,某个主题骰子有N个面,每个面表示一个词语(即词袋),每做一次投骰子实验,就可得到N个词中的一个,进行多次投掷,就可以得到一个主题下多个词语,同样可以看出这个实验也服从多项式分布。我们可以将他们的先验都取Dirichlet分布。后面LDA相关的博文将会继续深入。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184125.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...