首页 > 其他分享 >LDA主题模型——贝叶斯分布与其共轭(一)

LDA主题模型——贝叶斯分布与其共轭(一)

时间:2024-12-21 10:08:33浏览次数:6  
标签:LDA 贝叶斯 分布 先验 alpha theta 共轭 Gamma

贝叶斯分布理论是统计推断的重要分支,其核心思想是利用贝叶斯定理,将先验知识与新观测数据结合,从而动态更新对未知参数的认识。这一理论框架以概率为基础,特别适合处理不确定性问题,在统计学及相关领域中具有重要地位。贝叶斯推断的一大优势是其计算上的简化性,尤其是通过共轭分布的应用。例如,在二项分布参数\(p\)的推断中,选择 Beta分布作为先验分布可保证后验分布仍为 Beta分布,这种共轭关系大幅降低了推断的复杂度,为实际应用提供了便利。此外,贝叶斯方法的灵活性和直观性使其能够融入领域专家的知识,同时通过不断加入新数据优化推断结果。贝叶斯方法在机器学习、经济学和医学等领域有着广泛应用。例如,在医学诊断中,贝叶斯方法结合患者历史数据和检查结果,可动态评估疾病风险,提高诊断准确性。

一、贝叶斯分布概述

1.1 贝叶斯定理的基本形式

贝叶斯定理的公式为:

\[P(\theta | \mathcal{D}) = \frac{P(\mathcal{D} | \theta) P(\theta)}{P(\mathcal{D})} \]

其中:

  • $ P(\theta | \mathcal{D}) $ 称为后验分布,表示在观测到数据 $ \mathcal{D} $ 后对参数 $ \theta $ 的概率分布;
  • $ P(\mathcal{D} | \theta) $ 称为似然函数,表示在参数 $ \theta $ 下,观测数据 $ \mathcal{D} $ 出现的可能性;
  • $ P(\theta) $ 称为先验分布,表示对参数 $ \theta $ 的先验知识;
  • $ P(\mathcal{D}) $ 是边际似然,起归一化作用,可表示为:

\[P(\mathcal{D}) = \int P(\mathcal{D} | \theta) P(\theta) d\theta \]

贝叶斯定理的作用是利用先验分布 $ P(\theta) $ 和数据生成过程的似然函数 $ P(\mathcal{D} | \theta) $ 来计算更新后的后验分布 $ P(\theta | \mathcal{D}) $。

1.2 先验分布 $ P(\theta) $

先验分布是贝叶斯分析的起点,反映在观测到数据之前对参数的主观认识或信念。先验分布可以是:

非信息性先验(Non-informative prior):表示对参数没有先验偏好,例如均匀分布。
信息性先验(Informative prior):基于历史数据或专家经验,例如正态分布、高斯分布等。

常见的先验分布形式包括:

  • Beta分布:Beta分布是定义在 \([0,1]\) 区间上的连续分布,用于建模概率参数 $ p $。其概率密度函数为:

\[P(p | \alpha, \beta) = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)} p^{\alpha - 1} (1 - p)^{\beta - 1}, \quad p \in [0, 1] \]

其中:

  • $ \alpha > 0, \beta > 0 $ 为形状参数;
  • $ \Gamma(\cdot) $ 是伽马函数,其定义为 $ \Gamma(x) = \int_0^\infty t^{x-1} e^{-t} dt $。

Beta分布在贝叶斯推断中常用作二项分布中参数 $ p $ 的先验分布。

  • 正态分布:参数 $ \mu $ 和 $ \sigma^2 $ 的先验分布通常假设为正态分布:

\[P(\theta) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(\theta - \mu)^2}{2\sigma^2}\right) \]

选择合适的先验分布是贝叶斯分析中的一个关键环节。

  • Gamma分布:Gamma分布是指数分布和泊松分布的推广形式,在参数估计、可靠性分析、排队论和贝叶斯统计中有着重要作用。Gamma分布由两个正参数 $ \alpha $(形状参数)和 $ \beta $(尺度参数)确定,其概率密度函数(PDF)形式为:

\[f(x | \alpha, \beta) = \frac{\beta^\alpha x^{\alpha-1} e^{-\beta x}}{\Gamma(\alpha)}, \quad x > 0, \, \alpha > 0, \, \beta > 0, \]

其中:

$ \Gamma(\alpha) $ 是 Gamma函数,定义为:

\[\Gamma(\alpha) = \int_0^\infty t^{\alpha-1} e^{-t} \, dt. \]

Gamma函数是阶乘的推广,满足 $ \Gamma(n) = (n-1)! $(当 $ n $ 为正整数时)。
$ \alpha $ 控制分布的形状:当 $ \alpha $ 较小时,分布偏斜明显;当 $ \alpha $ 较大时,分布逐渐接近正态分布。
$ \beta $ 控制分布的尺度:$ \beta $ 越大,分布越分散,反之则越集中。

1.3 似然函数 $ P(\mathcal{D} | \theta) $

似然函数反映了数据在给定参数值下的生成机制,即:

\[P(\mathcal{D} | \theta) = \prod_{i=1}^n P(x_i | \theta) \]

其中 $ x_i $ 表示观测数据中的第 $ i $ 个样本,$ n $ 为样本数量。

根据不同的概率模型,似然函数的形式会有所不同,例如:

  • 二项分布:如果观测数据符合二项分布,则似然函数为:

\[P(\mathcal{D} | \theta) = \binom{n}{k} \theta^k (1 - \theta)^{n-k} \]

其中 $ k $ 表示成功次数,$ \theta $ 表示成功的概率。

  • 正态分布:如果观测数据符合正态分布,则似然函数为:

\[P(\mathcal{D} | \theta) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right) \]

似然函数是后验分布计算的核心输入之一。

1.4 后验分布 $ P(\theta | \mathcal{D}) $

后验分布是贝叶斯推断的最终结果,它结合了先验分布和观测数据,更新了对参数 \(\theta\) 的认识。根据贝叶斯定理,后验分布的公式为:

\[P(\theta | \mathcal{D}) \propto P(\mathcal{D} | \theta) P(\theta) \]

这表明后验分布的形状是由似然函数和先验分布的乘积决定的。

1.5 边际似然

边际似然\(P(D)\)是后验分布中的归一化常数,用于保证后验分布积分为 1。公式为:

\[P(D) = \int P(D|\theta)P(\theta)d\theta \]

边际似然在模型比较中有重要应用,例如贝叶斯因子(Bayes Factor)。

贝叶斯分布理论的优势在于:

  • 直观性:能够将主观知识与客观数据相结合;
  • 动态更新:通过新数据不断更新参数的分布;
  • 灵活性:适用于小样本问题和复杂模型。

然而,贝叶斯方法的计算复杂性较高,尤其是在高维问题中,通常需要借助数值方法(如马尔科夫链蒙特卡罗方法,MCMC)来近似计算后验分布。

二、贝叶斯分布的共轭

在贝叶斯分析中,共轭先验是一个重要概念,指的是先验分布与后验分布具有相同的形式。这种性质大大简化了贝叶斯推断的计算。以下分别详细推导 Beta分布与二项分布的共轭关系 和 Dirichlet分布与多项分布的共轭关系,并给出数学表达。

2.1 Beta分布与二项分布的共轭关系

我们希望通过观测数据 $ k $ 和 $ n $ 更新对 $ p $ 的认识,根据贝叶斯定理:

\[P(p | k, n) \propto P(k | n, p) P(p) \]

其中:

  • $ P(p | k, n) $ 是后验分布;
  • $ P(k | n, p) $ 是似然函数,对应二项分布;
  • $ P(p) $ 是先验分布,对应 Beta分布。

将 $ P(k | n, p) $ 和 $ P(p) $ 的具体表达式代入:

\[P(p | k, n) \propto \left[ \binom{n}{k} p^k (1 - p)^{n - k} \right] \cdot \left[ \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)} p^{\alpha - 1} (1 - p)^{\beta - 1} \right] \]

忽略与 $ p $ 无关的常数项 $ \binom{n}{k} $ 和 $ \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)} $,得到:

\[P(p | k, n) \propto p^{k + \alpha - 1} (1 - p)^{n - k + \beta - 1} \]

这正是 Beta分布的形式,其更新后的参数为:

\[\alpha_{\text{posterior}} = \alpha + k, \quad \beta_{\text{posterior}} = \beta + n - k \]

因此,Beta分布是二项分布的共轭先验。

2.2 Dirichlet分布与多项分布的共轭关系

多项分布的定义

多项分布是二项分布的推广,描述了在 $ n $ 次试验中,事件 $ k_1, k_2, \ldots, k_K $ 的发生次数,其中每次试验中 $ K $ 个类别的概率为 $ \boldsymbol{\theta} = (\theta_1, \theta_2, \ldots, \theta_K) $,且满足:

\[\sum_{i=1}^K \theta_i = 1, \quad \theta_i \in [0, 1]. \]

多项分布的概率质量函数为:

\[P(\mathbf{k} | n, \boldsymbol{\theta}) = \frac{n!}{k_1! k_2! \cdots k_K!} \prod_{i=1}^K \theta_i^{k_i}, \]

其中:

  • $ \mathbf{k} = (k_1, k_2, \ldots, k_K) $ 是每个类别的观测次数;
  • $ n = \sum_{i=1}^K k_i $ 是试验总次数;
  • $ \boldsymbol{\theta} $ 是类别的概率分布。

这里的 $ P(\mathbf{k} | n, \boldsymbol{\theta}) $ 就是似然函数,用于表示观测数据的生成概率。

Dirichlet分布的定义

Dirichlet分布是多项分布参数 $ \boldsymbol{\theta} $ 的共轭先验分布,其概率密度函数为:

\[P(\boldsymbol{\theta} | \boldsymbol{\alpha}) = \frac{1}{B(\boldsymbol{\alpha})} \prod_{i=1}^K \theta_i^{\alpha_i - 1}, \quad \boldsymbol{\theta} \in [0, 1]^K, \quad \sum_{i=1}^K \theta_i = 1 \]

其中:

  • $ \boldsymbol{\alpha} = (\alpha_1, \alpha_2, \dots, \alpha_K) $ 是超参数,控制分布的形状;
  • $ B(\boldsymbol{\alpha}) $ 是 Beta函数的多维推广,定义为:

\[B(\boldsymbol{\alpha}) = \frac{\prod_{i=1}^K \Gamma(\alpha_i)}{\Gamma\left(\sum_{i=1}^K \alpha_i\right)} \]

Dirichlet分布是 Beta分布在多维空间的扩展,用于建模多项分布参数的先验知识。

Dirichlet分布与多项分布的共轭性

假设观测到的分类数据 $ \mathbf{k} = (k_1, k_2, \dots, k_K) $,其对应的似然函数为:

\[P(\mathbf{k} | n, \boldsymbol{\theta}) = \frac{n!}{k_1! k_2! \cdots k_K!} \prod_{i=1}^K \theta_i^{k_i} \]

先验分布为 Dirichlet分布:

\[P(\boldsymbol{\theta} | \boldsymbol{\alpha}) = \frac{1}{B(\boldsymbol{\alpha})} \prod_{i=1}^K \theta_i^{\alpha_i - 1} \]

根据贝叶斯定理,后验分布为:

\[P(\boldsymbol{\theta} | \mathbf{k}, n) \propto P(\mathbf{k} | n, \boldsymbol{\theta}) P(\boldsymbol{\theta} | \boldsymbol{\alpha}) \]

将似然函数和先验分布代入,忽略常数项,得到:

\[P(\boldsymbol{\theta} | \mathbf{k}, n) \propto \prod_{i=1}^K \theta_i^{k_i} \prod_{i=1}^K \theta_i^{\alpha_i - 1} = \prod_{i=1}^K \theta_i^{k_i + \alpha_i - 1} \]

这正是 Dirichlet分布的形式,其更新后的参数为:

\[\alpha_{i, \text{posterior}} = \alpha_i + k_i, \quad i = 1, 2, \dots, K \]

因此,Dirichlet分布是多项分布的共轭先验。

三、常见共轭先验分布

共轭先验分布指的是,当总体分布与其先验分布具有共轭关系时,后验分布的形式与先验分布保持一致。这种性质使得参数估计在数学上更加简单直观,同时在实际应用中提高了计算效率。下面对表中列出的几种常见共轭分布关系进行详细解释与推导。

总体分布 参数 共轭先验分布
二项分布 成功概率 \(p\) Beta 分布 $ \text{Beta}(\alpha, \beta) $
泊松分布 均值 \(\lambda\) Gamma 分布 $ \Gamma(\alpha, \beta) $
指数分布 均值的倒数 \(\theta\) Gamma 分布 $ \Gamma(\alpha, \beta) $
正态分布(方差已知) 均值 \(\mu\) 正态分布 $ N(\mu_0, \sigma^2) $
正态分布(均值已知) 方差 \(\sigma^2\) 倒 \(\Gamma\) 分布

总结

共轭先验分布在贝叶斯推断中具有重要作用,通过保持先验与后验分布形式的一致性,大大简化了参数更新的计算复杂度。在实际应用中,不同分布的共轭关系,如 Beta 分布与二项分布、Gamma 分布与泊松分布等,为统计建模、机器学习和数据分析提供了有效工具。这种方法不仅灵活,而且能够结合先验知识与数据观测,实现对未知参数的动态推断。

Beta分布与二项分布的共轭性:Beta分布通过简单的参数更新\(\alpha + k\) 和 \(\beta + n - k\),生成后验分布。
Dirichlet分布与多项分布的共轭性:Dirichlet分布的超参数 \(\alpha\)通过累加观测到的频数\(k\),生成后验分布。
这两种共轭关系的推导,展现了贝叶斯分析在复杂模型推断中的高效性,同时为机器学习、自然语言处理和信号处理等领域提供了理论基础。

参考资料

  1. 理解Gamma分布、Beta分布与Dirichlet分布
  2. 共轭和共轭分布
  3. 主题模型(一):LDA 基本原理
  4. 通俗理解LDA主题模型(2014年版)

标签:LDA,贝叶斯,分布,先验,alpha,theta,共轭,Gamma
From: https://www.cnblogs.com/haohai9309/p/18608178

相关文章

  • Java中使用java.time.LocalDate按日期范围生成日期序列
    需求:配置起止日期,计算两个日期间所有的天数,或者当前日期到配置日期间的所有天数,无需关心月份是28天或是31天日期区间为左闭右开,需要闭区间自行处理场景:按日期执行某些业务,数据库记录上次执行日期,计算出配置日期到今天的所有日期,遍历执行,最后更新上次执行日......
  • Instant 和 LocalDateTime 有什么区别?
    我知道那件事:Instant是一种用于计算的“技术”时间戳表示形式(纳秒)。LocalDateTime是日期/时钟表示形式,包括人类的时区。尽管如此,最终IMO都可以作为大多数应用程序用例的类型。例如:当前,我正在运行一个批处理作业,我需要根据日期计算下一次运行,并且我正在努力寻找这两种类型之......
  • 毕业设计:python电商评论数据采集分析可视化系统 Flask框架 NLP情感分析 LDA主题分析 B
    毕业设计:python电商评论数据采集分析可视化系统Flask框架NLP情感分析LDA主题分析Bayes评论分类(源码)✅1、项目介绍项目技术说明:python语言、Flask框架、MySQL数据库、Echarts可视化、评论多维度分析、NLP情感分析、LDA主题分析、Bayes评论分类2、项目界面(1)评论数......
  • 【阿里matlab算法】matlab实现超启发驱动贝叶斯散斑去噪MDBSD研究——散斑去噪
    MATLAB实现超启发驱动贝叶斯散斑去噪MDBSD研究1、项目下载:本项目完整论文和全套实现源码见下面资源,有需要的朋友可以点击进行下载说明文档(点击下载)本算法文档matlab实现超启发驱动贝叶斯散斑去噪MDBSD-贝叶斯去噪-MDBSD-图像处理-散斑噪声更多阿里matlab精品项目可点击......
  • R机器学习:朴素贝叶斯算法的理解与实操
    最近又看了很多贝叶斯算法的一些文章,好多的文章对这个算法解释起来会放一大堆公式,对代数不好的人来说真的很头疼。本文尝试着用大白话写写这个算法,再做个例子,帮助大家理解和运用。NaiveBayesisaprobabilisticmachinelearningalgorithmbasedontheBayesTheorem,used......
  • nis客户端开启ypbind失败 ldap ypbind[5270]: NIS server for domain domain is not r
    nis客户端开启ypbind失败Dec1715:31:03ldapypbind[5270]:NISserverfordomainanykaisnotrespon报错解释:这条日志信息来自于一个尝试使用NIS(网络信息服务)进行域名为anyka的用户查询,但是NIS服务器没有响应。ypbind是用来绑定到NIS域的工具,它会尝试绑定到指定的NIS服务......
  • 【Java】LDAP AD域登录认证
    项目遇到需要进行AD域认证的情况,先是使用了LdapTemplate,结果认证不了,换了下面的方式认证成功了认证的时候,需要注意账号后面加上AD域服务器后缀!加上后缀!加上后缀! publicbooleanldapAuth(Stringusername,Stringpassword){booleanisLogin=false;//log.i......
  • MySQLDay1
    MySQLDay1MySQL简介MySQL是一个典型的关系数据库,目前是Oracle公司产品之一,也是目前主流使用的关系型数据库之一。使用MySQL可以进行最基本的数据存储、管理、查询等操作,也可以方便的组建数据库集群,配置读写分离。MySQL数据库同样使用SQL(结构化查询语言)来进行操作,同时MySQL数据......
  • 解决:ImportError: /lib64/libldap.so.2: undefined symbol: EVP_md2, version OPENSSL
    解决:ImportError:/lib64/libldap.so.2:undefinedsymbol:EVP_md2,versionOPENSSL_3.0.0报错 [root@localhost]#dnfinstall-ynet-toolsTraceback(mostrecentcalllast):File"/usr/bin/dnf",line61,in<module>fromdnf.cliimportmain......
  • LDAPWordlistHarvester:内网利器
    根据LDAP中找到的以下信息创建单词列表:用户:name和sAMAccountName电脑:name和sAMAccountName团体:name组织单位:nameActiveDirectory站点:name和descriptions所有LDAP对象:descriptions使用选项选择单词列表输出文件名--outputfile要从域的LDAP生成单词列表,domain.local......