今天开始,复习一下 LDA ,记录一些 LDA 的关键步骤,为写好论文做铺垫。第一节的主题是共轭分布,回忆贝叶斯公式:

\[p(\theta|X) = \frac{p(\theta) \cdot p(X|\theta)  }{p(X)} \Leftrightarrow \mathbf{ posterior = \frac{prior \cdot likelihood}{evidence}}\]

简单来说,如果先验分布 $p(\theta)$ 和似然函数 $p(X|\theta)$ 可以使得先验 $p(\theta)$ 和后验分布 $p(\theta|X)$ 有相同的形式,那么就称先验分布与似然函数是共轭分布。

共轭的意义在于是共轭特性可以使得先验分布和后验分布的形式相同,这样一方面合符人的直观(它们应该是相同形式的)另外一方面是可以形成一个先验链,即现在的后验分布可以作为下一次计算的先验分布,如果形式相同,就可以形成一个链条,后验又可以作为下一次的先验分布。

Binomial 分布

n 次 Binomial 分布试验中事件发生 k 次的概率是:

\[ P(k;n,p) = C_n^k \cdot p^k (1-p)^{n-k} \]

Beta分布

Beta 分布有几个重要的概念,纷纷介绍之:

1. Gamma 函数

\[\Gamma(x) = \int_0^{\infty}t^{x-1}e^{-t}dt\]
它具有如下性质
\[\Gamma(x+1) = x\Gamma(x)\]
2. Beta函数

\[B(m,n) = \frac{\Gamma(m)\Gamma(n)}{\Gamma(m+n)}\]

综上,给出 Beta 分布:

\[f(x) = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}x^{\alpha -1}(1-x)^{\beta -1}\]

Multinomial 分布

\[p( \vec n |\vec p ,N) = \frac{N!}{ n_1!n_2!...n_K!} \prod_{k= 1}^K p_k^{n_k}\]

这里有 $n _k$ 代表第 k 个事件发生的计数,且有 $N = n_1 + n_2+…+n_K$.

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}\]
Beta分布和Dirichlet分布的性质

共轭性质

  • 当先验为 Beta ,似然为 Binomial分布时,后验仍然为 Beta ,但是这里的 Beta 是融入了 Binomial分布的计数的;
  • 当先验为 Dirichlet,似然为 Multinomial 分布时,后验仍然为 Dirichlet,但是这里的 Dirichlet是融入Multinomial 分布的计数的.

举例来说,Multinomial  分布中事件 k 发生的次数为 $n_k$ ,则可得一个向量 $ \ vec n $, 代表每个事件的计数,直接使用 Multinomial   的 MLE 得到的结果为:

\[p_k = \frac{n_k}{n_1+n_2+ … +n_K }\]

当对该 Multinomial 分布引入一个 先验为 $\vec {alpha} $ 的 Dirichlet 分布后,即:

\[ p(\vec p) \sim Dir( \vec p| \vec a)\]

采用完全贝叶斯推断的方法,得到该 Dirichlet 分布的后验分布为:

\[Dir(\vec p | \vec a) + Multi(\vec n)= Dir(\vec p | \vec a + \vec n)\]

期望性质

如果 $p \sim Beta(t|\alpha,\beta)$ ,则
\begin{align}E(p)&=\int_0^1 t*Beta(t|\alpha,\beta)dt\\&=\int_0^1 t*\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^1 t^\alpha(1-t)^{\beta -1}dt\end{align}

上式右边的积分对应到概率分布 $Beta(t|\alpha +1,\beta)$
\[Beta(t | \alpha +1,\beta)=\int_0^1 t*\frac{\Gamma(\alpha + \beta +1 )}{\Gamma(\alpha +1)\Gamma(\beta)} t^\alpha(1-t)^{\beta -1}dt\]
而且我们有
\[\int_0^1Beta(t|\alpha +1,\beta)dt=1\]
所以我们有
\[\int_0^1 t^\alpha(1-t)^{\beta -1}dt=\frac{\Gamma(\alpha+1)\Gamma(\beta)}{\Gamma(\alpha+\beta+1)}\]
把上式带入E(p) 中得到 Beta 分布的期望:
\[E(p)=\frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}\cdot\frac{\Gamma(\alpha+1)\Gamma(\beta)}{\Gamma(\alpha+\beta+1)}=\frac{\alpha}{\alpha + \beta}\]
同样的,对于Dirichlet分布我们可以得到其期望值:
\[E(\vec p)=(\frac{\alpha_1}{\sum_{i=1}{K}\alpha_i},\frac{\alpha_2}{\sum_{i=1}{K}\alpha_i},...,\frac{\alpha_K}{\sum_{i=1}{K}\alpha_i})\]

LDA总结 (一) 共轭分布的更多相关文章

  1. LDA学习之beta分布和Dirichlet分布

    ---恢复内容开始--- 今天学习LDA主题模型,看到Beta分布和Dirichlet分布一脸的茫然,这俩玩意怎么来的,再网上查阅了很多资料,当做读书笔记记下来: 先来几个名词: 共轭先验: 在贝叶斯 ...

  2. 【联系】—— Beta 分布与二项分布、共轭分布

    1. 伯努利分布与二项分布 伯努利分布:Bern(x|μ)=μx(1−μ)1−x,随机变量 x 取值为 0,1,μ 表示取值为 1 的概率: 二项分布:Bin(m|N,μ)=(Nm)μm(1−μ)N− ...

  3. SK-Learn使用NMF(非负矩阵分解)和LDA(隐含狄利克雷分布)进行话题抽取

    英文链接:http://scikit-learn.org/stable/auto_examples/applications/topics_extraction_with_nmf_lda.html 这 ...

  4. LDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?

    本文参考自:https://www.zhihu.com/question/21692336/answer/19387415   方法一: alpha 是 选择为 50/ k, 其中k是你选择的topi ...

  5. 主题模型(概率潜语义分析PLSA、隐含狄利克雷分布LDA)

    一.pLSA模型 1.朴素贝叶斯的分析 (1)可以胜任许多文本分类问题.(2)无法解决语料中一词多义和多词一义的问题--它更像是词法分析,而非语义分析.(3)如果使用词向量作为文档的特征,一词多义和多 ...

  6. 伯努利分布、二项分布、Beta分布、多项分布和Dirichlet分布与他们之间的关系,以及在LDA中的应用

    在看LDA的时候,遇到的数学公式分布有些多,因此在这里总结一下思路. 一.伯努利试验.伯努利过程与伯努利分布 先说一下什么是伯努利试验: 维基百科伯努利试验中: 伯努利试验(Bernoulli tri ...

  7. 线性判别分析LDA原理总结

    在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...

  8. LDA( Latent Dirichlet Allocation)主题模型 学习报告

    1     问题描述 LDA由Blei, David M..Ng, Andrew Y..Jordan于2003年提出,是一种主题模型,它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一 ...

  9. 文本主题模型之LDA(一) LDA基础

    文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 在前面我们讲到了基于矩阵分解的 ...

随机推荐

  1. 弄懂JDK、JRE和JVM到底是什么 关系区别

    首先是JDKJDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK).在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin ...

  2. Hadoop+HBase 集群搭建

    Hadoop+HBase 集群搭建 1. 环境准备 说明:本次集群搭建使用系统版本Centos 7.5 ,软件版本 V3.1.1. 1.1 配置说明 本次集群搭建共三台机器,具体说明下: 主机名 IP ...

  3. [Python设计模式] 第13章 造小人——建造者模式

    github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟一个画小人的过程,要求小人要有头,身子,左手,右手,左脚,右脚 ...

  4. MongoDB地理空间数据存储及检索

    目录 1.存入地理数据 GeoJSON数据存入 1.Ponit 点数据 2.LineString 线数据(多段线) 3. Polygon 多边形数据 4.MultiPoint多点.MultiLineS ...

  5. 洛谷P1048 采药

    题目OJ地址 https://www.luogu.org/problemnew/show/P1048 https://vijos.org/p/1104 题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世 ...

  6. linux软连接

    linux软连接.类似window的快捷方式可以跨磁盘块(硬连接不可以). #软硬链接 ln -sf source target ln source target #硬链接不能跨分区 #批量解压文件 ...

  7. 基于R语言的时间序列指数模型

    时间序列: (或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列.时间序列分析的主要目的是根据已有的历史数据对未来进行预测.(百度百科) 主要考虑的因素: 1.长期趋势(Lon ...

  8. 30天自制操作系统 - 来一个hello world

    helloos.nas 源码: ; hello-os ; TAB= ; 以下这段是标准的FAT12格式软盘专用代码 DB 0xeb, 0x4e, 0x90 DB "HELLOIPL" ...

  9. SVN:This client is too old to work with working copy…解决的方法

    解决svn:This client is too old问题 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXlmbXlmbXlmbXlm/font/5a ...

  10. 15.翻译系列:EF 6中的级联删除【EF 6 Code-First 系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/cascade-delete-in-code-first.aspx EF 6 Code- ...