从 Beta-Binomial 共轭到 Dirichlet-Multinomial 共轭
共轭分布/共轭先验(conjugate prior):如果先验分布(p(θ) p(\theta))和似然函数(p(Xθ) p(X\theta))使得先验分布(p(θ) p(\theta))和后验分布(p(θ|X) p(\theta|X))具有相同的形式(Beta(a,b)+B(n,k)=Beta(a+k,b+n−k) Beta(a,b)+B(n,k)=Beta(a+k,b+n-k)),就称先验分布与似然函数是共轭的(Beta分布与二项分布是共轭的)。
我们首先来看 Beta-Binomial 共轭的形式:
Beta(p|\alpha, \beta)+BinomCount(m_1,m_2)=Beta(p|\alpha+m_1,\beta+m_2)
对应于先前的小游戏即为:
Beta(p|k,n-k+1)+BinomCount(m_1,m_2)=Beta(p|k+m_1,n-k+1+m_2)
我们还是首先回顾之前的两次游戏:
从服从0-1均匀分布的随机数生成器,得到10个数,问第7大的数字为?
我们最终得到的概率分布为:
f(x)=n!(k−1)!(n−k)! x k−1 (1−x) n−kf(x)=\frac{n!}{(k-1)!(n-k)!}x^{k-1}(1-x)^{n-k}
使用Beta分布进行建模的话(中间涉及神奇的Gamma分布话离散为连续):Beta(p|α=k,β=n−k+1)=Γ(n+1)Γ(k)Γ(n−k+1)! x k−1 (1−x) n−kBeta(p|\alpha=k,\beta=n-k+1)=\frac{\Gamma(n+1)}{\Gamma(k)\Gamma(n-k+1)!}x^{k-1}(1-x)^{n-k}
则概率分布为:f(x)=10!6!3! x 6 (1−x) 3f(x)=\frac{10!}{6!3!}x^6(1-x)^3
我们根据该概率分布的峰值取猜测才最有把握;再提供5个数,告知2个数比第七大的数大,3个数比其小,为该第七大的数为多少?
根据beta分布与二项分布成共轭分布可知:
Beta(p|k,n−k+1)+BinomCount(m 1 ,m 2 )=Beta(p|k+m 1 ,n−k+1+m 2 )Beta(p|k,n-k+1)+BinomCount(m_1,m_2)=Beta(p|k+m_1,n-k+1+m_2)
则概率分布为:f(x)=Beta(x|9,7)=15!8!6! x 8 (1−x) 6f(x)=Beta(x|9,7)=\frac{15!}{8!6!}x^8(1-x)^6
问题继续升级,此时加大难度,问题升级为:按20下按钮,生成20个随机数,要求你同时猜测第7大和第13大的数?
此时的顺序统计量为:X (1) ,X (2) ,⋯,X (n) X_{(1)},X_{(2)},\cdots,X_{(n)},题目是问(X (k 1 ) ,X (k 1 +k 2 ) X_{(k_1)},X_{(k_1+k_2)})的联合分布(答题的关键在于找到问题对应的数学模型或者往小了说,就是数学基本概念,比如这里的联合分布)?
。。。
我们得到(X (k 1 ) ,X (k 1 +k 2 ) ) (X_{(k_1)},X_{(k_1+k_2)})的联合分布是:f(x 1 ,x 2 ,x 3 )== n!(k 1 −1)!(k 2 −1)!(n−k 1 −k 2 )! x k 1 −1 1 x k 2 −1 2 x n−k 1 −k 2 3 Γ(n+1)Γ(k 1 )Γ(k 2 )Γ(n−k 1 −k 2 +1) x k 1 −1 1 x k 2 −1 2 x n−k 1 −k 2 3\begin{split} f(x_1,x_2,x_3)=&\frac{n!}{(k_1-1)!(k_2-1)!(n-k_1-k_2)!}x_1^{k_1-1}x_2^{k_2-1}x_3^{n-k_1-k_2}\\ =&\frac{\Gamma(n+1)}{\Gamma(k_1)\Gamma(k_2)\Gamma(n-k_1-k_2+1)}x_1^{k_1-1}x_2^{k_2-1}x_3^{n-k_1-k_2} \end{split}
上面这一分布其实就是三维形式的Dirichlet分布,Dir(x 1 ,x 2 ,x 3 |k 1 ,k 2 ,n−k 1 −k 2 +1) Dir(x_1,x_2,x_3|k_1,k_2,n-k_1-k_2+1),简单起见,令 α 1 =k 1 ,α 2 =k 2 ,α 3 =n−k 1 −k 2 +1 \alpha_1=k_1,\alpha_2=k_2,\alpha_3=n-k_1-k_2+1,于是分布密度可以写为:f(x 1 ,x 2 ,x 3 |α 1 ,α 2 ,α 3 )=Γ(α 1 +α 2 +α 3 )Γ(α 1 )Γ(α 2 )Γ(α 3 ) x α 1 −1 1 x α 2 −1 2 x α 3 −1 3f(x_1,x_2,x_3|\alpha_1,\alpha_2,\alpha_3)=\frac{\Gamma(\alpha_1+\alpha_2+\alpha_3)}{\Gamma(\alpha_1)\Gamma(\alpha_2)\Gamma(\alpha_3)}x_1^{\alpha_1-1}x_2^{\alpha_2-1}x_3^{\alpha_3-1}
这就是一般形式的3维的Dirichlet分布,从形式上我们也可看出,Dirichlet分布也是Beta分布在高维度上的推广。
Beta-Binomial共轭:
Beta(p|\alpha,\beta)+BinomCount(m_1,m_2)=Beta(p|\alpha+m_1,\beta+m_2)
同理我们可得:
Dir(\vec p|\vec \alpha)+MultCount(\vec m)=Dir(\vec p|\vec \alpha+\vec m)
这正是大名鼎鼎的 Dirichlet-MultiNomial共轭 。类似于Beta 分布,我们也可对 Dir(p ⃗ |α ⃗ ) Dir(\vec p|\vec \alpha)作如下分解,
Dir(\vec p|\vec 1)+MultCount(\vec m-\vec 1)=Dir(p|\vec m)
对于该游戏,我们还可往更高维度上继续推导,譬如猜测: X (1) ,X (2) ,…,X (n) X_{(1)},X_{(2)},\ldots,X_{(n)}中的 4,5… 4,5\ldots等更多数,于是得到更高维度的Dirichlet 分布和Dirichlet Multinomial 共轭,也即一般形式的Dirichlet 分布定义如下:
Dir(\vec p|\vec \alpha)=\frac{\Gamma(\sum_{k=1}^K\alpha_k)}{\prod_{k=1}^K\Gamma(\alpha_k)}\prod_{k=1}^Kp_k^{\alpha_k-1}
对于给定的 p ⃗ \vec p和 N N,多项式分布为:
Mult(N,\vec p)=\binom{N}{\vec n}\prod_{k=1}^Kp_k^{n_k}
Beta和Dirchlet分布的数学期望
如果 p∼Beta(t|α,β) p\sim Beta(t|\alpha,\beta),则:
\begin{split} E(p)=&\int_0^{1}t\times Beta(t|\alpha,\beta)dt\\ =&\int_0^1t\times \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}t^{\alpha-1}(1-t)^{\beta-1}dt\\ =&\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}\int_0^1t^\alpha(1-t)^{\beta-1}dt \end{split}
又对 Beta(t|α+1,β) Beta(t|\alpha+1,\beta)而言:
\int_0^1Beta(t|\alpha+1,\beta)=\int_0^1\frac{\Gamma(\alpha+\beta+1)}{\Gamma(\alpha+1)\Gamma(\beta)}t^\alpha(1-t)^\beta dt=1\\ \Downarrow\\ \int_0^1t^\alpha(1-t)^{\beta-1}dt=\frac{\Gamma(\alpha+1)\Gamma(\beta)}{\Gamma(\alpha+1+\beta)}
所以:
E(p)=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}\frac{\Gamma(\alpha+1)\Gamma(\beta)}{\Gamma(\alpha+\beta+1)}=\frac{\alpha}{\alpha+\beta}
对于Beta分布的随机变量,其均值可以用 αα+β \frac{\alpha}{\alpha+\beta}来估计。Dirchlet 也有类似的结论,如果 p ⃗ ∼Dir(t ⃗ |α ⃗ ) \vec p\sim Dir(\vec t|\vec \alpha) ,同样可以证明:
E(\vec p)=(\frac{\alpha_1}{\sum_{k=1}^K\alpha_k},\frac{\alpha_2}{\sum_{k=1}^K\alpha_k},\ldots,\frac{\alpha_K}{\sum_{k=1}^K\alpha_k})
该两种分布的数学期望是很重要的结论,会在以后的LDA的数学推导中使用这个结论。
从 Beta-Binomial 共轭到 Dirichlet-Multinomial 共轭相关推荐
- 基于狄利克雷-多项式分布做文档聚类代码(dirichlet multinomial mixture model)
论文来源 Yin J, Wang J. A dirichlet multinomial mixture model-based approach for short text clustering[C ...
- 【数字信号处理】傅里叶变换性质 ( 共轭对称序列性质 | 共轭反对称序列性质 | 模偶对称 | 相角奇对称 )
文章目录 一.共轭对称序列性质 二.共轭反对称序列性质 三.模偶对称 四.相角奇对称 一.共轭对称序列性质 共轭对称序列 , x(n)=x∗(−n)x(n) = x^*(-n)x(n)=x∗(−n) ...
- matlab中转置和裁剪,对Matlab中共轭、转置和共轭装置的区别说明
共轭 转置 共轭转置 The symbols (·)T , (·)∗, and (·)H are,respectively, the transpose, complex conjugate and ...
- Dirichlet Multinomial Mixture Model做短文本聚类
本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 论文来源 Yin J, Wang J. A dirich ...
- 共轭对称序列和共轭反对称序列
共轭是针对复数而言的,如果两个复数的实部相等,其虚部为相反数,那么这两个复数就是共轭的.在公式上表示时,共轭使用 * 来表示,如 如果满足条件如下: 则称为共轭对称序列,记 ...
- Dirichlet Multinomial Mixtures (DMM)的R实现
Dirichlet Multinomial Mixtures Community typing with Dirichlet Multinomial Mixtures Dirichlet Multin ...
- MATLAB中的共轭转置与非共轭转置
对已知矩阵A,MATLAB为我们提供了两种转置运算. A.' 非共轭转置 A' 共轭转置 单纯地共轭用:conj() 非共轭可以用:transpose() example: a = 12.0000 ...
- 共轭反对称分量 matlab,共轭对称分量共轭反对称分量-Read.PPT
共轭对称分量共轭反对称分量-Read * 序列傅里叶变换 第五讲 变换域分析 时域分析方法 变换域分析方法: 连续时间信号与系统 Laplace变换 Fourier变换 离散时间信号与系统 z变换 F ...
- 【数字信号处理】傅里叶变换性质 ( 频域函数的共轭对称分解 | 序列的傅里叶变换 | 傅里叶变换的共轭对称 | 傅里叶变换的共轭反对称 )
文章目录 一.频域函数 ( 傅里叶变换 ) 的共轭对称分解 二.序列对称分解定理 三.傅里叶变换的共轭对称与共轭反对称 x(n)x(n)x(n) 的 傅里叶变换 是 X(ejω)X(e^{j \ome ...
- 共轭转置matlab,何为共轭转置?
mento时尚男装 简约大方 时尚休闲 在MATLAB中看到这样的操作符,或许大家并不陌生. 对已知矩阵A,MATLAB为我们提供了两种转置运算. A.' 非共轭转置 A' 共轭转置 那 ...
最新文章
- python—函数进阶-迭代器
- div 中的控件底部对齐_如何将div的内容与底部对齐?
- 22504!Windows 11 新预览版发布
- PPP 守护进程 RCE 漏洞已存在17年,可控制几乎所有的 Linux 系统
- 榛子云短信-微信小程序60秒倒计时插件
- linux服务器下安装phpstudy 如何命令行进入mysql
- C++简介(5)STL
- linux 安装多版本jdk
- iOS基础 关于UIKit框架
- 后台集成解决方案 avue
- html5 舰c 手机,我国最新款导弹驱逐舰052D,主力战舰的不二之选,中国厉害了!...
- zookeeper 数据节点的增删改查
- 关于错排公式的推导与应用
- 夸克网盘提取cookie
- ffmpeg mplayer x264 代码重点详解 详细分析
- bat文件调用CMD命令快速显示ip
- OpenCV学习笔记02--图像像素处理--二值图像、灰度图像、彩色图像像素的处理、numpy.array中的对应的函数
- 放大器的传递函数_在光电流应用中补偿电流反馈放大器
- UE4自定义点击区域的Button
- idea更换git账号