赞
踩
http://blog.csdn.net/pipisorry/article/details/42672935
了解LDA需要明白如下数学原理:
一个函数:gamma函数
四个分布:二项分布、多项分布、beta分布、Dirichlet分布
一个概念和一个理念:共轭先验和贝叶斯框架
两个模型:pLSA、LDA(文档-主题,主题-词语)
一个采样:Gibbs采样
估计未知参数所采用的不同思想:频率学派、贝叶斯学派
1728年,哥德巴赫在考虑数列插值的问题,通俗的说就是把数列的通项公式定义从整数集合延拓到实数集合,例如数列 可以用通项公式 自然的表达,即便 为实数的时候,这个通项公式也是良好定义的。直观的说也就是可以找到一条平滑的曲线通过所有的整数点,从而可以把定义在整数集上的公式延拓到实数集合。一天哥德巴赫开始处理阶乘序列,我们可以计算, 是否可以计算 呢?我们把最初的一些的点画在坐标轴上,确实可以看到,容易画出一条通过这些点的平滑曲线。
但是哥德巴赫无法解决阶乘往实数集上延拓的这个问题,于是写信请教尼古拉斯.贝努利和他的弟弟丹尼尔.贝努利,由于欧拉当时和丹尼尔.贝努利在一块,他也因此得知了这个问题。而欧拉于1729 年完美的解决了这个问题,由此导致了 函数的诞生。
事实上首先解决的插值计算问题的是丹尼尔.贝努利,他发现,如果都是正整数,如果,有
欧拉也偶然的发现 可以用如下的一个无穷乘积表达
用极限形式,这个式子整理后可以写为
欧拉开始尝试从一些简单的例子开始做一些计算,看看是否有规律可循,欧拉极其擅长数学的观察与归纳。当 的时候,带入(*)式计算,整理后可以得到
为何 Gamma 函数被定义为 :
稍微修正一下,把Gamma 函数定义中的 替换为
更多的 Gamma 函数的历史,推荐阅读
Gamma 函数在概率统计中频繁现身,包括常见的统计学三大分布( 分布, 分布, 分布)、Beta分布、 Dirichlet 分布的密度公式中都有 Gamma 函数的身影;当然发生最直接联系的概率分布是直接由 Gamma 函数变换得到的 Gamma 分布。对Gamma 函数的定义做一个变形,就可以得到如下式子
分布图像
在概率统计领域,众多统计分布和Gamma 分布有密切关系。指数分布和 分布都是特殊的Gamma 分布。另外Gamma 分布作为先验分布是很强大的,在贝叶斯统计分析中被广泛的用作其它分布的先验。如果把统计分布中的共轭关系类比为人类生活中的情侣关系的话,那指数分布、Poission分布、正态分布、对数正态分布都可以是 Gamma 分布的情人。
接下来的内容中中我们主要关注的简单形式的 Gamma 分布。
Gamma 分布首先和 Poisson 分布、Poisson 过程发生密切的联系。我们容易发现Gamma 分布的概率密度和 Poisson 分布在数学形式上具有高度的一致性。参数为的Poisson 分布,概率写为
这种数学上的一致性是偶然的吗?从二项分布出发能把 Gamma 分布和 Poisson 分布紧密联系起来。我们在概率统计中都学过 分布可以看成是二项分布 在 条件下的极限分布。如果你对二项分布关注的足够多,可能会知道二项分布的随机变量满足如下一个很奇妙的恒等式
这个等式反应的是二项分布和 Beta 分布之间的关系,证明并不难,它可以用一个物理模型直观的做概率解释,而不需要使用复杂的数学分析的方法做证明。由于这个解释和 Beta 分布有紧密的联系,所以这个直观的概率解释我们放到下一个章节,讲解 Beta/Dirichlet 分布的时候进行。此处我们暂时先承认(*)这个等式成立。我们在等式右侧做一个变换,得到
接下来我们继续玩点好玩的,对上边的等式两边在 下取极限,左侧Poisson分布是要至少发生k个事件的概率, 的时候就不可能有事件发生了,所以 , 于是我们得到
看,我们从二项分布的一个等式出发, 同时利用二项分布的极限是Possion 分布这个性质,基于比较简单的逻辑,推导出了 Gamma 分布,同时把 表达为 Gamma 函数了!实际上以上推导过程是给出了另外一种相对简单的发现 Gamma 函数的途径。
回过头我们看看(**)式,非常有意思,它反应了Possion 分布和 Gamma 分布的关系,这个和(*)式中中反应的二项分布和Beta 分布的关系具有完全相同的结构。把(**)式变形一下得到
其实(*)和(**)这两个式子都是陈希儒院士的《概率论与数理统计》这本书第二章的课后习题,不过陈老师习题答案中给的证明思路是纯粹数学分析的证明方法,虽然能证明等式成立,但是看完证明后无法明白这两个等式是如何被发现的。上诉的论述过程说明,从二项分布出发,这两个等式都有可以很好的从概率角度进行理解。
魔鬼的游戏—认识Beta 分布
统计学就是猜测上帝的游戏,当然我们不总是有机会猜测上帝,运气不好的时候就得揣度魔鬼的心思。有一天你被魔鬼撒旦抓走了,撒旦说:”我有一个魔盒,上面有一个按钮,你每按一下按钮,就均匀的输出一个[0,1]之间的随机数,我现在按10下,我手上有10个数,你猜第7大的数是什么,偏离不超过0.01就算对。“ 你应该怎么猜呢?
从数学的角度抽象一下,上面这个游戏其实是在说随机变量,把这 个随机变量排序后得到顺序统计量 , 然后问 的分布是什么。
在概率统计学中,均匀分布应该算得上是潘多拉魔盒,几乎所有重要的概率分布都可以从均匀分布中生成出来;尤其是在统计模拟中,所有统计分布的随机样本都是通过均匀分布产生的。
对于上面的游戏而言 , 如果我们能求出 的分布的概率密度,那么用概率密度的极值点去做猜测就是最好的策略。对于一般的情形, 的分布是什么呢?那我们尝试计算一下 落在一个区间 的概率,也就是求如下概率值
把 [0,1] 区间分成三段 ,我们先考虑简单的情形,假设 个数中只有一个落在了区间 内,则因为这个区间内的数是第大的,则中应该有 个数, 这个区间中应该有 个数。不失一般性,我们先考虑如下一个符合上述要求的事件
事件
则有
表示的高阶无穷小。显然,由于不同的排列组合,即个数中有一个落在区间的有种取法,余下个数中有个落在的有种组合,所以和事件等价的事件一共有个。继续考虑稍微复杂一点情形,假设 个数中有两个数落在了区间 ,
事件E’
则有
还记得神奇的 Gamma 函数可以把很多数学概念从整数集合延拓到实数集合吧。我们在上式中取, 于是我们得到
回到魔鬼的游戏,这这个具体的实例中,我们按照如下密度分布的峰值去猜测才是最有把握的。
然而即便如此,我们能做到一次猜中的概率也不高,很不幸,你第一次没有猜中,魔鬼说:“我再仁慈一点,再给你一个机会,你按5下这个机器,你就得到了5个[0,1]之间的随机数,然后我可以告诉你这5个数中的每一个,和我的第7大的数相比,谁大谁小,然后你继续猜我手头的第7大的数是多少。”这时候我们应该怎么猜测呢?
魔鬼的第二个题目,数学上形式化一下,就是由于在中是第大的,利用的信息,我们容易推理得到 在 这个独立随机变量中是第大的,于是按照上一个小节的推理,此时 的概率密度函数是 。按照贝叶斯推理的逻辑,我们把以上过程整理如下:
我们知道贝叶斯参数估计的基本过程是
先验分布 + 数据的知识 = 后验分布
以上贝叶斯分析过程的简单直观的表述就是
而我们从以上过程可以看到,Beta 分布中的参数都可以理解为物理计数,这两个参数经常被称为伪计数(pseudo-count)。
基于以上逻辑,我们也可以把写成下式来理解
其中 恰好就是均匀分布Uniform(0,1)。
对于(***) 式,我们其实也可以纯粹从贝叶斯的角度来进行推导和理解。 假设有一个不均匀的硬币抛出正面的概率为,抛次后出现正面和反面的次数分别是,那么按传统的频率学派观点,的估计值应该为。而从贝叶斯学派的观点来看,开始对硬币不均匀性一无所知,所以应该假设, 于是有了二项分布的计数
之后,按照贝叶斯公式如下计算 的后验分布
百变星君Beta分布
{Beta(1, 1)就是均匀分布}
Beta 分布的概率密度我们把它画成图,会发现它是个百变星君,它可以是凹的、凸的、单调上升的、单调下降的;可以是曲线也可以是直线,而均匀分布也是特殊的Beta分布。由于Beta 分布能够拟合如此之多的形状,因此它在统计数据拟合中被广泛使用。
在上一个小节中,我们从二项分布推导Gamma 分布的时候,使用了如下的等式
我们可以如下构造二项分布,取随机变量 ,一个成功的贝努利实验就是,否则表示失败,于是成功的概率为。用于计数成功的次数,于是。
贝努利实验最多成功次
显然我们有如下式子成立
此处是顺序统计量,为第大的数。等式左边表示贝努利实验成功次数最多次,右边表示第 大的数必然对应于失败的贝努利实验,从而失败次数最少是次,所以左右两边是等价的。由于, 于是
最后我们再回到魔鬼的游戏,如果你按出的5个随机数字中,魔鬼告诉你有2个小于它手中第7大的数,那么你应该
按照如下概率分布的峰值做猜测是最好的
很幸运的,你这次猜中了,魔鬼开始甩赖了:这个游戏对你来说太简单了,我要加大点难度,我们重新来一次,我按魔盒20下生成20个随机数,你同时给我猜第7大和第13大的数是什么,这时候应该如何猜测呢?
数学形式化如下:完全类似于第一个游戏的推导过程,我们可以进行如下的概率计算(为了数学公式的简洁对称,我们取满足,但只有是变量)
即便 延拓到非负实数集合,以上概率分布也是良定义的。
从形式上我们也能看出,Dirichlet 分布是Beta 分布在高维度上的推广,他和Beta 分布一样也是一个百变星君,密度函数可以展现出多种形态。
不同 下的Dirichlet 分布
{ {αk} = 1时相当于高维均匀分布 -}
类似于魔鬼的游戏2,我们也可以调整一下游戏3,从魔盒中生成个随机数 并让魔鬼告诉我们和相比谁大谁小。于是有如下游戏4
为了方便,我们记
以上贝叶斯分析过程的简单直观的表述就是
以上式子实际上描述的就是 Dirichlet-Multinomial 共轭,而我们从以上过程可以看到,Dirichlet 分布中的参数都可以理解为物理计数。
类似于 Beta 分布,我们也可以把 作如下分解
以上的游戏我们还可以往更高的维度上继续推,譬如猜测 中的4、5、…等更多个数,于是就得到更高纬度的 Dirichlet 分布和 Dirichlet-Multinomial 共轭。一般形式的 Dirichlet 分布定义如下
如果 , 则
这说明,对于Beta 分布的随机变量,其均值可以用来估计。
Dirichlet 分布也有类似的结论,如果,同样可以证明
{通过一个游戏来解释这两个共轭关系,主要是想说明这个共轭关系是可以对应到很具体的概率物理过程的}
根据wikipedia上的介绍,维度K ≥ 2(x1,x2…xK-1维,共K个)的狄利克雷分布在参数α1, ..., αK > 0上、基于欧几里得空间RK-1里的勒贝格测度有个概率密度函数,定义为:
其中,相当于是多项beta函数
且
此外,x1+x2+…+xK-1+xK=1,x1,x2…xK-1>0,且在(K-1)维的单纯形上,其他区域的概率密度为0。
当然,也可以如下定义Dirichlet 分布
其中的称为Dirichlet 分布的归一化系数:
将Dirichlet分布的概率密度函数取对数,绘制对称Dirichlet分布的图像如下图所示:
上图中,取K=3,也就是有两个独立参数x1,x2,分别对应图中的两个坐标轴,第三个参数始终满足x3=1-x1-x2且α1=α2=α3=α,图中反映的是参数α从α=(0.3, 0.3, 0.3)变化到(2.0, 2.0, 2.0)时的概率对数值的变化情况。
皮皮Blog
的先验分布
和后验分布
属于统一分布簇(也就是说有同样的函数形式),则称先验分布
和后验分布
为共轭分布,先验分布
是似然函数
的共轭先验。也就是在贝叶斯概率理论中,如果后验概率P(θ|x)和先验概率p(θ)满足同样的分布律,那么,先验分布和后验分布被叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。
由于pLSA中参数 和
都服从多项分布,因此选择Dirichlet分布作为他们的共轭先验。在pLSA中,假设这俩多项分布是确定的,我们在已经假设确定的分布下,选择具体的主题和词项;但在LDA中,这俩多项分布的参数是被当作随机变量,服从另一层先验分布,所以,Dirichlet分布也称作分布的分布,其定义如下:
其中, 是要猜测的随机向量,
是超参数,
称作Delta函数,可以看作Beta函数的多项式扩展,是Dirichlet分布的归一化系数,定义如下:
相应的多项分布定义:
其中, 和
服从约束
和
。由于
就是阶乘在实数集上的扩展,显然,公式(1)和(3)有相同的形式,所以,这俩分布也称作Dirichlet-Multinomail共轭。
如果 ,则
中的任一元素
的期望是:
可以看出,超参数 的直观意义就是事件先验的伪计数(prior pseudo-count)。
1.首先了解gamma函数:由问题n!中n为实数推导出Gamma函数
参考[马尔科夫模型]
Blei的原始论文使用变分法(Variational inference)和EM算法进行贝叶斯估计的近似推断,但不太好理解,并且EM算法可能推导出局部最优解。Heinrich使用了Gibbs抽样法,这也是目前LDA的主流算法。随机模拟也可用于类pLSA算法,但现在很少有人这么做。
Gibbs采样基本算法如下:
,可以随机选择;
抽样
。要完成Gibbs抽样,需要知道如下条件概率:
如果模型包含隐变量,通常需要知道后验概率分布
,所以,包含隐变量的Gibbs抽样器公式如下:
{最后一步对zi积分,将变量zi积分掉}
[随机采样和随机模拟:吉布斯采样Gibbs Sampling]
from:http://blog.csdn.net/pipisorry/article/details/42672935
ref:http://www.52nlp.cn/lda-math-%E6%B1%87%E6%80%BB-lda%E6%95%B0%E5%AD%A6%E5%85%AB%E5%8D%A6
各种参数估计方法+Gibbs 采样最精准细致的论述:Gregor Heinrich.Parameter estimation for text analysis*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。