月度归档:2012年12月

LDA-math-认识Beta/Dirichlet分布(2)

Deep Learning Specialization on Coursera

2. LDA-math-认识Beta/Dirichlet分布(2)
2.2 Beta-Binomial 共轭

魔鬼的第二个题目,数学上形式化一下,就是

  1. $X_1,X_2,\cdots,X_n {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$,对应的顺序统计量是 $X_{(1)},X_{(2)},\cdots, X_{(n)}$, 我们要猜测 $p=X_{(k)}$;
  2. $Y_1,Y_2,\cdots,Y_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$, $Y_i$中有$m_1$个比$p$小,$m_2$个比$p$大;
  3. 问 $P(p|Y_1,Y_2,\cdots,Y_m)$ 的分布是什么。

由于$p=X_{(k)}$在 $X_1,X_2,\cdots,X_n $中是第$k$大的,利用$Y_i$的信息,我们容易推理得到 $p=X_{(k)}$ 在$X_1,X_2,\cdots,X_n,Y_1,Y_2,\cdots,Y_m {\stackrel{\mathrm{iid}}{\sim}} Uniform(0,1)$ 这$(m+n)$个独立随机变量中是第 $k+m_1$大的,于是按照上一个小节的推理,此时$p=X_{(k)}$ 的概率密度函数是 $Beta(p|k+m_1,n-k+1+m_2)$。按照贝叶斯推理的逻辑,我们把以上过程整理如下:

  1. $p=X_{(k)}$是我们要猜测的参数,我们推导出 $p$ 的分布为 $f(p) = Beta(p|k,n-k+1)$,称为 $p$ 的先验分布;
  2. 数据$Y_i$中有$m_1$个比$p$小,$m_2$个比$p$大,$Y_i$相当于是做了$m$次贝努利实验,所以$m_1$ 服从二项分布 $B(m,p)$;
  3. 在给定了来自数据提供的$(m_1,m_2)$的知识后,$p$ 的后验分布变为 $f(p|m_1,m_2)=Beta(p|k+m_1,n-k+1+m_2)$

coin-toss贝努利实验

继续阅读

LDA-math-认识Beta/Dirichlet分布(1)

Deep Learning Specialization on Coursera

2. 认识Beta/Dirichlet分布
2.1 魔鬼的游戏---认识Beta 分布

统计学就是猜测上帝的游戏,当然我们不总是有机会猜测上帝,运气不好的时候就得揣度魔鬼的心思。有一天你被魔鬼撒旦抓走了,撒旦说:”你们人类很聪明,而我是很仁慈的,和你玩一个游戏,赢了就可以走,否则把灵魂出卖给我。游戏的规则很简单,我有一个魔盒,上面有一个按钮,你每按一下按钮,就均匀的输出一个[0,1]之间的随机数,我现在按10下,我手上有10个数,你猜第7大的数是什么,偏离不超过0.01就算对。“ 你应该怎么猜呢?

从数学的角度抽象一下,上面这个游戏其实是在说随机变量$X_1,X_2,\cdots,X_n {\stackrel{\mathrm{iid}}{\sim}} Uniform(0,1)$,把这$n$ 个随机变量排序后得到顺序统计量 $X_{(1)},X_{(2)},\cdots, X_{(n)}$, 然后问 $X_{(k)}$ 的分布是什么。

对于不喜欢数学的同学而言,估计每个概率分布都是一个恶魔,那在概率统计学中,均匀分布应该算得上是潘多拉魔盒,几乎所有重要的概率分布都可以从均匀分布$Uniform(0,1)$中生成出来;尤其是在统计模拟中,所有统计分布的随机样本都是通过均匀分布产生的。

pandora潘多拉魔盒Uniform(0,1)

继续阅读

LDA-math-神奇的Gamma函数(3)

Deep Learning Specialization on Coursera

1. 神奇的Gamma函数
1.3 从二项分布到Gamma 分布

Gamma 函数在概率统计中频繁现身,众多的统计分布,包括常见的统计学三大分布($t$ 分布,$\chi^2$ 分布,$F$ 分布)、Beta分布、 Dirichlet 分布的密度公式中都有 Gamma 函数的身影;当然发生最直接联系的概率分布是直接由 Gamma 函数变换得到的 Gamma 分布。对Gamma 函数的定义做一个变形,就可以得到如下式子
 \int_0^{\infty} \frac{x^{\alpha-1}e^{-x}}{\Gamma(\alpha)}dx = 1
于是,取积分中的函数作为概率密度,就得到一个形式最简单的Gamma 分布的密度函数
Gamma(x|\alpha) = \frac{x^{\alpha-1}e^{-x}}{\Gamma(\alpha)}
如果做一个变换 $x=\beta t$, 就得到Gamma 分布的更一般的形式
Gamma(t|\alpha, \beta) = \frac{\beta^\alpha t^{\alpha-1}e^{-\beta t}}{\Gamma(\alpha)}
其中 $\alpha$ 称为 shape parameter, 主要决定了分布曲线的形状;而$\beta$ 称为 rate parameter 或者inverse scale parameter ($\frac{1}{\beta}$ 称为scale parameter),主要决定曲线有多陡。

gamma-distribution$Gamma(t|\alpha,\beta)$分布图像

Gamma 分布在概率统计领域也是一个万人迷,众多统计分布和它有密切关系。指数分布和$\chi^2$ 分布都是特殊的Gamma 分布。另外Gamma 分布作为先验分布是很强大的,在贝叶斯统计分析中被广泛的用作其它分布的先验。如果把统计分布中的共轭关系类比为人类生活中的情侣关系的话,那指数分布、Poission分布、正态分布、对数正态分布都可以是 Gamma 分布的情人。接下来的内容中中我们主要关注$\beta = 1$的简单形式的 Gamma 分布。
继续阅读

LDA-math-神奇的Gamma函数(2)

Deep Learning Specialization on Coursera

1. 神奇的Gamma函数
1.2 Gamma 函数欣赏

Each generation has found something of interest to say about the gamma function. Perhaps the next generation will also. 
---Philip J.Davis

Gamma 函数从它诞生开始就被许多数学家进行研究,包括高斯、勒让德、威尔斯特拉斯、柳维尔等等。这个函数在现代数学分析中被深入研究,在概率论中也是无处不在,很多统计分布都和这个函数相关。Gamma 函数作为阶乘的推广,首先它也有和 Stirling 公式类似的一个结论
 \Gamma(x) \sim \sqrt{2\pi}e^{-x}x^{x-\frac{1}{2}}
另外, Gamma 函数不仅可以定义在实数集上,还可以延拓到整个复平面上。

gamma-complex复平面上的Gamma 函数

Gamma 函数有很多妙用,它不但使得 (1/2)! 的计算有意义,还能扩展很多其他的数学概念。比如导数,我们原来只能定义一阶、二阶等整数阶导数,有了Gamma 函数我们可以把函数导数的定义延拓到实数集,从而可以计算 1/2 阶导数,同样的积分作为导数的逆运算也可以有分数阶。我们先考虑一下 $x^n$ 的各阶导数

derivatives由于k阶导数可以用阶乘表达,于是我们用Gamma 函数表达为
 \frac{\Gamma{(n+1)}}{\Gamma{(n-k+1)}} x^{n-k}
于是基于上式,我们可以把导数的阶从整数延拓到实数集。例如,取$n=1, k=\frac{1}{2}$我们可以计算 $x$ 的 $\frac{1}{2}$阶导数为
 \frac{\Gamma{(1+1)}}{\Gamma{(1-1/2+1)}} x^{1-1/2} = \frac{2\sqrt{x}}{\sqrt{\pi}}
继续阅读

LDA-math-神奇的Gamma函数(1)

Deep Learning Specialization on Coursera

1. 神奇的Gamma函数
1.1 Gamma 函数诞生记
学高等数学的时候,我们都学习过如下一个长相有点奇特的Gamma函数
 \Gamma(x)=\int_0^{\infty}t^{x-1}e^{-t}dt
通过分部积分的方法,可以推导出这个函数有如下的递归性质
\Gamma(x+1) = x \Gamma(x)
于是很容易证明,$\Gamma(x)$ 函数可以当成是阶乘在实数集上的延拓,具有如下性质
\Gamma(n) = (n-1)!

学习了Gamma 函数之后,多年以来我一直有两个疑问:

  • 这个长得这么怪异的一个函数,数学家是如何找到的;
  • 为何定义 $\Gamma$ 函数的时候,不使得这个函数的定义满足$\Gamma(n) = n! $ 而是 $\Gamma(n) = (n-1)! $

最近翻了一些资料,发现有不少文献资料介绍 Gamma 函数发现的历史,要说清楚它需要一定的数学推导,这儿只是简要的说一些主线。

1728年,哥德巴赫在考虑数列插值的问题,通俗的说就是把数列的通项公式定义从整数集合延拓到实数集合,例如数列 $1,4,9,16,\cdots$ 可以用通项公式 $n^2$ 自然的表达,即便 $n$ 为实数的时候,这个通项公式也是良好定义的。直观的说也就是可以找到一条平滑的曲线$y=x^2$通过所有的整数点$(n,n^2)$,从而可以把定义在整数集上的公式延拓到实数集合。一天哥德巴赫开始处理阶乘序列 $1,2,6,24,120,720,\cdots$,我们可以计算 $2!,3!$, 是否可以计算 $2.5!$呢?我们把最初的一些 $(n,n!)$的点画在坐标轴上,确实可以看到,容易画出一条通过这些点的平滑曲线。


factorial
factorial-curve

但是哥德巴赫无法解决阶乘往实数集上延拓的这个问题,于是写信请教尼古拉斯.贝努利和他的弟弟丹尼尔.贝努利,由于欧拉当时和丹尼尔.贝努利在一块,他也因此得知了这个问题。而欧拉于1729 年完美的解决了这个问题,由此导致了$\Gamma$ 函数的诞生,当时欧拉只有22岁。
继续阅读

概率语言模型及其变形系列-PLSA及EM算法

Deep Learning Specialization on Coursera

本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA、LDA及LDA的变形模型及参数Inference方法。初步计划内容如下

第一篇:PLSA及EM算法

第二篇:LDA及Gibbs Samping

第三篇:LDA变形模型-Twitter LDA,TimeUserLDA,ATM,Labeled-LDA,MaxEnt-LDA等

第四篇:基于变形LDA的paper分类总结

第五篇:LDA Gibbs Sampling 的JAVA实现

第一篇 PLSA及EM算法

[Update 2012/12/21 为了解决部分朋友反映的网页图片无法显示的问题,更新PDF版本

下载地址 PLSA及EM算法-yangliuy]

前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法。接着我们分析如何运用EM算法估计一个简单的mixture unigram 语言模型和混合高斯模型GMM的参数,最后总结EM算法的一般形式及运用关键点。对于改进PLSA,引入hyperparameter的LDA模型及其Gibbs Sampling参数估计方法放在本系列后面的文章LDA及Gibbs Samping介绍。
继续阅读

概率语言模型及其变形系列-LDA及Gibbs Sampling

Deep Learning Specialization on Coursera

本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA、LDA及LDA的变形模型及参数Inference方法。初步计划内容如下

第一篇:PLSA及EM算法

第二篇:LDA及Gibbs Samping

第三篇:LDA变形模型-Twitter LDA,TimeUserLDA,ATM,Labeled-LDA,MaxEnt-LDA等

第四篇:基于变形LDA的paper分类总结

第五篇:LDA Gibbs Sampling 的JAVA实现

第二篇 LDA及Gibbs Sampling

[Update 2012/12/21 为了解决部分朋友反映的网页图片无法显示的问题,更新PDF版本

下载地址 LDA及Gibbs Sampling-yangliuy]

1 LDA概要

LDA是由Blei,Ng, Jordan 2002年发表于JMLR的概率语言模型,应用到文本建模范畴,就是对文本进行“隐性语义分析”(LSA),目的是要以无指导学习的方法从文本中发现隐含的语义维度-即“Topic”或者“Concept”。隐性语义分析的实质是要利用文本中词项(term)的共现特征来发现文本的Topic结构,这种方法不需要任何关于文本的背景知识。文本的隐性语义表示可以对“一词多义”和“一义多词”的语言现象进行建模,这使得搜索引擎系统得到的搜索结果与用户的query在语义层次上match,而不是仅仅只是在词汇层次上出现交集。
继续阅读