您的位置:首页 > 其它

LDA 主题模型的几种概率分布

2015-09-11 13:15 363 查看
学习机器学习模型的时候才发现概率知识缺很多啊啊啊……,还好重新捡起来比学习新东西还是简单很多

把LDA里面的几个基础概率分布简单总结一下。

概率密度函数和概率分布函数

概率密度函数和概率分布函数分别是什么,区别是什么,你还记得吗?嗯,先试着回想一下。以前看到总觉得很简单,就在眼前一闪而过,真正用到的时候就用的很不顺手啊。

概率密度函数

PDF – Probability Density Function

机器学习里面的朴素贝叶斯、EM算法、混合高斯模型、sampling 等都要用到这个东东。

它表述的意义是在某个确定的点(附近)事件发生的可能性。

对离散型随机变量:

fX(x)=p(X=x)f_X(x)=p(X=x)

对连续型随机变量,存在fX(x)f_X(x), 满足

1. fX(x)>0f_X(x)>0

2. ∫+∞−∞fX(x)=1\int_{-\infty}^{+\infty}f_X(x)=1

3. p(a<X<b)=∫bafX(x)p(a

分布函数

CDF – Cumulative Distribution Function

表示随机变量小于等于某一取值 xx 的概率。

FX(x)=p(X≤x)F_X(x)=p(X \leq x)

对连续型随机变量

FX(x)=∫x−∞fX(x)F_X(x) = \int_{-\infty}^{x}f_X(x)

伯努利分布

X∼Bernoulli(p)X\sim Bernoulli(p)

这个应该是我们学的最简单的分布函数

就是对单次抛硬币进行建模

f(x)=px(1−p)1−x x={0,1}f(x)=p^x(1-p)^{1-x}\ x=\{0,1\}

直观点就是:

f(x)={px=11−px=0f\left( x \right) = \left\{ \begin{array}{l}
\begin{array}{*{20}{c}}
p&{x = 1}
\end{array}\\
\begin{array}{*{20}{c}}
{1 - p}&{x = 0}
\end{array}
\end{array} \right.

二项式分布

X∼Binomial(p,n)X\sim Binomial(p,n)

二项分布就是重复nn 次的伯努利实验模型。nn 次实验中,一种情况出现kk 次, 另一种情况出现 n−kn-k 次,这样的实验结果出现的概率是多少。

f(k)=P(X=k|p,n)=Cknpk(1−p)(n−k)=n!k!(n−k)!pk(1−p)(n−k)f(k)=P(X=k|p, n)=C_n^kp^k(1-p)^{(n-k)}\\
=\frac{n!}{k!(n-k)!}p^k(1-p)^{(n-k)}

多项式分布

X∼Multinormal(p⃗ ,n)X\sim Multinormal(\vec{p},n)

抛硬币只有两种情况发生,如果一件事可能出此案多种结果,比如说掷筛子,那么可以用多项式分布进行建模

设p⃗ =(p1,p2,......,pk)\vec{p}=(p_1, p_2, ...... , p_k), pip_i 是第ii 种情况发生的概率

f(x)=P(x1......xk|p⃗ ,n)=(nx1...xk)px11...pxkk=n!∏ki=1xi!∏i=1kpxiif(x)=P(x_1...... x_k|\vec{p},n)\\
=(^n_{x_1...x_k })p_1^{x_1}...p_k^{x_k}\\
=\frac{n!}{\prod_{i=1}^kx_i!} \prod_{i=1}^kp_i^{x_i}

beta分布

X∼Beta(α,β)X\sim Beta(\alpha, \beta)

给定参数 α>0\alpha>0、β>0\beta>0,随机变量 x∈[0,1]x\in [0,1] 的概率密度函数为:

f(x|α,β)=1B(α,β)xα−1(1−x)β−1f(x|\alpha, \beta)=\frac{1}{B(\alpha, \beta)}x^{\alpha-1}(1-x)^{\beta-1}

这里的 B(α,β)B(\alpha, \beta) 可以用gamma函数Γ(x)\Gamma(x)来表示:

B(α,β)=Γ(α)Γ(β)Γ(α+β)B(\alpha, \beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)}

当变量是离散的时:

Γ(n)=(n−1)!B(α,β)=(α−1)!(β−1)!(α+β−2)!\Gamma(n)=(n-1)!\\
B(\alpha, \beta)=\frac{(\alpha-1)!(\beta-1)!}{(\alpha+\beta-2)!}

此时再回头看一下Beta分布的表达式,是不是就是二项分布啊?确实他们属于同一分布簇,当α\alpha,β\beta 是连续变量时就是二项分布在实数域的推广啦

当变量是连续的时:

Γ(x)=∫∞0tx−1e−tdtB(α,β)=∫10tα−1(1−t)β−1dt\Gamma(x)=\int_0^\infty t^{x-1}e^{-t}dt\\
B(\alpha, \beta)=\int_0^1t^{\alpha-1}(1-t)^{\beta-1}dt

二项分布和Beta分布的关系探讨

对二项分布我们一般是已知事件发生的概率 θ\theta (为了避免符号冲突,这里用θ\theta 表示)然后求采样实验发生的概率,但是如果θ\theta是未知的,已知事件 XX 的发生的情况下(假设事件 XX 是掷硬币5次有3次正面朝上),估计θ\theta 的值。有两种求解方法:

简单粗暴地完全根据θ\theta来估计 max θ3(1−θ)2max\ \theta ^3(1-\theta)^2 求得θ=0.6\theta = 0.6 但是这种估计在采样不足或者小概率事件发生的情况下,结果会和真实情况相差很大。

如果知道了 θ\theta 的先验概率p(θ)p(\theta), 正如我们一般都知道硬币正面朝上的概率就是0.5,那么就可以用贝叶斯公式 p(θ|X)=p(X|θ)p(θ)p(X)p(\theta|X)=\frac{p(X|\theta)p(\theta)}{p(X)}这样就可以根据先验概率观察结果得到更加可靠的参数估计。(想一下p(X)p(X)应该怎么求)。

在前面的概率分布函数中可以看到二项分布要求 p∈[0,1]p\in [0,1] ,Beta分布也要求x∈[0,1]x\in [0,1]

假设已知某二项分布的参数 θ∼Beta(α,β)\theta\sim Beta(\alpha, \beta) ,即先验概率p(θ)p(\theta)为

p(θ)=p(θ|α,β)=1B(α,β)θα−1(1−θ)β−1p(\theta)=p(\theta|\alpha, \beta)=\frac{1}{B(\alpha, \beta)} \theta ^{\alpha-1}(1-\theta)^{\beta-1}

那么似然概率 P(X|θ)P(X|\theta)

P(X|θ)=P(X=k|θ,n)=n!k!(n−k)!θk(1−θ)(n−k)P(X|\theta)=P(X=k|\theta, n)=\frac{n!}{k!(n-k)!}\theta^k(1-\theta)^{(n-k)}

可以轻松的求得边缘概率p(X){p(X)}(marginal probability,也是贝叶斯公式的Normalizer)

p(X)=∫10p(X|θ)p(θ)dθp(X)=\int_0^1p(X|\theta)p(\theta)d\theta

那么求θ\theta的后验概率了(θ|X)(\theta|X)也就很容易了

p(θ|X)=似然概率∗先验概率边缘概率p(\theta|X)=\frac{似然概率*先验概率}{边缘概率}

P(θ|X)==1B(α+k,β+n−k)θα+k−1(1−θ)β+n+k−1P(\theta|X)==\frac{1}{B(\alpha+k, \beta+n-k)} \theta ^{\alpha+k-1}(1-\theta)^{\beta+n+k-1}

这里还有个知识点共轭先验 Conjugate Prior,在进行贝叶斯公式的计算时,为了使计算后验概率更加方便,一般倾向于选择共轭先验

如果随机变量θ\theta的先验概率p(θ)p(\theta)和后验概率(θ|X)(\theta|X)属于同一个分布簇,那么则称先验概率p(θ)p(\theta)是似然概率 $P(X|\theta)的共轭先验。一定要看清*和*共轭,*是*的共轭先验,嗯,对,后面还会用到的。

Dirichlet 分布

X∼Dirichlet(n⃗ )X\sim Dirichlet(\vec{n})

Dirichlet 分布和多项式分布的形式特别想,而且Dirichlet 分布和和多项式分布的关系,就如同二项分布和Beta分布的关系。

可以这样假设设n⃗ =(n1,n2,......,nk)\vec{n}=(n_1, n_2, ...... , n_k), nin_i 是第ii 种情况发生的次数,x⃗ =(x1,x2,......,xk)\vec{x}=(x_1, x_2, ...... , x_k), xix_i 是第ii 种情况发生的概率。

f(x⃗ )=p(x1,x2,......,xk|n1,n2,......,nk)=1B(n⃗ )∏xni−1if(\vec{x}) = p(x_1, x_2, ...... , x_k|n_1, n_2, ...... , n_k)=\frac{1}{B(\vec n)}\prod{x_i^{n_i-1}}

其中

B(n⃗ )=Γ(n1)Γ(n2)...Γ(nk)Γ(n1+n2+...+nk)=∏Γ(ni)Γ(∑ni)B(\vec{n})=\frac{\Gamma(n_1)\Gamma(n_2)...\Gamma(n_k)}{\Gamma(n_1+n_2+...+n_k)}=\frac{\prod{\Gamma(n_i)}}{\Gamma(\sum{n_i})}

∑xi=1\sum{x_i}=1

多项式分布和Dirichlet 分布的关系探讨

用二项式和Beta分布的关系来类比Dirichlet 分布和多项式分布的关系。

再来看共轭,参数θ⃗ 服从\vec{\theta}服从Dirichlet 分布θ⃗ ∼Dirichlet(n⃗ )\vec{\theta}\sim Dirichlet(\vec{n}), 它是多项式分布X∼Multinormal(θ⃗ ,n)X\sim Multinormal(\vec{\theta},n)的共轭先验.

先验分布:

p(θ1,θ2,...,θk)=p(θ1,θ2,......,θk|n1,n2,......,nk)=1B(n⃗ )∏i=1kθni−1ip(\theta_1, \theta_2, ..., \theta_k) = p(\theta_1, \theta_2, ...... , \theta_k|n_1, n_2, ...... , n_k)\\
=\frac{1}{B(\vec n)}\prod_{i=1}^k{\theta_i^{n_i-1}}

似然概率:

p(x1,x2...xk|θ1,θ2,...,θk)=p(x1......xk|θ⃗ ,n)=(nx1...xk)θx11...θxkk=n!∏ki=1xi!∏i=1kθxiip(x_1,x_2...x_k|\theta_1, \theta_2, ..., \theta_k)=p(x_1...... x_k|\vec{\theta},n)\\
=(^n_{x_1...x_k })\theta_1^{x_1}...\theta_k^{x_k}\\
=\frac{n!}{\prod_{i=1}^kx_i!} \prod_{i=1}^k\theta_i^{x_i}

可以得到后验概率:

p(θ1,θ2,...,θk|x1,x2...xk)=1Z∏i=1kθxi+ni−1ip(\theta_1, \theta_2, ..., \theta_k|x_1,x_2...x_k)=\frac{1}{Z} \prod_{i=1}^k\theta_i^{x_i+n_i-1}

可以看到先验概率和后验概率的分布形式都是Dirichlet 分布
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: