非共轭先验(Non-conjugate Prior)和共轭先验(Conjugate Prior)

非共轭先验(Non-conjugate Prior) 是贝叶斯统计中的一个重要概念。

1. 核心概念:什么是共轭?

在贝叶斯推断中,我们的目标是计算后验分布(Posterior)

P(θ∣D)∝P(D∣θ)×P(θ) P(\theta | D) \propto P(D | \theta) \times P(\theta) P(θ∣D)∝P(D∣θ)×P(θ)

其中:

  • P(θ)P(\theta)P(θ) 是先验分布(Prior)。
  • P(D∣θ)P(D | \theta)P(D∣θ) 是似然函数(Likelihood)。
  • P(θ∣D)P(\theta | D)P(θ∣D) 是后验分布

共轭先验(Conjugate Prior) 的定义是:

如果先验分布 P(θ)P(\theta)P(θ) 和后验分布 P(θ∣D)P(\theta | D)P(θ∣D) 属于同一个概率分布家族,那么这个先验就是共轭的。

例子

  • 如果你假设数据服从伯努利分布(抛硬币,正面或反面)。
  • 你选择Beta分布作为先验。
  • 那么,无论观察到多少数据,计算出的后验分布仍然是Beta分布
  • 优点:数学上非常友好,可以直接写出解析解(公式),不需要复杂的数值计算。

2. 什么是非共轭先验?

非共轭先验 是指:

当你选择了一个先验分布 P(θ)P(\theta)P(θ),使得后验分布 P(θ∣D)P(\theta | D)P(θ∣D) 不属于 先验分布所在的同一个概率分布家族,或者根本找不到一个解析形式的后验分布。

通俗理解

你选的"帽子"(先验)形状很奇怪,当你把数据(似然)套上去后,"帽子"变形了,变成了一种你完全没预料到的新形状(后验),而且你无法用现有的标准数学公式来描述这个新形状。


3. 为什么会出现非共轭先验?

在简单的模型(如抛硬币、线性回归)中,共轭先验很常见。但在复杂模型(特别是深度神经网络、隐藏变量模型)中,共轭性通常会失效。

典型场景

  1. 非线性模型
    • 似然函数 P(D∣θ)P(D|\theta)P(D∣θ) 包含复杂的非线性操作(如神经网络中的激活函数 Sigmoid, ReLU)。
    • 即使先验是高斯分布,经过非线性变换后,后验分布会变得极其复杂,不再是高斯分布,甚至没有名字。
  2. 多层潜在变量
    • 在变分自编码器(VAE)或深层生成模型中,有多个层的隐藏变量。
    • 积分过程(为了边缘化潜在变量)涉及非高斯核函数的组合,导致后验无法解析求解。
  3. 自定义分布
    • 为了更灵活地建模,研究者可能选择任意复杂的分布作为先验(例如混合高斯分布、任意神经网络参数化的分布),这些通常不与标准的似然函数共轭。

4. 非共轭先验带来的挑战

一旦遇到非共轭先验,贝叶斯推断的"黄金时代"(解析解时代)就结束了,我们必须面对以下困难:

  1. 积分不可解(Intractable Integral)
    • 计算归一化常数(Evidence, P(D)P(D)P(D))需要求积分 ∫P(D∣θ)P(θ)dθ\int P(D|\theta)P(\theta) d\theta∫P(D∣θ)P(θ)dθ。对于非共轭情况,这个积分通常没有解析解,数值积分又太慢。
  2. 无法直接写出后验
    • 你无法说"后验是分布X,参数是Y"。你只能知道后验的形状,但不知道它的具体数学表达式。

5. 如何解决非共轭先验的问题?

正因为非共轭先验如此普遍(尤其是在深度学习中),科学家们发展出了近似方法。你之前问到的变分推断(VI)MCMC就是用来解决这个问题的。

A. 变分推断 (Variational Inference, VI)
  • 思路 :既然算不出真实的后验,那我就猜测 一个后验分布 q(θ)q(\theta)q(θ)(比如强制假设它是高斯分布)。
  • 操作 :通过优化算法(梯度下降),让 q(θ)q(\theta)q(θ) 尽可能接近真实的后验。
  • 联系 :这就是为什么在 VAE 中,即使底层逻辑很复杂,我们依然假设 q(z∣x)q(z|x)q(z∣x) 是高斯分布,并通过神经网络输出均值和方差。
B. 马尔可夫链蒙特卡洛 (MCMC)
  • 思路 :既然算不出公式,那我就通过采样
  • 操作:生成大量的样本,这些样本的分布近似于后验分布。
  • 缺点:计算慢,不适合大规模深度学习。
C. 拉普拉斯近似 (Laplace Approximation)
  • 思路:在众数(最高点)附近用高斯分布去拟合后验。

6. 总结与类比

  • 共轭先验:就像买衣服,你买了一件"均码"(Beta分布),无论你怎么洗(更新数据),它还是"均码"(Beta分布)。你可以直接穿上,不用改。
  • 非共轭先验:你买了一件"定制礼服"(复杂先验),洗了一次(看到数据)后,衣服缩水变形了,变成了一件"无法描述形状的布料"(非标准后验)。
  • 解决方法
    • MCMC:拿尺子量这块布料,一点点描出它的形状(采样)。
    • 变分推断:拿一块标准的"正方形布料"(简单分布,如高斯)去覆盖它,尽量贴合(优化近似)。

7. 变分推断(VI) 解决非共轭问题

在论文《Auto-Encoding Variational Bayes》中:

"Since the SGVB estimator and the AEVB algorithm can be applied to almost any inference and learning problem with continuous latent variables..."

这篇论文(VAE/SGVB)正是为了解决非共轭问题而生的。

  • 在深度生成模型中,似然函数 pθ(x∣z)p_\theta(x|z)pθ(x∣z) 通常是一个复杂的神经网络(非线性)。
  • 因此,真实的后验 p(z∣x)p(z|x)p(z∣x) 通常是非共轭的,甚至没有解析形式。
  • 变分推断(VI) 引入了一个近似的编码器 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x)(通常设为简单的高斯分布),通过最大化 ELBO 来近似这个难解的后验。

所以,非共轭先验 是导致我们需要使用变分推断深度学习来代替传统贝叶斯解析解的根本原因之一。

相关推荐
冬奇Lab1 小时前
Workflow 系列(03):状态管理——持久化、幂等性与版本绑定
人工智能·工作流引擎
冬奇Lab2 小时前
每日一个开源项目(第146篇):openpilot - 开源自动驾驶辅助系统,曾在 Consumer Reports 评测中超过特斯拉 Autopilot
人工智能·开源·自动驾驶
吴佳浩3 小时前
AI 工程师知识地图:模型格式、框架、部署工具一次讲明白
人工智能·aigc·ai编程
IT_陈寒3 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
码农胖大海4 小时前
AI额度不够用的解决方案
人工智能
后端小肥肠4 小时前
小红书虚拟商品怎么做?我先用 Skill 跑通了壁纸品类
人工智能·aigc·agent
feiyu_gao4 小时前
从零搭建个人 AI 工作台:一个管理者的 3 个月实验
人工智能·aigc·团队管理
程序员cxuan5 小时前
一句话,让你用上 GPT-5.6
人工智能·后端·程序员
机器之心5 小时前
AI圈刚开始谈Loop Engineering,两位95后博士已经盯上了人类闭环数据
人工智能·openai