【Basis】狄利克雷分布

2023-11-17

初次看狄利克雷分布,比较懵,主要是它有很多先行知识,所以我先介绍狄利克雷分布用到的多项式分布、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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Basis】狄利克雷分布 的相关文章

  • 常用DOC命令

    copy con 123 bat 创建批处理 color 改变cmd颜色 ping t l 65550 ip 死亡之ping ipconfig 查看ip ipconfig release 释放ip ipconfig renew 重获ip s
  • arm下蜂鸣器测试代码

    首先还是看内核蜂鸣器的实现 如下图 这个和led一样 都是比较简单的字符驱动 代码如下 include
  • JS 触发事件整理

    一般事件 onclick IE3 N2鼠标点击时触发此事件 ondblclick IE4 N4鼠标双击时触发此事件 onmousedown IE4 N4按下鼠标时触发此事件 onmouseup IE4 N4鼠标按下后松开鼠标时触发此事件 o
  • Android 最简单的应用间跳转小结

    不明所以的图示 通过 JumpOrigin 可以打开 JumpMe 以下简结了4种方式 1 通过查找包名直接启动 APP 这种方法最直接 通过解析包名 判断该应用是否安装 如果安装了就可以直接启动 也能够传递参数 代码如下 傻瓜式打开应用

随机推荐

  • 数据质量评价体系参考

    数据质量人人有责 这不仅仅只是一句口号 更是数据工作者的生命线 数据质量的好坏直接决定着数据价值高低 数据质量管理是指在数据创建 加工 使用和迁移等过程中 通过开展数据质量定义 过程控制 监测 问题分析和整改 评估与考核等一系列管理活动 提
  • MySQL--慢查询

    MySQL的慢查询日志是MySQL提供的一种日志记录 它用来记录在MySQL中响应时间超过阀值的语句 具体指运行时间超过long query time值的SQL 则会被记录到慢查询日志中 具体指运行时间超过long query time值的
  • 第8章 动态注入技术

    转自 http www epubit com cn book onlinechapter 33620 Android安全技术揭秘与防范 我们在讨论动态注入技术的时候 APIHook的技术由来已久 在操作系统未能提供所需功能的情况下 利用AP
  • 使用AVPlayer播放视频

    iOS里面视频播放用到的是AVPlayer 包含在AVFoundation框架内 与AVAudioplayer有点类似 但是AVPlayer得功能跟加强大 他可以用来播放音频也可以用来播放视频 而且在播放音频方面能直接播放网络音频 要使用A
  • 每天一道leetcode141-环形链表

    考试结束 班级平均分只拿到了年级第二 班主任于是问道 大家都知道世界第一高峰珠穆朗玛峰 有人知道世界第二高峰是什么吗 正当班主任要继续发话 只听到角落默默想起来一个声音 乔戈里峰 前言 2018 11 8号打卡明天的题目 https lee
  • py去除文件空行

    去除d0 txt中空行并保存在d1 txt 如果要删除带有空格的空行 可以考虑把判断条件换成正则 with open d0 txt r encoding utf 8 as f open d1 txt w encoding utf 8 as
  • cloudstack api调度流程

    cloudstackapi调度流程 我们发往cloudstack的api命令由management端的ApiServlet的processRequest req resp 进性处理 该函数开启一个线程进行处理 对于login和logout命
  • Qt将程序打包成.exe文件,并添加图标

    1 在工程中添加一个Qt Resource File 文件名任意 2 将 ico后缀的图片放到跟工程文件 pro 文件同目录下 并在Qt Resource File文件中添加该 ico文件 3 添加相关代码 设置窗口图标 4 双击打开 pr
  • CMake入门教程:使用target_include_directories指定头文件目录

    CMake入门教程 使用target include directories指定头文件目录 在进行软件开发时 我们经常需要引用一些外部库或模块的头文件以便使用其功能 CMake是一个强大的跨平台构建工具 能够帮助我们管理项目并生成相应的构建
  • WSL2 局域网访问以及hosts注意事项

    说明 WSL2用的是NAT方式 虚拟机有内部的ip 所以访问虚拟机可用代理访问方法 要点 根据微软文档 powershell 下做端口转发代理 netsh interface portproxy add v4tov4 listenport
  • 双引号后面要加句号吗_小学二年级老师容易疏忽的一个知识点:冒号和双引号...

    标点符号是特殊的文字 使用得当 会为文章增色不少 同时也是考试丢分的一个知识点 应引起师生重视 到了小学二年级 必须学会使用冒号和双引号 冒号 是常用的标点符号之一 通常表示提示语后的停顿或表示提示下文或总结上文 它用在提示语的后面 如果老
  • 用Python写一个比大小的小游戏(代码解释)

    代码解释 游戏 猜数字 玩法 程序会随机生成一个1 30的数字 玩家有无限次 机会去猜这个数字程序会告诉你是大了还是小了 在最后猜中的时候程序会告诉你猜中了 并且告诉你结束游戏以及猜中该数字所花费的次数 代码 Python import r
  • PyTorch的官方bug:torch.optim.lr_scheduler.CosineAnnealingWarmRestarts

    torch optim lr scheduler CosineAnnealingWarmRestarts 低版本 如torch1 7 1 指定last epoch参数时报错 已有人反馈指出 升级torch1 11 0可以解决该问题 升级之后
  • Python数据可视化——图型参数介绍

    前言 利用Python 绘制常见的统计图形 例如条形 图 饼图 直方图 折线图 散点图等 通过这些常用图形的展现 将 复杂的数据简单化 这些图形的绘制可以通过matplotlib 模块 pandas 模 块或者 seaborn 模块实现 饼
  • java 垃圾回收 sys_深入理解Java虚拟机学习笔记2.1-G1垃圾回收

    G1 GC是Jdk7的新特性之一 Jdk7 版本都可以自主配置G1作为JVM GC选项 作为JVM GC算法的一次重大升级 DK7u后G1已相对稳定 且未来计划替代CMS 所以有必要深入了解下 不同于其他的分代回收算法 G1将堆空间划分成了
  • springmvc中的resolveView(视图解析器)

    视图解析器接口只有一个方法 就是根据名称解析出视图信息 一个视图对象View 采用的是模板模式 抽象模板类 AbstractCachingViewResolver 主要处理缓存 如果视图对象在缓存中有 则从缓存中取 如果没有则创建 publ
  • 整理最全的图床集合——三千图床

    2021 09 25 更新 去除部分图床 添加新的图床 优化排版 引言 古有弱水三千 今有三千图床 勿埋我心 图床一般是指储存图片的服务器 有国内和国外之分 国外的图床由于有空间距离等因素决定访问速度很慢影响图片显示速度 国内也分为单线空间
  • remote: HTTP Basic: Access deniedfatal: Authentication failed for ‘xxxxx‘的问题解决

    在没有修改git密码的情况下 使用vs code推送代码 总是会报错 remote HTTP Basic Access denied fatal Authentication failed for xxxxxxxx git仓库地址 网上试了
  • YOLOV7开源代码讲解--训练参数解释

    目录 训练参数说明 weights cfg data hpy epoch batch size img size rect resume nosave notest noautoanchor evolve bucket cach image
  • 【Basis】狄利克雷分布

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