【机器学习】03_贝叶斯决策

一、 核心理论:贝叶斯决策论 (Bayesian Decision Theory)

这是整个贝叶斯分类的基石,考试常考基本概念辨析。

1. 核心公式:贝叶斯定理 (必背)

我们想求的是后验概率 P(c∣x)P(c|x)P(c∣x)(看到特征 xxx 后,它属于类别 ccc 的概率),但这个很难直接算。贝叶斯公式让我们通过"反推"来计算: P(c∣x)=P(x∣c)P(c)P(x)P(c|x) = \frac{P(x|c)P(c)}{P(x)}P(c∣x)=P(x)P(x∣c)P(c)

  • P(c)P(c)P(c) 先验概率 (Prior) :不看任何特征,根据以往经验,样本属于 ccc 类的概率(比如好瓜本来就少,好瓜的 P(c)P(c)P(c) 就低)。
  • P(x∣c)P(x|c)P(x∣c) 类条件概率 (Likelihood) :如果已经是 ccc 类了,长成 xxx 这样特征的概率是多少(比如好瓜通常是绿色的,那么 P(绿色∣好瓜)P(\text{绿色}|\text{好瓜})P(绿色∣好瓜) 就高)。
  • P(x)P(x)P(x) 证据 (Evidence) :用于归一化,对于所有类别来说都一样,决策时通常忽略
2. 两个决策准则 (考试重点)

考试中可能会给出一个损失矩阵,让你判断怎么决策。

  • 最小错误率决策 (Minimum Error Rate)
    • 口诀谁的后验概率大,就选谁
    • 目标:max⁡P(c∣x)\max P(c|x)maxP(c∣x)。
    • 等价于:max⁡P(x∣c)P(c)\max P(x|c)P(c)maxP(x∣c)P(c) (因为分母 P(x)P(x)P(x) 相同)。
  • 最小风险决策 (Minimum Risk)
    • 背景:有时候犯错的代价不一样(比如把毒蘑菇当成正常的吃的,代价比把正常的当毒蘑菇扔了要大得多)。
    • 引入 :损失函数 λij\lambda_{ij}λij(把 jjj 类误判为 iii 类的损失)。
    • 做法 :选择期望损失(风险)最小的类别。
    • 特例 :如果损失函数是 0-1 损失(判对损失0,判错损失1),那么最小风险决策 ⇔\Leftrightarrow⇔ 最小错误率决策。

二、 极重要算法:朴素贝叶斯 (Naive Bayes)

这是本讲最容易出计算大题的部分(例如给一个西瓜的数据表,让你手算它是好瓜的概率)。

1. "朴素"在哪里?
  • 核心假设属性条件独立性假设
  • 即:假设所有属性(色泽、根蒂、敲声...)之间互不影响,独立地对分类结果产生影响。
  • 公式 : P(c∣x)∝P(c)∏i=1dP(xi∣c)P(c|x) \propto P(c) \prod_{i=1}^{d} P(x_i|c)P(c∣x)∝P(c)i=1∏dP(xi∣c) 即:后验概率 ∝\propto∝ 先验概率 ×\times× 每个属性条件概率的连乘。
2. 怎么训练?(参数估计)

其实就是"数数"。

  • 先验 P(c)P(c)P(c) :∣Dc∣/∣D∣|D_c| / |D|∣Dc∣/∣D∣ (c类样本数 / 总样本数)。
  • 条件概率 P(xi∣c)P(x_i|c)P(xi∣c)
    • 离散属性 :∣Dc,xi∣/∣Dc∣|D_{c, x_i}| / |D_c|∣Dc,xi∣/∣Dc∣ (c类中第i个属性取值为x的样本数 / c类样本总数)。
    • 连续属性 :通常假设服从高斯分布 (正态分布),算出均值和方差,代入高斯公式计算概率密度。
3. 拉普拉斯修正 (Laplacian Correction) ------ 考点预警
  • 问题:如果某个属性值在训练集中没出现过(比如"敲声=清脆"在好瓜里是0个),连乘会导致整个概率变成0。
  • 解决
    • 分子 + 1
    • 分母 + N (N是该属性可能的取值个数)
    • 公式 :P^(c)=∣Dc∣+1∣D∣+K\hat{P}(c) = \frac{|D_c|+1}{|D|+K}P^(c)=∣D∣+K∣Dc∣+1, P^(xi∣c)=∣Dc,xi∣+1∣Dc∣+Ni\hat{P}(x_i|c) = \frac{|D_{c,x_i}|+1}{|D_c|+N_i}P^(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1。

三、 参数估计方法:MLE vs 贝叶斯估计

这部分通常考概念辨析

  • 极大似然估计 (MLE)
    • 频率学派 观点。认为参数 θ\thetaθ 是固定的(虽然未知)。
    • 目标:找到一个 θ\thetaθ,让看到现有数据的概率(似然)最大。
    • 缺点:数据少时容易过拟合。
  • 贝叶斯估计
    • 贝叶斯学派 观点。认为参数 θ\thetaθ 是随机变量,服从一个分布。
    • 引入了先验分布 (Prior),结合数据得到后验分布

四、 EM 算法 (Expectation-Maximization) ------ 难点

如果考试考到 GMM (高斯混合模型) 或者有隐变量 (Latent Variable) 的问题,必考 EM 算法。

  • 场景:数据不完整,或者含有无法观测的隐变量(例如:一堆西瓜数据,但我不知道哪些是A类瓜,哪些是B类瓜,只知道它们混合在一起的分布)。
  • 核心思想 :迭代法。
    • E步 (Expectation):先猜一个参数,计算隐变量的期望(或者说是隐变量的后验概率)。
    • M步 (Maximization):根据算出的隐变量,重新用极大似然估计来更新参数。
  • 比喻:就像炒菜,先估计要放多少盐(E步),尝一口(计算似然),觉得淡了再根据刚才的味觉调整盐量(M步),反复几次直到味道最好。

五、 拓展概念 (了解即可)

  • 半朴素贝叶斯 :觉得"所有属性完全独立"太假了,稍微放松一点,允许属性之间有一些依赖(如 AODE , TAN)。
  • 贝叶斯网:用有向无环图 (DAG) 来表达属性之间的依赖关系。

考试通关 CheckList:

  1. 计算题 :给一个类似"西瓜数据集"的表格,给定一个新的样本(色泽=青绿,根蒂=蜷缩...),请务必掌握如何用朴素贝叶斯 计算它属于"好瓜"和"坏瓜"的概率(记得比较大小时,分母P(x)P(x)P(x)可以消去,只需算分子)。一定要注意是否需要使用拉普拉斯修正
  2. 概念 :解释什么是先验概率后验概率类条件概率
  3. EM算法:能简述 EM 算法是用来解决什么问题的(含隐变量的参数估计),以及 E 步和 M 步分别在做什么。
  4. 公式 :贝叶斯公式 P(c∣x)=P(x∣c)P(c)P(x)P(c|x) = \frac{P(x|c)P(c)}{P(x)}P(c∣x)=P(x)P(x∣c)P(c) 必须烂熟于心。
    好的,我们严格按照您的节奏,一讲一讲来。现在进入第4讲:贝叶斯分类器 (Bayesian Classifiers)
    这一讲是概率图模型统计推断 的基础,考试中极易出现计算题 (尤其是朴素贝叶斯的手算)和概念辨析题(如极大似然估计 vs 贝叶斯估计)。

以下是第4讲的考试与解题深度复习笔记


第4讲:贝叶斯分类器 ------ 概率与决策

一、 核心基础:贝叶斯决策论 (Bayesian Decision Theory)

这是解题的理论依据,考试中常让你根据给定的损失矩阵概率做决策。

  1. 基本公式:贝叶斯定理 (必考) P(c∣x)=P(x∣c)P(c)P(x)P(c|x) = \frac{P(x|c)P(c)}{P(x)}P(c∣x)=P(x)P(x∣c)P(c)
    • P(c)P(c)P(c) 先验概率 (Prior):由以往经验统计得到的类别概率(例如:好瓜占所有瓜的比例)。
    • P(x∣c)P(x|c)P(x∣c) 类条件概率 (Likelihood/似然) :在类别 ccc 中,出现特征 xxx 的概率(例如:好瓜中是绿色的概率)。
    • P(c∣x)P(c|x)P(c∣x) 后验概率 (Posterior) :在看到特征 xxx 后,样本属于类别 ccc 的概率(例如:看到是绿色的,它是好瓜的概率)。
  2. 两个决策准则 (计算题判据)
    • 最小错误率决策 (Minimum Error Rate)
      • 判据 :直接比较后验概率,谁大选谁
      • 公式:选择 ccc 使得 P(c∣x)P(c|x)P(c∣x) 最大。等价于比较分子 P(x∣c)P(c)P(x|c)P(c)P(x∣c)P(c)。
      • 特例 :如果是二分类,且 P(c1∣x)>P(c2∣x)P(c_1|x) > P(c_2|x)P(c1∣x)>P(c2∣x),则判为 c1c_1c1。
    • 最小风险决策 (Minimum Risk)
      • 场景:当犯错的代价不同时(例如:把"有病"误判为"无病"的代价 > 把"无病"误判为"有病")。
      • 引入 :损失函数 λij\lambda_{ij}λij(将第 jjj 类误分为第 iii 类的损失)。
      • 计算条件风险 :R(αi∣x)=∑jλijP(cj∣x)R(\alpha_i|x) = \sum_{j} \lambda_{ij} P(c_j|x)R(αi∣x)=∑jλijP(cj∣x)。
      • 判据 :选择动作 αi\alpha_iαi 使得风险 R(αi∣x)R(\alpha_i|x)R(αi∣x) 最小
      • 考点 :如果损失函数是 0-1损失 (判对损失0,判错损失1),则最小风险 = 最小错误率
二、 核心算法:朴素贝叶斯 (Naive Bayes) ------ 必考计算题

这是本章最可能出计算大题的部分。请务必掌握以下流程。

  1. "朴素"的含义 假设所有属性(特征)之间相互独立。即:色泽不仅与好坏有关,但与根蒂、敲声等其他特征无关。
  2. 计算公式 (解题核心) P(c∣x)∝P(c)∏i=1dP(xi∣c)P(c|x) \propto P(c) \prod_{i=1}^{d} P(x_i|c)P(c∣x)∝P(c)i=1∏dP(xi∣c)
    • P(c)P(c)P(c):先验概率。
    • ∏P(xi∣c)\prod P(x_i|c)∏P(xi∣c):各个属性条件概率的连乘积。
  3. 手算步骤示例 (以西瓜数据集为例)
    • 题目 :给定训练集,判断测试例 x=色泽=青绿, 根蒂=蜷缩x = {\text{色泽=青绿, 根蒂=蜷缩}}x=色泽=青绿, 根蒂=蜷缩 是否是"好瓜"。
    • Step 1: 算先验概率 P(c)P(c)P(c)
      • P(好瓜=是)=好瓜样本数总样本数=817P(\text{好瓜=是}) = \frac{\text{好瓜样本数}}{\text{总样本数}} = \frac{8}{17}P(好瓜=是)=总样本数好瓜样本数=178
      • P(好瓜=否)=坏瓜样本数总样本数=917P(\text{好瓜=否}) = \frac{\text{坏瓜样本数}}{\text{总样本数}} = \frac{9}{17}P(好瓜=否)=总样本数坏瓜样本数=179
    • Step 2: 算条件概率 P(xi∣c)P(x_i|c)P(xi∣c) (查表数数)
      • P(青绿∣是)=好瓜中青绿的个数好瓜总数=38P(\text{青绿}|\text{是}) = \frac{\text{好瓜中青绿的个数}}{\text{好瓜总数}} = \frac{3}{8}P(青绿∣是)=好瓜总数好瓜中青绿的个数=83
      • P(蜷缩∣是)=好瓜中蜷缩的个数好瓜总数=58P(\text{蜷缩}|\text{是}) = \frac{\text{好瓜中蜷缩的个数}}{\text{好瓜总数}} = \frac{5}{8}P(蜷缩∣是)=好瓜总数好瓜中蜷缩的个数=85
      • 同理算出 P(青绿∣否)P(\text{青绿}|\text{否})P(青绿∣否) 和 P(蜷缩∣否)P(\text{蜷缩}|\text{否})P(蜷缩∣否)。
    • Step 3: 连乘比较
      • 好瓜得分:P(是)×P(青绿∣是)×P(蜷缩∣是)P(\text{是}) \times P(\text{青绿}|\text{是}) \times P(\text{蜷缩}|\text{是})P(是)×P(青绿∣是)×P(蜷缩∣是)
      • 坏瓜得分:P(否)×P(青绿∣否)×P(蜷缩∣否)P(\text{否}) \times P(\text{青绿}|\text{否}) \times P(\text{蜷缩}|\text{否})P(否)×P(青绿∣否)×P(蜷缩∣否)
      • 结论:哪个乘积大,就预测为哪一类。
  4. 特殊情况处理
    • 连续属性 :如果属性是"密度=0.697",不能数数了。通常假设服从高斯分布 (正态分布)
      • 计算该类下该属性的均值 μ\muμ 和方差 σ2\sigma^2σ2。
      • 代入公式:P(xi∣c)=12πσexp⁡(−(xi−μ)22σ2)P(x_i|c) = \frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{(x_i-\mu)^2}{2\sigma^2})P(xi∣c)=2π σ1exp(−2σ2(xi−μ)2)。
    • 零概率问题 (拉普拉斯修正)
      • 如果某个属性值在训练集中没出现(比如好瓜里没有"敲声=清脆"),概率为0,连乘后全为0。
      • 修正公式 : P(xi∣c)=∣Dc,xi∣+1∣Dc∣+NiP(x_i|c) = \frac{|D_{c,x_i}| + 1}{|D_c| + N_i}P(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1 其中 +1+1+1 是平滑项,NiN_iNi 是该属性可能的取值个数(注意不是总样本数!)。
三、 参数估计:MLE vs 贝叶斯估计

这部分主要考概念辨析简单推导

特性 极大似然估计 (MLE) 贝叶斯估计 (Bayesian Estimation)
核心观点 参数 θ\thetaθ 是固定的未知常数 参数 θ\thetaθ 是随机变量,服从先验分布
目标 最大化似然函数 $L(\theta) = P(D θ)\theta)θ)
计算方法 求导,令导数为0 结合先验,求期望或最大后验 (MAP)
优缺点 数据少时易过拟合 利用先验知识,能缓解过拟合,但计算复杂
公式记忆 θ^MLE=arg⁡max⁡∑ln⁡P(xi\hat{\theta}_{MLE} = \arg\max \sum \ln P(x_iθ^MLE=argmax∑lnP(xi θ)\theta)θ)
  • 考试高频推导
    • 证明正态分布均值 μ\muμ 的 MLE 估计就是样本均值 xˉ\bar{x}xˉ。
    • 推导:写出似然函数 →\rightarrow→ 取对数 →\rightarrow→ 对 μ\muμ 求导 →\rightarrow→ 令导数为0 →\rightarrow→ 解出 μ\muμ。
四、 EM 算法 (Expectation-Maximization)

当数据中存在隐变量 (Latent Variable)(即有些数据通过观测无法直接得到,例如硬币A还是B抛的)时,MLE 无法直接求解,需用 EM 算法。

  1. 算法流程 (两步走)
    • E步 (Expectation)
      • 固定参数 θ\thetaθ,计算隐变量 ZZZ 的后验概率(或者说是对数似然的期望)。
      • 简单理解:"猜"。根据现有模型,猜缺失数据(隐变量)大概率是什么。
    • M步 (Maximization)
      • 固定隐变量的分布(用E步算出的期望),最大化似然函数来更新参数 θ\thetaθ。
      • 简单理解:"算"。根据猜出的完整数据,用 MLE 重新计算参数。
    • 循环:E -> M -> E -> M ... 直到收敛。
  2. 应用场景
    • 高斯混合模型 (GMM):数据由多个高斯分布混合而成,不知道每个点属于哪个高斯分布(隐变量)。
    • K-Means 聚类 :可以看作是 GMM 的一种特例(硬分配)。
      题目类型:朴素贝叶斯分类

题面:已知好瓜(是/否)的先验,以及(色泽、根蒂)的条件概率表。求问样本(青绿,蜷缩)是好瓜吗?

解题步骤

  1. 写公式 :P(c∣x)∝P(c)×P(x1∣c)×P(x2∣c)P(c|x) \propto P(c) \times P(x_1|c) \times P(x_2|c)P(c∣x)∝P(c)×P(x1∣c)×P(x2∣c)
  2. 算正例 (好瓜) : ScoreYes=P(好)×P(青绿∣好)×P(蜷缩∣好)Score_{Yes} = P(好) \times P(青绿|好) \times P(蜷缩|好)ScoreYes=P(好)×P(青绿∣好)×P(蜷缩∣好) (代入数值计算)
  3. 算负例 (坏瓜) : ScoreNo=P(坏)×P(青绿∣坏)×P(蜷缩∣坏)Score_{No} = P(坏) \times P(青绿|坏) \times P(蜷缩|坏)ScoreNo=P(坏)×P(青绿∣坏)×P(蜷缩∣坏) (代入数值计算)
  4. 比较下结论 : 如果 ScoreYes>ScoreNoScore_{Yes} > Score_{No}ScoreYes>ScoreNo,则是好瓜;否则是坏瓜。 (注意:如果是填空题,可能要注意是否需要归一化,即算出具体的概率值,通常只需比较大小即可)
    题目类型:拉普拉斯修正

题面:如果训练集中没有(色泽=青绿,好瓜=是)的样本,怎么算?

解题 : P(青绿∣好)=0+1N好+N色泽 P(\text{青绿}|\text{好}) = \frac{0 + 1}{N_{好} + N_{色泽}} P(青绿∣好)=N好+N色泽0+1

  • 分子加 1。
  • 分母加 N色泽N_{色泽}N色泽 (色泽这个属性有多少种取值,比如青绿、乌黑、浅白,那就是+3),千万别加成总样本数

EM 算法示例

EM 算法(Expectation-Maximization Algorithm,期望最大化算法)主要用于解决含有**隐变量(Latent Variables)的概率模型参数估计问题。
当观测数据不完整,或者模型中存在无法直接观测到的随机变量时,普通的极大似然估计(MLE)往往难以直接求解。EM 算法通过交替进行 E 步(求期望)M 步(求极大值) 来逼近最优解。
下面通过最经典的
"硬币投掷问题"**来演示 EM 算法的计算过程。


1. 问题背景:双硬币模型

假设有两枚硬币 AAA 和 BBB,它们正面向上的概率分别是 θA\theta_AθA 和 θB\theta_BθB(这是我们要估计的参数)。

我们做了 5 组实验,每组随机选一枚硬币并投掷 10 次。

  • 理想情况: 我们知道每组选的是哪枚硬币,直接用每一枚硬币正面总数除以总投掷次数即可(这就是 MLE)。
  • EM 场景: 我们丢失了"每组选了哪枚硬币"的记录(隐变量 ZZZ),只知道每组实验中正面(H)和反面(T)的数量。

观测数据 (Data)

  1. 5正5反
  2. 9正1反
  3. 8正2反
  4. 4正6反
  5. 7正3反

2. EM 算法执行步骤

步骤 0:初始化

随机假设初始参数:

  • θA(0)=0.60\theta_A^{(0)} = 0.60θA(0)=0.60
  • θB(0)=0.50\theta_B^{(0)} = 0.50θB(0)=0.50

步骤 1:E-Step (Expectation)

根据当前参数,计算每一组观测数据来源于硬币 AAA 或 BBB 的概率(期望)

以第一组数据(5正5反)为例:

  • 如果是 AAA 产生该结果的概率:P(D1∣A)=(105)×0.65×0.45≈0.2007P(D_1|A) = \binom{10}{5} \times 0.6^5 \times 0.4^5 \approx 0.2007P(D1∣A)=(510)×0.65×0.45≈0.2007
  • 如果是 BBB 产生该结果的概率:P(D1∣B)=(105)×0.55×0.55≈0.2461P(D_1|B) = \binom{10}{5} \times 0.5^5 \times 0.5^5 \approx 0.2461P(D1∣B)=(510)×0.55×0.55≈0.2461
    归一化权重(贡献度):
  • 这组数据来自 AAA 的概率 W1,A=0.20070.2007+0.2461≈0.45W_{1,A} = \frac{0.2007}{0.2007 + 0.2461} \approx 0.45W1,A=0.2007+0.24610.2007≈0.45
  • 这组数据来自 BBB 的概率 W1,B=0.24610.2007+0.2461≈0.55W_{1,B} = \frac{0.2461}{0.2007 + 0.2461} \approx 0.55W1,B=0.2007+0.24610.2461≈0.55
    分配正面/反面次数:
  • 硬币 AAA 贡献了:0.45×5H=2.25H,0.45×5T=2.25T0.45 \times 5H = 2.25H, \quad 0.45 \times 5T = 2.25T0.45×5H=2.25H,0.45×5T=2.25T
  • 硬币 BBB 贡献了:0.55×5H=2.75H,0.55×5T=2.75T0.55 \times 5H = 2.75H, \quad 0.55 \times 5T = 2.75T0.55×5H=2.75H,0.55×5T=2.75T
    对所有 5 组数据重复此操作,并累加 AAA 和 BBB 的贡献。

步骤 2:M-Step (Maximization)

根据 E 步计算出的"期望"次数,重新估计参数 θA\theta_AθA 和 θB\theta_BθB。

假设 5 组数据累计结果如下(数值为示例):

  • 硬币 AAA 的总贡献:21.321.321.3 个正面,8.68.68.6 个反面。
  • 硬币 BBB 的总贡献:11.711.711.7 个正面,8.48.48.4 个反面。
    更新参数:
  • θA(1)=21.321.3+8.6≈0.71\theta_A^{(1)} = \frac{21.3}{21.3 + 8.6} \approx 0.71θA(1)=21.3+8.621.3≈0.71
  • θB(1)=11.711.7+8.4≈0.58\theta_B^{(1)} = \frac{11.7}{11.7 + 8.4} \approx 0.58θB(1)=11.7+8.411.7≈0.58

步骤 3:迭代

使用更新后的 θA(1)\theta_A^{(1)}θA(1) 和 θB(1)\theta_B^{(1)}θB(1) 回到 E 步,重新计算权重,再进入 M 步更新参数。

重复该过程,直到参数 θ\thetaθ 的变化非常小(收敛)。

3. 核心公式总结

在数学上,EM 算法实际上是在不断最大化似然函数的下界(ELBO)。

  1. E-Step: 计算隐变量 ZZZ 的后验概率分布:
    Qi(z(i))=P(z(i)∣x(i);θ)Q_i(z^{(i)}) = P(z^{(i)} | x^{(i)}; \theta)Qi(z(i))=P(z(i)∣x(i);θ)
  2. M-Step: 最大化似然估计的期望值:θ(j+1)=arg⁡max⁡θ∑i∑z(i)Qi(z(i))log⁡P(x(i),z(i);θ)Qi(z(i))\theta^{(j+1)} = \arg \max_{\theta} \sum_{i} \sum_{z^{(i)}} Q_i(z^{(i)}) \log \frac{P(x^{(i)}, z^{(i)}; \theta)}{Q_i(z^{(i)})}θ(j+1)=argθmaxi∑z(i)∑Qi(z(i))logQi(z(i))P(x(i),z(i);θ)

4. 为什么需要 EM?

  • 无法一步到位: 在含有隐变量的模型(如高斯混合模型 GMM、隐马尔可夫模型 HMM)中,似然函数通常是"和的对数",求导非常困难。
  • 坐标上升: EM 将复杂问题分解,E 步固定参数估算隐变量,M 步固定隐变量分布优化参数,保证了每次迭代似然值都不会下降。

贝叶斯估计 & 贝叶斯学习

贝叶斯估计(Bayesian Estimation)和贝叶斯学习(Bayesian Learning)的核心思想是:将参数看作随机变量,而不是一个固定的常数。

在传统的频率学派看来,硬币正面朝上的概率 θ\thetaθ 是一个死理,只是我们不知道;但在贝叶斯学派看来,θ\thetaθ 本身服从一个分布,我们会根据观察到的数据不断"修正"对这个分布的认知。

1. 贝叶斯估计 (Bayesian Estimation)

核心公式:

P(θ∣D)=P(D∣θ)P(θ)P(D)P(\theta | D) = \frac{P(D | \theta) P(\theta)}{P(D)}P(θ∣D)=P(D)P(D∣θ)P(θ)

  • Prior (P(θ)P(\theta)P(θ)): 先验概率。在看到数据前,你对参数的猜测。
  • Likelihood (P(D∣θ)P(D | \theta)P(D∣θ)): 似然概率。给定参数下,观察到当前数据的可能性。
  • Posterior (P(θ∣D)P(\theta | D)P(θ∣D)): 后验概率。看到数据后,你对参数的新认知。

举例:判断硬币是否均匀

假设你手里有一枚硬币,你想估计它正面朝上的概率 θ\thetaθ。

  1. 设定先验 (Prior):
    你根据常识认为硬币通常是均匀的。于是你设定 θ\thetaθ 服从一个中心在 0.5 附近的分布(比如 Beta 分布)。
  2. 收集数据 (Data):
    你投掷了 10 次,发现 8 次正面,2 次反面。
  3. 计算后验 (Posterior):
    • 频率学派 (MLE): 直接断定 θ=0.8\theta = 0.8θ=0.8。
    • 贝叶斯估计: 它会结合你的"先验(0.5)"和"数据(0.8)"。
    • 结果: 最终得到的后验分布可能中心在 0.7 左右。它既承认了数据反映出的倾向,也保留了"硬币可能没那么极端"的先验直觉。

2. 贝叶斯学习 (Bayesian Learning)

贝叶斯学习通常指在机器学习任务中,利用贝叶斯推断来预测新样本。它不只是给出一个最优的 θ\thetaθ(那是 MAP 极大后验估计),而是考虑所有可能的 θ\thetaθ 及其概率

举例:垃圾邮件预测

假设我们要根据"免费"这个词来预测邮件是否为垃圾邮件。

  1. 学习阶段:
    我们不只是算一个固定的概率 P(垃圾∣"免费")P(\text{垃圾} | \text{"免费"})P(垃圾∣"免费")。贝叶斯学习会维护一个关于参数的完整分布。它会从历史数据中学习到:当样本量很少时,我们对"免费即垃圾"的结论保持怀疑;随着数据增多,这个概率分布会变得越来越"瘦且高"(即越来越确定)。
  2. 预测阶段 (Bayesian Prediction):
    当新邮件到来时,贝叶斯学习会对所有可能的参数取值进行加权平均(积分):
    P(ynew∣D)=∫P(ynew∣θ)P(θ∣D)dθP(y_{new} | D) = \int P(y_{new} | \theta) P(\theta | D) d\thetaP(ynew∣D)=∫P(ynew∣θ)P(θ∣D)dθ
    这比只用一个固定参数预测要稳健得多,因为它考虑了模型本身的不确定性。

3. 三者的直观对比

为了方便你理解(尤其是对应你正在学习的机器学习课程),我们将 MLE、MAP 和贝叶斯估计放在一起:

特性 极大似然估计 (MLE) 极大后验估计 (MAP) 贝叶斯估计
对待参数的态度 固定常数 随机变量 随机变量
是否考虑先验
输出结果 一个数值(点估计) 一个数值(点估计) 一个概率分布
计算复杂度 低(求导即可) 高(通常涉及复杂的积分或采样)
哲学观 "数据决定一切" "数据 + 经验,取最可能的" "保留所有可能性,按概率加权"

4. 为什么要用贝叶斯方法?

作为计算机专业的学生,你可能会在以下场景发现它的强大:

  • 小样本学习: 当数据很少时,MLE 极易过拟合(比如投两次都是正面,MLE 会说概率是 100%),而贝叶斯方法通过先验知识能有效"拉回"偏差。
  • 不确定性量化: 在自动驾驶或医疗诊断中,我们不仅需要知道"结果是什么",更需要知道"AI 对这个结果有多大把握"。贝叶斯输出的分布宽度就是不确定性的度量。

极大似然估计 & 贝叶斯估计

极大似然估计(MLE)和贝叶斯估计(Bayesian Estimation)最本质的区别在于:你是否相信"先验经验"以及你如何看待"参数"本身。

我们可以用一个简单的**"投篮命中率"**例子来彻底理清两者的区别。


1. 核心哲学区别

维度 极大似然估计 (MLE) 贝叶斯估计 (Bayesian)
参数观 参数 θ\thetaθ 是固定且唯一的真值。 参数 θ\thetaθ 是随机变量,服从某种分布。
数据观 数据是随机的,我们要让当前数据出现概率最大。 数据是确定的(观察到的),我们要据此修正对参数的认知。
依赖项 只看实验数据 实验数据 + 先验经验
输出结果 一个确定的数值(点估计)。 一个概率分布(后验分布)。

2. 举例说明:库里的投篮命中率

假设我们要估计斯蒂芬·库里(Stephen Curry)的三分命中率 θ\thetaθ。

场景:某场比赛库里手感不佳,前 3 投 0 中。

方式 A:极大似然估计 (MLE)
  • 逻辑: "我只相信我眼前的看到的。"
  • 计算: 既然 3 投 0 中,那么为了让这个结果发生的概率最大,θ\thetaθ 必须等于 0。
  • 结论: θMLE=0\theta_{MLE} = 0θMLE=0
  • 评价: 显然这不符合常理。如果数据量极小(只有 3 次),MLE 极易产生严重的过拟合
方式 B:贝叶斯估计 (Bayesian)
  • 逻辑: "虽然他这几球没进,但我知道他是历史射手,他平时命中率在 40% 左右。"
  • 计算过程:
    1. 先验 (Prior): 在比赛开始前,我根据历史数据认为 θ\thetaθ 服从一个中心在 0.4 附近的分布。
    2. 似然 (Likelihood): 这一场 3 投 0 中的数据。
    3. 后验 (Posterior): 结合先验和数据。因为 3 投 0 中的样本量太小,无法撼动强大的先验,计算出的后验分布中心可能微调到了 0.38。
  • 结论: θBayesian≈0.38\theta_{Bayesian} \approx 0.38θBayesian≈0.38(这是一个分布,或者取分布的期望)。
  • 评价: 更加稳健,即使在小样本下也不会给出极端荒谬的结论。

3. 数学表达的直观理解

极大似然估计 (MLE)

它寻找的是让似然函数 P(D∣θ)P(D|\theta)P(D∣θ) 最大化的 θ\thetaθ:
θ^MLE=arg⁡max⁡θP(D∣θ)\hat{\theta}{MLE} = \arg \max{\theta} P(D|\theta)θ^MLE=argθmaxP(D∣θ)

(翻译:哪个 θ\thetaθ 最能解释眼前这些数据?)

贝叶斯估计

它计算的是给定数据后,参数 θ\thetaθ 的概率分布 P(θ∣D)P(\theta|D)P(θ∣D):

P(θ∣D)=P(D∣θ)P(θ)P(D)P(\theta|D) = \frac{P(D|\theta)P(\theta)}{P(D)}P(θ∣D)=P(D)P(D∣θ)P(θ)

(翻译:结合我的老经验 P(θ)P(\theta)P(θ) 和新数据 P(D∣θ)P(D|\theta)P(D∣θ),现在的 θ\thetaθ 应该长什么样?)


4. 为什么 CS 学生要关注这个?

在你的 AI 学习路径(尤其是吴恩达的课程)中,你会发现:

  1. 过拟合与正则化:
    当你给线性回归加上 L2 正则化(Ridge) 时,本质上你就是在做贝叶斯估计。L2 正则化相当于给模型参数加了一个"均值为 0 的高斯分布"作为先验,告诉模型:"虽然数据让你把参数调得很大,但我倾向于认为参数应该接近 0。"
  2. 数据量级:
    • 数据量巨大时,MLE 和贝叶斯估计的结果会趋于一致。因为强大的数据证据会抹平先验的影响。
    • 数据量稀疏时(比如医疗稀有病诊断),贝叶斯方法是救命稻草。

5. 总结对比

场景 推荐算法 原因
数据量极大(Big Data) MLE 计算简单,速度快,结果准确。
数据量很小 贝叶斯 避免极端结果,利用先验知识辅助决策。
需要知道"不确定性" 贝叶斯 它能告诉你"我不确定",而 MLE 永远只给你一个死数字。

既然你在学习计算机视觉和机器学习,你想了解一下在神经网络中,如何通过"Dropout"这种技术来近似模拟贝叶斯的不确定性吗?

极大似然估计

极大似然估计(Maximum Likelihood Estimation, MLE )的核心逻辑是:"既然这件事发生了,那它发生的概率一定是最大的。"

为了让你清晰地看到计算过程,我们用最基础的**"硬币模型(伯努利分布)"**来演示。虽然直觉告诉你结果是"正面次数/总次数",但严谨的数学推导分为以下 4 个标准步骤。


1. 案例背景:不均匀的硬币

假设你手里有一枚硬币,正面朝上的概率为 θ\thetaθ(这是我们要估计的参数)。

你进行了 10 次实验,结果如下:

  • 7 次正面 (H)
  • 3 次反面 (T)
    问题: θ\thetaθ 取什么值时,最能解释这"7正3反"的观测结果?

2. MLE 计算的四个标准动作

第一步:写出似然函数 L(θ)L(\theta)L(θ)

似然函数就是"在参数 θ\thetaθ 下,观察到当前这组数据"的总概率。

由于每次投掷是独立同分布的,总概率等于每次概率的乘积:
L(θ)=P(H)7×P(T)3=θ7×(1−θ)3L(\theta) = P(H)^7 \times P(T)^3 = \theta^7 \times (1-\theta)^3L(θ)=P(H)7×P(T)3=θ7×(1−θ)3

第二步:取对数得到对数似然 l(θ)l(\theta)l(θ)

在数学上,直接对 L(θ)L(\theta)L(θ) 求导比较麻烦(乘法导数很复杂)。因为 log⁡\loglog 是单调递增函数,使 L(θ)L(\theta)L(θ) 最大的 θ\thetaθ 也一定会使 log⁡L(θ)\log L(\theta)logL(θ) 最大。

取对数后,乘法变加法:
l(θ)=ln⁡(θ7(1−θ)3)=7ln⁡θ+3ln⁡(1−θ)l(\theta) = \ln(\theta^7 (1-\theta)^3) = 7\ln\theta + 3\ln(1-\theta)l(θ)=ln(θ7(1−θ)3)=7lnθ+3ln(1−θ)

第三步:求导

我们要找到这个函数的顶点,即斜率为 0 的点。对 θ\thetaθ 求一阶导数:
dldθ=7θ+3⋅11−θ⋅(−1)=7θ−31−θ\frac{dl}{d\theta} = \frac{7}{\theta} + 3 \cdot \frac{1}{1-\theta} \cdot (-1) = \frac{7}{\theta} - \frac{3}{1-\theta}dθdl=θ7+3⋅1−θ1⋅(−1)=θ7−1−θ3

注: 这里用到了复合函数求导法则 ddxln⁡(1−x)=−11−x\frac{d}{dx}\ln(1-x) = -\frac{1}{1-x}dxdln(1−x)=−1−x1。

第四步:令导数为 0,解出 θ^\hat{\theta}θ^

7θ−31−θ=0\frac{7}{\theta} - \frac{3}{1-\theta} = 0θ7−1−θ3=0
7(1−θ)=3θ7(1-\theta) = 3\theta7(1−θ)=3θ
7−7θ=3θ7 - 7\theta = 3\theta7−7θ=3θ
10θ=7  ⟹  θ^MLE=0.710\theta = 7 \implies \hat{\theta}_{MLE} = 0.710θ=7⟹θ^MLE=0.7

3. 为什么 MLE 如此重要?

在你的计算机科学和 AI 学习中,MLE 是几乎所有模型的基础:

  1. 线性回归: 当我们假设误差服从高斯分布(正态分布)时,使用 最小二乘法 (OLS) 得到的解,本质上就是该模型的 MLE 解
  2. 逻辑回归 (Logistic Regression): 逻辑回归的损失函数(交叉熵损失)就是通过对数似然函数推导出来的。
  3. 深度学习: 神经网络在分类任务中使用交叉熵作为损失函数,其本质也是在最大化似然概率。

4. 总结:MLE 的"三部曲"套路

无论模型多复杂(即使是高维的高斯分布或复杂的神经网络),MLE 的计算套路永远是:

  1. 列概率(Likelihood)
  2. 取对数(Log-Likelihood)
  3. 求极值(Derivative = 0)

朴素贝叶斯分类计算举例

在理解了贝叶斯估计之后,再看贝叶斯分类器 就会非常直观。它们的核心逻辑都是一样的:利用先验知识和观测到的证据,计算某个对象属于某一类别的概率。


1. 什么是贝叶斯分类器 (Bayesian Classifier)?

贝叶斯分类器是一个统称。它的核心思想是:对于给定的一个样本 xxx,我们计算它属于每一个类别 CiC_iCi 的概率 P(Ci∣x)P(C_i|x)P(Ci∣x),然后把样本划归到概率最大 的那个类别中。

根据贝叶斯公式:
P(Ci∣x)=P(x∣Ci)P(Ci)P(x)P(C_i | x) = \frac{P(x | C_i) P(C_i)}{P(x)}P(Ci∣x)=P(x)P(x∣Ci)P(Ci)

  • P(Ci)P(C_i)P(Ci) (先验概率):在没看到这个样本特征之前,根据历史经验,某一类样本出现的比例。
  • P(x∣Ci)P(x | C_i)P(x∣Ci) (似然概率) :如果已知一个样本属于 CiC_iCi 类,那么它呈现出特征 xxx 的概率是多少。
  • P(Ci∣x)P(C_i | x)P(Ci∣x) (后验概率) :看到特征 xxx 后,它属于 CiC_iCi 的概率。

2. 为什么要加"朴素"两个字?(Naive Bayes)

在现实中,样本特征 xxx 通常不是单一的,而是一个向量 x=(x1,x2,...,xn)x = (x_1, x_2, \dots, x_n)x=(x1,x2,...,xn)。

计算 P(x∣Ci)P(x | C_i)P(x∣Ci)(即 P(x1,x2,...,xn∣Ci)P(x_1, x_2, \dots, x_n | C_i)P(x1,x2,...,xn∣Ci))极其困难。因为你要考虑特征之间所有的相关性(比如"下雨"和"阴天"是相关的),这需要海量的数据才能准确估算。

"朴素" (Naive) 的假设是:

假设所有的特征 x1,x2,...,xnx_1, x_2, \dots, x_nx1,x2,...,xn 之间相互独立,互不影响。

于是:
P(x1,x2,...,xn∣Ci)=P(x1∣Ci)×P(x2∣Ci)×⋯×P(xn∣Ci)P(x_1, x_2, \dots, x_n | C_i) = P(x_1|C_i) \times P(x_2|C_i) \times \dots \times P(x_n|C_i)P(x1,x2,...,xn∣Ci)=P(x1∣Ci)×P(x2∣Ci)×⋯×P(xn∣Ci)

这个假设虽然在现实中往往不成立(所以叫它"朴素"或"天真"),但它极大地简化了计算,且在很多场景(如文本分类)中效果惊人地好。


3. 举例说明:垃圾邮件过滤

我们要判断一封含有词语 "中奖""点击" 的邮件是否为 "垃圾邮件"

已知数据(训练集统计):
  • 历史邮件中:垃圾邮件占 40% (P(S)=0.4P(S) = 0.4P(S)=0.4),正常邮件占 60% (P(H)=0.6P(H) = 0.6P(H)=0.6)。
  • 垃圾邮件中:出现"中奖"的概率是 0.5,出现"点击"的概率是 0.2。
  • 正常邮件中:出现"中奖"的概率是 0.01,出现"点击"的概率是 0.05。
计算步骤:

第一步:计算它是垃圾邮件 (Spam) 的概率分子:
P(S)×P(中奖∣S)×P(点击∣S)=0.4×0.5×0.2=0.04P(S) \times P(\text{中奖}|S) \times P(\text{点击}|S) = 0.4 \times 0.5 \times 0.2 = 0.04P(S)×P(中奖∣S)×P(点击∣S)=0.4×0.5×0.2=0.04

第二步:计算它是正常邮件 (Healthy) 的概率分子:
P(H)×P(中奖∣H)×P(点击∣H)=0.6×0.01×0.05=0.0003P(H) \times P(\text{中奖}|H) \times P(\text{点击}|H) = 0.6 \times 0.01 \times 0.05 = 0.0003P(H)×P(中奖∣H)×P(点击∣H)=0.6×0.01×0.05=0.0003
第三步:比较并判别:

  • 垃圾邮件的概率得分 (0.04) 远大于正常邮件 (0.0003)。
  • 结论: 这封邮件被分类器判定为 "垃圾邮件"

4. 常见的三种朴素贝叶斯模型

根据特征 xxx 的分布不同,我们通常使用不同的朴素贝叶斯变体:

  1. 高斯朴素贝叶斯 (Gaussian NB)
    • 适用于特征是连续数值(如身高、体重)。
    • 假设每个特征服从正态分布。
  2. 多项式朴素贝叶斯 (Multinomial NB)
    • 适用于计数数据(如一个单词在文章中出现的次数)。
    • 常用于文本分类。
  3. 伯努利朴素贝叶斯 (Bernoulli NB)
    • 适用于布尔/二元特征(如某个词"出现"或"没出现",不计次数)。

5. 总结:朴素贝叶斯的优缺点

  • 优点:
    • 速度快:计算量极小,只需统计频率。
    • 对小规模数据表现良好
    • 能处理多分类任务
  • 缺点:
    • 特征独立性假设:如果特征之间关联性极强(例如"广东人"和"爱吃早茶"),朴素贝叶斯的效果会打折扣。
    • 零频率问题 :如果某个词在训练集中没出现过,概率就会变成 0。针对这个问题,我们通常使用 "拉普拉斯平滑 (Laplace Smoothing)"(即在分子分母各加一个常数,本质上也是引入了一个先验)。

你看,这和我们之前讲的贝叶斯估计是不是串联起来了?拉普拉斯平滑其实就是给分类器加了一个"先验",让它不要因为没见过某个词就武断地认为概率是 0。

相关推荐
dulu~dulu16 小时前
机器学习---计算题总结
人工智能·机器学习·支持向量机·集成学习·贝叶斯分类器
迷你可可小生16 小时前
常见神经网络模块
人工智能·深度学习
大厂技术总监下海16 小时前
你的个人AI工作站已就绪:Ollama开源框架,支持多模态、可定制、一键部署
人工智能·机器学习·开源
行业探路者16 小时前
如何利用二维码提升产品画册的制作与传播?
大数据·人工智能·安全·二维码·设备巡检
安达发公司16 小时前
安达发|给“工业心脏”装上新大脑:APS生产排产的硬核智慧
大数据·人工智能·aps高级排程·aps排程软件·生产计划排单软件·aps生产排产
chatexcel16 小时前
ChatExcel一年完成3轮融资,构建全模态数据链路平台,定义 AI for Data
人工智能
悦数图数据库17 小时前
“复旦大学—杭州悦数先进金融图技术校企联合研究中心年度总结会”圆满举行
大数据·数据库·人工智能
星浩AI17 小时前
LCEL:打造可观测、可扩展、可部署的 LangChain 应用
人工智能·后端·python