【Basis】狄利克雷分布

初次看狄利克雷分布,比较懵,主要是它有很多先行知识,所以我先介绍狄利克雷分布用到的多项式分布、gamma 函数、beta分布,然后再介绍狄利克雷分布。参考文献见文章末。

目录

一、多项式分布 multinomial distribution

1.1 假设 Assumption

1.2 推导 infer

二、伽马函数 Gamma Function

2.1 任务

2.2 证明过程

三、贝塔分布 Beta Distribution

3.1 beta公式推导

3.2 Beta和gamma function之间的关系

四、狄利克雷分布 Dirichlet Distribution 

4.1 假设 Assumption

4.2 推导 infer

 参考文献


一、多项式分布 multinomial distribution

1.1 假设 Assumption

假设随机变量x的状态(state)有K种,每种状态记作x_{k},比如当x_{k}处于第三种状态时,x_{3}=1,其余都等于0,即:x_{3}=\left \{ 0,0,1,0,0,0 \right \},即\sum _{k} x_{k} =1(1.1)。每种状态的概率是\mu _{k},则\sum _{k}\mu _{k}=1(1.2)。设\mu =\left \{ \mu _{1} ,\mu _{2} ,...,\mu _{K} \right \}_{k=1}^{K}

1.2 推导 infer

那么,在给定\mu的情况下,x的分布服从:

P(x|\mu)=\prod _{k=1}^{K}\mu _{k}^{x_{k}}(1.3)

这是一个随机变量,假设我们有数据集D,D中观测了N次随机变量x,那么

P\left ( D|\mu \right )=\prod _{n=1}^{N}\prod _{k=1}^{K} \mu _{k}^{x_{nk}}=\prod _{k=1}^{K} \mu _{k}^{\sum _{n}x_{nk}}(1.4)

 令m_{k} = \sum _{n}x_{nk}(1.5),我们可以m_{k}理解为N次观测(observation)中,x状态为k的数量!写出似然率p(D|\mu ),我们开始计算极大似然率,以求出唯一不知道的\mu。值得注意的是\mu本身具有约束条件5.2,所以带有约束条件的极大值问题,我们引入拉格朗日乘子\lambda(lagrange multiplier)。得到:

LL(\mu ) = argmax_{\mu }(ln(p(D|\mu ))+\lambda(\sum _{k}\mu _{k}-1)) \\ =argmax_{\mu }(\sum _{k}m_{k}*ln(\mu _{k})+\lambda(\sum _{k}\mu _{k}-1))(1.6)

 求极值的主要方法简单来说就是求导等于0。上式对\mu求偏导,得到:

\frac{\partial LL(\mu )}{\partial \mu } = \sum _{k}\frac{m_{k}}{\mu _{k}} +\sum _{k}\lambda = 0(1.7)

易得,\mu _{k} = -\frac{m_{k}}{\lambda }(1.8)。将该结果\mu的约束条件,得到\sum _{k} -\frac{m_{k}}{\lambda }=1-\frac{\sum_{n} \sum _{k}x_{nk}}{\lambda } =1。由于等式5.1,我们得到\lambda =-N(1.9)。最终:

\mu _{k}^{ML} = \frac{m_{k}}{N}(1.10)

我们可以理解为,每种状态的概率等于N次观测中出现的占比(大数定理简化)。将最终的多项式分布公式写出来:

Mult(m_{1},m_{2},...,m_{N}|\mu ,N) =(C_{m_{1}}^{N}\mu_{1} ^{m_{1}})*(C_{m_{2}}^{N-m_{1}}\mu _{2}^{m_{2}})*...*(C_{m_{N}}^{N-m_{1}-m_{2}-...-m_{N-1}}\mu_{N} ^{m_{N}})\\= \left ( _{m_{1},m_{2},...,m_{N}}^{N} \right )\prod _{k=1}^{K}\mu _{k}^{m_{k}}

其中\sum _{k}m_{k} =N,x的分布记作x\sim Mult(n,\mu )

二、伽马函数 Gamma Function

emmm,其实我也不知道伽马函数是干嘛的,但是狄利克雷分布中出现了,找PRML的书看了一下,长得奇奇怪怪的,但是貌似是两个性质比较重要,需要推导一下。先给出伽马公式:

\Gamma (u)=\int _{0}^{+\infty }x^{u-1}e^{-x}dx(2.1)

2.1 任务

利用分部积分法(integration by parts)证明出

\Gamma (u+1) =u \Gamma (u)

\Gamma (n+1) = n!(阶乘的推广)

\Gamma (1) =1

 ④\Gamma (\frac{1}{2})=\sqrt{\pi }

2.2 证明过程

①首先回忆一下分部积分法:

\int v(x)u'(x)dx = v(x)u(x)-\int u(x)v'(x)dx(2.2)

\Gamma (u+1) = \int _{0}^{+\infty }x^{u}e^{-x}dx,可以设v(x) = x^{u},u(x)=-e^{-x},则v'(x)=(u+1)x^{u}那么:

\Gamma (u+1)=\left [ -x^{u}e^{-x} \right ]_{0}^{+\infty }-\int _{0}^{+\infty }-(u)e^{-x}x^{u}dx=0+u\int _{0}^{+\infty }x^{u}e^{-x}dx=(u)\Gamma (u)(2.3)

\Gamma (n+1) = n\Gamma (n)=n(n-1)\Gamma (n-1)=n(n-1)(n-2)\Gamma (n-2)=...=n!(2.4)

\Gamma (1)=\int _{0}^{+\infty }x^{1-1}e^{x}dx=0(2.5)

\Gamma (\frac{1}{2})=\int _{0}^{+\infty }x^{-\frac{1}{2}}e^{-x}dx(2.6),怎么能跟\pi联系在一起呢?我们会想到高斯分布中有\pi,取\mu =0,\sigma =1,有f(x)=\frac{1}{\sqrt{2\pi }}e^{-\frac{x^{2}}{2}},且\int _{0}^{+\infty }f(x)=\frac{1}{2}。我们令x=\sqrt{2t},则

\frac{1}{2}=\int _{0}^{+\infty }\frac{1}{\sqrt{2\pi }}e^{-\frac{2t}{2}}d\sqrt{2t}(2.7),d\sqrt{2t}=(2t)^{-\frac{1}{2}}dt。所以:

\frac{1}{2}=\frac{1}{2\sqrt{\pi }}\int _{0}^{+\infty }t^{-\frac{1}{2}}e^{-t}dt=\frac{1}{2\sqrt{\pi }}\Gamma (\frac{1}{2})(2.8)

所以\Gamma (\frac{1}{2})=\sqrt{\pi },性质④得证。

三、贝塔分布 Beta Distribution

x为连续随机变量,取值范围(interval)\left [ 0,1 \right ],其概率密度函数(pdf)为:


p(x) = \left\{\begin{matrix} \frac{1}{B(\alpha ,\beta )}x^{\alpha -1}(1-x)^{\beta -1}&0\leqslant x\leqslant 1 \\ 0& otherwise \end{matrix}\right.(3.1)

其中s> 0,t> 0。而B(s,t)又被定义为

B(\alpha ,\beta )=\int _{0}^{1}x^{\alpha -1}(1-x)^{\beta -1}dx(3.2)

这个公式怎么来的呢?

3.1 beta公式推导

如果随机变量x服从(falls into)参数为n和p的分布,则有:

p(x)=\binom{n}{x}q^{x}(1-q)^{1-x}(3.3)

根据上面的式子,我们构造函数:

f(q) \propto q^{a}(1-q)^{b}(3.4)

为了让这个函数满足分布的基本性质,我们引入一个归一化因子(normalization coefficient)让它从0到1的积分为1。假设为k

那么就有:\int _{0}^{1}f(q)dq = \int _{0}^{1}kq^{a}(1-q)^{b}dq,得到k=\frac{1}{\int _{0}^{1}q^{a}(1-q)^{b}dq}(3.5)

\alpha = a+1,\beta =b+1B(\alpha ,\beta )=k^{-1}=\int _{0}^{1}q^{\alpha -1}(1-q)^{\beta -1}dq,公式(3.2)得证。

3.2 Beta和gamma function之间的关系

书中指出,B(s,t) = \frac{\Gamma (s)*\Gamma (t)}{\Gamma (s+t)}(3.6)。这是怎么来的呢?

首先,观察公式(3.3),我们知道x\sim Binomial(n,p),因为概率p不确定,其服从p\sim U(0,1),所以为了求x的分布,需要对p进行积分:

 p(x) = \int _{0}^{1}\binom{n}{x}q^{x}(1-q)^{1-x}dq(3.7)

那p(x)等于多少呢?我们引用一个例子,假设我们在一个[0,1]的区间内放一个点,然后在这个点的两边随机取n个点,左边的点数记为x。那么这个案例是符合上式的,我们把这个案例反过来。假设我们先放了n+1个点,那么选择每一个点的概率为\frac{1}{n+1}。所以我们可以得到p(x)=\frac{1}{n+1}(3.8)。

所以有p(x) = \int _{0}^{1}\binom{n}{x}q^{x}(1-q)^{1-x}dq= \binom{n}{x}\int _{0}^{1}q^{x}(1-q)^{1-x}dq=\frac{1}{n+1}

那么\int _{0}^{1}q^{x}(1-q)^{1-x}dq=\frac{(n-x)!x!}{(n+1)!}(3.9)

x=\alpha -1,n-x = \beta -1,则n+1 = \alpha +\beta -1。有

B(\alpha ,\beta )=\frac{(\alpha -1)!(\beta -1)!)}{(\alpha +\beta -1)!}(3.10)

回顾第二部分gamma function第二条性质,\Gamma (n+1) = n!,所以

B(\alpha ,\beta )=\frac{\Gamma (\alpha )\Gamma (\beta )}{\Gamma (\alpha +\beta )}(3.11)

四、狄利克雷分布 Dirichlet Distribution 

首先我们要先了解一下另一个名词,共轭分布 conjugate distribution。在贝叶斯概率理论中,如果后验概率和先验概率满足同一种类型的分布,那么,先验分布和后验分布被叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。

Beta分布是二项式分布的共轭先验分布,而狄利克雷(Dirichlet)分布是多项式分布的共轭分布。

有了之前的铺垫,狄利克雷分布就可以理解为多维beta分布。

4.1 假设 Assumption

假设随机变量x的状态有K种,每种状态记作x_{k},比如当x_{k}处于第三种状态时,x_{3}=1,其余都等于0,即:x_{3}=\left \{ 0,0,1,0,0,0 \right \},即\sum _{k} x_{k} =1(4.1)。每种状态的概率是\mu _{k},则\sum _{k}\mu _{k}=1(4.2)。设\mu =\left \{ \mu _{1} ,\mu _{2} ,...,\mu _{K} \right \}_{k=1}^{K}。 令m_{k} = \sum _{n}x_{nk}(4.3),我们可以把m_{k}理解为N次观测中,x状态为k的数量。

4.2 推导 infer

\alpha_{k}=m_{k}-1,有\alpha =\left \{ \alpha _{1} ,\alpha _{2} ,...,\alpha _{K} \right \}_{k=1}^{K}。则

B(\alpha )=\frac{\prod _{k=1}^{K}\Gamma (\alpha _{i})}{\Gamma (\sum _{k=1}^{K}\alpha _{i})} ,则Dir(\mu _{k}|\alpha )=\frac{1}{B(\alpha )}\prod _{k=1}^{K}\mu _{k}^{\alpha _{k}-1}。结合公式1.4,那么最终的后验分布p(\mu |D,\alpha )\propto p(D|\mu )p(\mu |\alpha )\propto \prod _{k=1}^{K}\mu _{k}^{\alpha _{k}+m_{k}-1}(4.4),依旧服从狄利克雷分布(共轭)。

最终后验分布为

p(\mu |D,\alpha )=\frac{\Gamma (\alpha _{0}+N)}{\prod _{k=1}^{K}\Gamma (\alpha _{k}+m_{k})}\prod _{k=1}^{K}\mu _{k}^{\alpha _{k}+m_{k}-1}(4.5)

 参考文献

[1]David Bellot. Learning Probabilistic Graphical Models in R. Packt Publishing, 2016

[2] Christopher M. Bishop. Pattern Recognition and Machine Learning.Springer Science+Business Media, LLC,2006

参考博客:(13条消息) 求n的阶乘的算法框图_你不知道的阶乘与gamma函数_weixin_39684967的博客-CSDN博客https://blog.csdn.net/weixin_39684967/article/details/109980912?utm_source=app&app_version=4.19.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

浅谈狄利克雷分布——Dirichlet Distribution_止于至玄-CSDN博客_狄利克雷分布https://blog.csdn.net/philthinker/article/details/111999552【统计学进阶知识(一)】深入理解Beta分布:从定义到公式推导 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/69606875

  • 12
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
狄克分布是一种概率分布,常用于多元变量和概率向量的建模。对于一个具有K个维度的随机向量,狄利克分布的参数是一个长度为K的向量α=[α1, α2, ..., αK],其中每个αi>0。狄利克分布的概率密度函数定义如下: f(x|α) = (1/B(α)) * ∏(x^αi-1) (0<=xi<=1, ∑xi=1) 其中,B(α)是多元贝塔函数,∏表示对于所有i的连乘。狄利克分布的随机变量服从于一个概率向量,在每个维度上的取值范围是0到1之间,并且各维度的取值之和为1。 在Matlab中没有现成的工具函数可以直接使用狄利克分布。但是你可以根据引用提供的代码来实现一个狄利克分布的随机数生成函数drchrnd(a,n),其中a是参数向量,n是生成样本的数量。这个函数利用了gamma分布狄利克分布之间的关系,通过生成多个gamma随机变量,并按一定的规则进行归一化,实现了狄利克分布的随机数生成。 需要注意的是,生成的随机数是符合狄利克分布的概率向量,每个维度的取值范围是0到1之间,并且各维度的取值之和为1。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [狄利克分布的matlab代码实现和R语言函数调用](https://blog.csdn.net/sacainiao/article/details/54866385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值