7.1 贝叶斯决策论

贝叶斯决策论是一种基于概率的方法,用于在分类任务中根据已知的概率信息和误判损失选择最优类别。它的核心思想是通过最小化决策风险来达到最佳决策效果。


1. 基本概念

1.1 类别标记

  • 假设有 NN 种可能的类别,记为
    Y={c1,c2,,cN}\mathcal{Y} = \{c_1, c_2, \ldots, c_N\}

1.2 误判损失

  • 定义 λij\lambda_{ij} 为将真实类别为 cjc_j 的样本误分为 cic_i 时的损失。

1.3 后验概率

  • P(cix)P(c_i \mid \boldsymbol{x}) 表示在给定样本 x\boldsymbol{x} 的情况下,样本属于类别 cic_i 的概率。

2. 条件风险与总体风险

2.1 条件风险

  • 对于某个样本 x\boldsymbol{x},若将其归类为 cic_i,产生的期望损失为

    R(cix)=j=1NλijP(cjx)R(c_i \mid \boldsymbol{x}) = \sum_{j=1}^{N} \lambda_{ij} P(c_j \mid \boldsymbol{x})

2.2 总体风险

  • 总体风险是所有样本上条件风险的期望:

    R(h)=Ex[R(h(x)x)]R(h) = \mathbb{E}_{\boldsymbol{x}}[R(h(\boldsymbol{x}) \mid \boldsymbol{x})]

  • 为了最小化总体风险,只需在每个样本上选择使条件风险最小的类别。

3. 贝叶斯判定准则

  • 判定准则定义:
    对每个样本 x\boldsymbol{x},选择类别

    h(x)=argmincYR(cx)h^*(\boldsymbol{x}) = \underset{c \in \mathcal{Y}}{\arg\min} R(c \mid \boldsymbol{x})

  • 贝叶斯最优分类器:
    h(x)h^*(\boldsymbol{x}) 被称为贝叶斯最优分类器,而其对应的风险 R(h)R(h^*) 称为贝叶斯风险。

4. 最小化分类错误率的情况

4.1 错误率损失函数

  • 当目标是最小化分类错误率时,误判损失可定义为:

    λij={0,若 i=j1,若 ij\lambda_{ij} = \begin{cases} 0, & \text{若 } i = j \\ 1, & \text{若 } i \neq j \end{cases}

这表示:

  • 如果预测正确(即 i=ji = j),损失为 0;
  • 如果预测错误(即 iji \neq j),损失为 1。

4.2 条件风险的简化

对于某一候选类别 cc(我们可以把 cc 当作 cic_i),代入损失函数后,条件风险变为:

R(cx)=j=1NλijP(cjx)R(c \mid \boldsymbol{x}) = \sum_{j=1}^{N} \lambda_{ij} P(c_j \mid \boldsymbol{x})

注意到:

  • j=ij = i(即 j=cj = c)时,λii=0\lambda_{ii} = 0,对应项为 0×P(cx)=00 \times P(c \mid \boldsymbol{x}) = 0
  • jij \neq i时,λij=1\lambda_{ij} = 1,对应项为 1×P(cjx)=P(cjx)1 \times P(c_j \mid \boldsymbol{x}) = P(c_j \mid \boldsymbol{x})

因此,上式可以写成:

R(cx)=jcP(cjx)R(c \mid \boldsymbol{x}) = \sum_{j \neq c} P(c_j \mid \boldsymbol{x})

由于所有类别的后验概率之和为 1,即

j=1NP(cjx)=1\sum_{j=1}^{N} P(c_j \mid \boldsymbol{x}) = 1

那么可以将上式拆分为:

jcP(cjx)=1P(cx)\sum_{j \neq c} P(c_j \mid \boldsymbol{x}) = 1 - P(c \mid \boldsymbol{x})

因此,我们得到条件风险的简化形式:

R(cx)=1P(cx)R(c \mid \boldsymbol{x}) = 1 - P(c \mid \boldsymbol{x})

4.3 最优决策

贝叶斯决策准则要求在每个样本 x\boldsymbol{x} 上选择使条件风险最小的类别:

h(x)=argmincYR(cx)h^*(\boldsymbol{x}) = \underset{c \in \mathcal{Y}}{\arg\min} R(c \mid \boldsymbol{x})

将我们推导出的 R(cx)=1P(cx)R(c \mid \boldsymbol{x}) = 1 - P(c \mid \boldsymbol{x}) 代入,可以发现最小化 R(cx)R(c \mid \boldsymbol{x}) 等价于最大化 P(cx)P(c \mid \boldsymbol{x})

h(x)=argmaxcYP(cx)h^*(\boldsymbol{x}) = \underset{c \in \mathcal{Y}}{\arg\max} P(c \mid \boldsymbol{x})

这就是“选择后验概率最大的类别”这一结论的来源。


5. 实际应用中的挑战与解决方法

5.1 后验概率的估计难题

  • 理论上需要知道后验概率 P(cx)P(c \mid \boldsymbol{x}),但在实际中直接获得这一概率往往十分困难。

5.2 两种主要策略

  • 判别式模型
    • 方法: 直接建立 P(cx)P(c \mid \boldsymbol{x}) 的模型。
    • 代表模型: 支持向量机、神经网络等。
  • 生成式模型
    • 方法: 先建立联合概率 P(x,c)P(\boldsymbol{x}, c),再利用贝叶斯定理推导后验概率。
    • 代表模型: 朴素贝叶斯分类器等。

6. 生成式模型中的贝叶斯定理

  • 后验概率可以利用贝叶斯定理表示为:

    P(cx)=P(c)P(xc)P(x)P(c \mid \boldsymbol{x}) = \frac{P(c) P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}

6.1 各部分解释

  • 类先验概率 P(c)P(c) 表示样本在整个样本空间中属于类别 cc 的比例,通常通过训练数据中各类样本的频率估计。

  • 类条件概率 P(xc)P(\boldsymbol{x} \mid c) 表示在类别 cc 下样本 x\boldsymbol{x} 出现的概率。

    • 由于涉及多个属性的联合概率,当特征维度较高时,直接估计可能遇到困难。
    • 常用方法包括假设特征分布(如高斯分布)或采用非参数估计方法。
  • 证据 P(x)P(\boldsymbol{x})
    用于归一化,使所有类别的后验概率和为 1。对于给定样本 x\boldsymbol{x},该项与类别无关。


7. 总结

贝叶斯决策论为分类任务提供了一个系统的方法,通过考虑样本在各类别下的后验概率和相应的误判损失,实现了风险最小化。

  • 理想情况: 当所有相关概率已知时,通过贝叶斯判定准则可以选择最优类别。
  • 实际问题: 直接获得后验概率通常较难,机器学习中常通过判别式和生成式模型来估计这些概率,从而实现近似最优分类。

7.2 极大似然估计

极大似然估计(Maximum Likelihood Estimation,简称MLE)是一种通过已知的概率模型形式,根据观测到的数据来估计模型参数的方法。下面用通俗易懂的语言解释这个过程:


1. 基本思路

  • 假设模型
    我们首先假设数据(比如某一类别的数据)符合某种确定的概率分布形式,比如高斯分布、伯努利分布等。这种概率分布通常由一些参数决定(例如高斯分布的均值和方差)。

  • 目标
    我们的目标是从训练数据中找出一组参数,使得在这个参数下,观察到的数据出现的概率(即“似然”)最大。简单来说,就是找出最能解释数据的参数。


2. 似然函数

  • 定义似然函数
    假设对类别 的样本集合记为 ,我们认为这些样本都是独立同分布的,根据独立性假设,整个数据集 DcD_c 在参数 θc\boldsymbol{\theta}_c 下出现的联合概率(似然)就是每个样本出现概率的乘积:

    P(Dcθc)=xDcP(xθc)P(D_c \mid \boldsymbol{\theta}_c)=\prod_{\boldsymbol{x} \in D_c} P(\boldsymbol{x} \mid \boldsymbol{\theta}_c)

    这个乘积称为似然函数,反映了在给定参数下观测到数据的“可能性”。

  • 为什么用对数似然
    由于多个小概率相乘容易导致数值下溢(结果非常小),我们通常对似然函数取对数,把乘法变成加法:

    LL(θc)=logP(Dcθc)=xDclogP(xθc)LL(\boldsymbol{\theta}_c)=\log P(D_c \mid \boldsymbol{\theta}_c)=\sum_{\boldsymbol{x} \in D_c} \log P(\boldsymbol{x} \mid \boldsymbol{\theta}_c)

    这样不仅计算更稳定,且求和更容易处理。


3. 参数估计

  • 求最优参数
    我们的目标就是找到一组参数 θ^c\hat{\boldsymbol{\theta}}_c,使得对数似然函数 LL(θc)LL(\boldsymbol{\theta}_c) 达到最大值:

    θ^c=argmaxθcLL(θc)\hat{\boldsymbol{\theta}}_c = \underset{\boldsymbol{\theta}_c}{\arg\max}\, LL(\boldsymbol{\theta}_c)

    这意味着在所有可能的参数中,我们选择那个使得训练数据出现的可能性最大的参数值。

  • 高斯分布的例子
    如果我们假设连续属性数据服从高斯分布,即

    p(xc)N(μc,σc2)p(\boldsymbol{x} \mid c) \sim \mathcal{N}(\boldsymbol{\mu}_c, \boldsymbol{\sigma}_c^2)

    那么通过极大似然估计,我们可以得到:

    • 均值的估计:

      μ^c=1DcxDcx\hat{\boldsymbol{\mu}}_c = \frac{1}{|D_c|} \sum_{\boldsymbol{x} \in D_c} \boldsymbol{x}

      也就是所有样本的平均值。
    • 方差的估计:

      σ^c2=1DcxDc(xμ^c)(xμ^c)T\hat{\boldsymbol{\sigma}}_c^2 = \frac{1}{|D_c|} \sum_{\boldsymbol{x} \in D_c} (\boldsymbol{x} - \hat{\boldsymbol{\mu}}_c)(\boldsymbol{x} - \hat{\boldsymbol{\mu}}_c)^{\mathrm{T}}

      也就是样本与均值差值的平方的平均值。

4. 注意事项

  • 依赖模型假设
    这种参数化的方法的前提是我们所假定的概率分布形式与真实数据分布相匹配。如果假设不准确,估计的参数可能会偏离真实值。

  • 适用性
    极大似然估计是一种经典、直观的方法,在很多实际问题中都能很好地估计参数,但在模型假设不确定或数据量不足时,其结果也可能不够理想。


7.3 朴素贝叶斯原理

1.朴素贝叶斯分类器原理

在实际应用中,利用贝叶斯公式估计后验概率 P(cx)P(c \mid \boldsymbol{x}) 面临一个主要困难:类条件概率P(xc)P(\boldsymbol{x} \mid c)是所有属性上的联合概率,很难从有限的训练样本直接估计得到。为解决这个问题,朴素贝叶斯分类器引入了“属性条件独立性假设”,即对于已知类别,假设所有属性相互独立,每个属性独立地对分类结果产生影响。

基于这一假设,贝叶斯公式

P(cx)=P(c)P(xc)P(x)P(c \mid \boldsymbol{x}) = \frac{P(c)P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}

可改写为

P(cx)=P(c)P(x)i=1dP(xic)P(c \mid \boldsymbol{x}) = \frac{P(c)}{P(\boldsymbol{x})} \prod_{i = 1}^{d} P(x_i \mid c)

其中 dd 为属性数目,xix_ix\boldsymbol{x} 在第 ii 个属性上的取值( xix_i 实际上是一个“属性-值”对,例如“色泽=青绿”)。由于对于所有类别P(x)P(\boldsymbol{x}) 相同,根据贝叶斯判定准则,朴素贝叶斯分类器的表达式为

hnb(x)=argmaxcYP(c)i=1dP(xic)h_{nb}(\boldsymbol{x}) = \underset{c \in \mathcal{Y}}{\arg\max} P(c) \prod_{i = 1}^{d} P(x_i \mid c)

2. 朴素贝叶斯分类器的训练过程

训练朴素贝叶斯分类器的主要任务是基于训练集 DD 估计类先验概率 P(c)P(c),并为每个属性估计条件概率 P(xic)P(x_i \mid c)。具体方法如下:

  1. 类先验概率 P(c)P(c) 的估计:令 DcD_c 表示训练集 DD 中第 cc 类样本组成的集合,若样本充足且独立同分布,则类先验概率可通过 P(c)=DcDP(c) = \frac{|D_c|}{|D|} 进行估计。
  2. 条件概率 P(xic)P(x_i \mid c) 的估计
    • 离散属性:令 Dc,xiD_{c,x_i} 表示 DcD_c 中在第 ii 个属性上取值为 xix_i 的样本组成的集合,条件概率 P(xic)P(x_i \mid c) 可估计为 P(xic)=Dc,xiDcP(x_i \mid c) = \frac{|D_{c,x_i}|}{|D_c|}
    • 连续属性:假定 p(xic)N(μc,i,σc,i2)p(x_i \mid c) \sim \mathcal{N}(\mu_{c,i}, \sigma_{c,i}^2),其中 μc,i\mu_{c,i}σc,i2\sigma_{c,i}^2 分别是第 cc 类样本在第 ii 个属性上取值的均值和方差,则 p(xic)=12πσc,iexp((xiμc,i)22σc,i2)p(x_i \mid c) = \frac{1}{\sqrt{2\pi}\sigma_{c,i}} \exp\left(-\frac{(x_i - \mu_{c,i})^2}{2\sigma_{c,i}^2}\right)

3. 示例:训练朴素贝叶斯分类器

利用西瓜数据集 3.0 数据集:

image.png

编号 色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜
测1 青绿 蜷缩 浊响 清晰 凹陷 硬滑 0.697 0.460
  1. 估计类先验概率 P(c)P(c)

    • 好瓜 8 个, 坏瓜 9 个。
    • P(好瓜=)=8170.471P(好瓜 = 是) = \frac{8}{17} \approx 0.471
    • P(好瓜=)=9170.529P(好瓜 = 否) = \frac{9}{17} \approx 0.529
  2. 为每个属性估计条件概率 P(xic)P(x_i \mid c)

    • 对于离散属性:
      • 青绿 6 个, 3好,3坏
      • P青绿=P(色泽=青绿好瓜=)=38=0.375P_{青绿|是} = P(色泽 = 青绿 \mid 好瓜 = 是) = \frac{3}{8} = 0.375
      • P青绿=P(色泽=青绿好瓜=)=390.333P_{青绿|否} = P(色泽 = 青绿 \mid 好瓜 = 否) = \frac{3}{9} \approx 0.333
    • 对于连续属性,如
      • 正态分布的概率密度函数表达式为:p(x)=12πσexp((xμ)22σ2)p(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right)
      • μ=(0.697+0.774+0.634+0.608+0.556+0.403+0.481+0.437)/8=0.57375\mu = (0.697+0.774+0.634+0.608+0.556+0.403+0.481+0.437)/8 = 0.57375
      • 样本标准差σ\sigma的计算公式为:
      • p密度:0.697=p(密度=0.697好瓜=)=12π0.129exp((0.6970.574)220.1292)1.959p_{密度:0.697|是} = p(密度 = 0.697 \mid 好瓜 = 是) = \frac{1}{\sqrt{2\pi} \cdot 0.129} \exp\left(-\frac{(0.697 - 0.574)^2}{2 \cdot 0.129^2}\right) \approx 1.959
  3. 计算分类概率并进行判别

绿

绿

由于0.038>6.80×1050.038 > 6.80 \times 10^{-5},因此朴素贝叶斯分类器将测试样本“测1”判别为“好瓜”。

4. 拉普拉斯修正

在实际训练中,若某个属性值在训练集中没有与某个类同时出现过,直接基于常规公式进行概率估计会出现问题。例如,对于“敲声 = 清脆”的测试例,P清脆=P(敲声=清脆好瓜=)=08=0P_{清脆|是} = P(敲声 = 清脆 \mid 好瓜 = 是) = \frac{0}{8} = 0,这会导致连乘式计算出的概率值为零,进而无论该样本其他属性表现如何,分类结果都将是“好瓜 = 否”,这显然不合理。

为避免这种情况,在估计概率值时通常采用“拉普拉斯修正”。令NN表示训练集DD中可能的类别数,NiN_i 表示第 ii 个属性可能的取值数(比如 清脆、沉闷、浑浊三种),则类先验概率和条件概率的计算公式分别修正为:

  • P^(c)=Dc+1D+N\hat{P}(c) = \frac{|D_c| + 1}{|D| + N}
  • P^(xic)=Dc,xi+1Dc+Ni\hat{P}(x_i \mid c) = \frac{|D_{c,x_i}| + 1}{|D_c| + N_i}

例如,在西瓜数据集的例子中:

  • P^(好瓜=)=8+117+20.474\hat{P}(好瓜 = 是) = \frac{8 + 1}{17 + 2} \approx 0.474
  • P^(好瓜=)=9+117+20.526\hat{P}(好瓜 = 否) = \frac{9 + 1}{17 + 2} \approx 0.526
  • P^青绿=P^(色泽=青绿好瓜=)=3+18+30.364\hat{P}_{青绿|是} = \hat{P}(色泽 = 青绿 \mid 好瓜 = 是) = \frac{3 + 1}{8 + 3} \approx 0.364
  • P^青绿=P^(色泽=青绿好瓜=)=3+19+30.333\hat{P}_{青绿|否} = \hat{P}(色泽 = 青绿 \mid 好瓜 = 否) = \frac{3 + 1}{9 + 3} \approx 0.333
  • P^清脆=P^(敲声=清脆好瓜=)=0+18+30.091\hat{P}_{清脆|是} = \hat{P}(敲声 = 清脆 \mid 好瓜 = 是) = \frac{0 + 1}{8 + 3} \approx 0.091

拉普拉斯修正避免了因训练集样本不充分导致概率估值为零的问题,并且在训练集变大时,修正过程引入的先验影响会逐渐减小,使得估值趋近于实际概率值。

5. 朴素贝叶斯分类器的使用方式

对预测速度要求较高的任务:对于给定的训练集,可事先计算并存储朴素贝叶斯分类器涉及的所有概率估值,预测时只需进行“查表”操作即可完成判别。

7.4 半朴素贝叶斯分类器

1. 为什么需要半朴素贝叶斯?

  • 朴素贝叶斯的缺陷:假设所有属性完全独立,但现实中属性之间常有依赖(比如“下雨”和“带伞”相关)。
  • 完全联合概率的困境:若考虑所有属性依赖,计算复杂度会指数级增长(类似“维度灾难”)。

于是,半朴素贝叶斯在独立性假设完全依赖之间找到了折中方案。


2. 核心思想:独依赖估计(ODE)

  • 基本假设:每个属性最多依赖一个其他属性(除了类别)。
  • 公式简化:后验概率计算变为:

    P(cx)P(c)i=1dP(xic,pai)P(c \mid \boldsymbol{x}) \propto P(c) \prod_{i=1}^{d} P(x_i \mid c, pa_i)

    其中 的“父属性”(唯一依赖的属性)。

3. 三种实现ODE的方法

1. SPODE:全体属性共用一个“超父”

  • 原理:所有属性都依赖同一个属性(超父)。
  • 示例:预测西瓜是否好瓜,假设所有属性(颜色、根蒂等)都依赖“敲声”这个超父。
  • 优点:简单,只需选择一个超父。
  • 缺点:若选错超父,效果可能变差。

2. TAN:属性间的树形依赖

  • 原理:用树结构表达属性依赖关系,每个属性最多依赖一个其他属性。
  • 实现步骤
    1. 计算条件互信息 ,衡量已知类别时两属性的相关性。
    2. 构建完全图,边权重为条件互信息。
    3. 生成最大带权生成树(类似Kruskal算法)。
    4. 添加类别节点指向所有属性。
  • 示例:在西瓜数据中,“纹理”和“触感”可能通过条件互信息形成依赖边。

3. AODE:集成多个SPODE模型

  • 原理:让每个属性轮流当超父,集成所有“可靠”的SPODE模型。
  • 公式

    P(cx)i=1,DximdP(c,xi)j=1dP(xjc,xi)P(c \mid \boldsymbol{x}) \propto \sum_{i=1, |D_{x_i}| \geq m'}^{d} P(c, x_i) \prod_{j=1}^{d} P(x_j \mid c, x_i)

    其中 是阈值,过滤样本不足的属性。
  • 示例:在西瓜数据中,分别以“颜色”“根蒂”“敲声”为超父构建SPODE,再取平均。
  • 优点:避免单超父的偏差,鲁棒性强。

4. 高阶依赖的挑战

  • 理论可能:若考虑属性依赖两个其他属性(k=2),可能更准确。
  • 现实限制:估计 需要大量数据。例如:
    • 若属性有10个取值,k=1时需要约10×10×类别数 的样本。
    • k=2时需要约10×10×10×类别数 的样本,数据量指数级增长。

5. 总结

方法 核心思想 优点 缺点
SPODE 所有属性依赖同一超父 简单易实现 超父选择影响大
TAN 树形结构表达强依赖关系 保留最相关依赖 结构复杂
AODE 集成多个超父的SPODE 鲁棒性强,避免偏差 计算量稍大

image.png

7.5 贝叶斯网络

1. 贝叶斯网的基本概念

  • 什么是贝叶斯网?
    贝叶斯网(Bayesian Network),又称信念网,是一种用来表示变量之间依赖关系的概率图模型。它用一个有向无环图(DAG)来表示各个变量(属性)之间的依赖关系,同时用条件概率表(CPT)来描述在已知父节点取值情况下,每个变量的概率分布。

  • 模型组成
    一个贝叶斯网由两部分组成:

    • 结构 GG:图中的每个结点代表一个变量,边表示直接依赖关系。
    • 参数 Θ\Theta:每个结点对应一个条件概率表,表示P(xiπi)P(x_i|\pi_i)(这里πi\pi_i表示结点xix_i的所有父结点)。
  • 联合概率分布
    给定贝叶斯网的结构和参数,所有变量的联合分布可以分解为:

    P(x1,x2,,xd)=i=1dP(xiπi)P(x_1, x_2, \ldots, x_d) = \prod_{i=1}^{d} P(x_i|\pi_i)

    这意味着,只要知道各个变量在给定父节点情况下的概率,就能计算整个系统的联合概率。

image.png


2. 贝叶斯网中的条件独立性

  • 条件独立性
    贝叶斯网通过图结构清晰地表达了各变量之间的条件独立性。例如:
    • 同父结构:若两个变量共享同一个父结点,那么在给定父结点的情况下,这两个变量通常是条件独立的。
    • 顺序结构:例如 xyzx \rightarrow y \rightarrow z,给定中间变量yy时,xxzz互相独立。
    • V型结构(冲撞结构):例如 x1x4x2x_1 \rightarrow x_4 \leftarrow x_2(即两个变量共同影响一个结点)。在没有观察到x4x_4时,x1x_1x2x_2是边缘独立的;一旦观察到x4x_4,它们就变得依赖。

image.png

  • D-分离和道德图
    为了判断图中变量是否条件独立,可以使用**有向分离(D-separation)**的概念。常见方法是先将有向图“道德化”——
    1. 找出所有V型结构,在其父结点之间加边;
    2. 把所有有向边变为无向边,形成道德图
      在道德图中,若从移除一组变量后,两个变量落在不同的连通分支,则它们条件独立。

image.png


3. 贝叶斯网的学习

  • 参数学习
    如果贝叶斯网的结构已知,参数(即各个CPT)可以通过训练数据的计数直接估计,比如使用最大似然估计或加拉普拉斯平滑。

  • 结构学习
    在很多情况下,我们并不知道变量之间的依赖关系,需要从数据中“学习”出合适的结构。常用的方法是:

    • 评分函数方法:定义一个评分函数来衡量一个贝叶斯网对数据的描述效果,常用的评分指标包括最小描述长度(MDL)、AIC、BIC等。
    • 搜索策略:由于所有可能的结构数目巨大,常用贪心搜索(每次只修改一条边)或对结构施加约束(例如限制为树形结构)来缩小搜索空间。

4. 贝叶斯网的推断

  • 推断任务
    给定部分变量的观测值(称为“证据”),利用贝叶斯网推断其他变量的后验概率。例如,在西瓜问题中,观察到色泽、敲声、根蒂后,可以推断“是否好瓜”或“甜度如何”。

  • 推断难点
    精确计算后验概率通常是NP难问题,尤其当网络中变量很多、连接密集时。

  • 近似推断:吉布斯采样
    为了在有限时间内得到近似解,常用吉布斯采样方法:

    • 初始时生成一个符合证据的样本;
    • 然后依次随机更新非证据变量的取值,使得整个状态按马尔可夫链随机游走;
    • 经过大量采样后,统计目标状态出现的频率,就能近似估计后验概率。
      注意:如果贝叶斯网中存在极端概率(接近0或1),可能会导致马尔可夫链收敛变慢甚至不收敛。

5. 总结

  • 核心思想
    贝叶斯网用有向无环图描述变量间的依赖关系,并通过条件概率表定量描述这种依赖,从而将高维联合概率分解为局部条件概率的乘积。

  • 优势
    它清晰表达了条件独立性,有助于减少需要估计的参数数量,降低学习和推断的复杂性。

  • 挑战

    • 结构学习(从数据中推断依赖关系)是一个NP难问题;
    • 精确推断(计算后验概率)同样可能非常复杂,因此常需要采用近似方法(如吉布斯采样)。

7.6 EM 算法

1. 背景与问题

在之前的讨论中,我们通常假设每个训练样本的所有属性值都是已知的(即“完整”数据)。但在实际应用中,常常会遇到部分属性缺失的情况——例如,一个西瓜可能缺失“根蒂”的信息,此时我们无法直接知道这个属性的取值。

这种情况下,那些未观测到的变量叫做隐变量(latent variable)。设:

  • X\mathbf{X} 表示已观测的变量,
  • Z\mathbf{Z} 表示隐变量,
  • Θ\Theta 表示模型参数。

如果所有数据都已知,我们可以直接使用最大似然估计(MLE)求出参数,即最大化对数似然

LL(ΘX,Z)=lnP(X,ZΘ)LL(\Theta \mid \mathbf{X}, \mathbf{Z}) = \ln P(\mathbf{X}, \mathbf{Z} \mid \Theta)

但由于隐变量Z\mathbf{Z}未知,我们实际上只能观测到数据X\mathbf{X}的边缘似然:

LL(ΘX)=lnP(XΘ)=lnZP(X,ZΘ)LL(\Theta \mid \mathbf{X}) = \ln P(\mathbf{X} \mid \Theta) = \ln \sum_{\mathbf{Z}} P(\mathbf{X}, \mathbf{Z} \mid \Theta)

直接优化这个求和后的似然往往非常困难。


2. EM 算法的基本思想

EM(Expectation-Maximization,期望最大化)算法提供了一种迭代求解这类含有隐变量问题的方法,其核心思想可以概括为:

  1. E步(Expectation step):
    当当前参数Θt\Theta^t给定时,利用观测数据X\mathbf{X}推断隐变量Z\mathbf{Z}的分布(或求出其期望值)。
    也就是说,计算隐变量的后验分布:

    P(ZX,Θt)P(\mathbf{Z} \mid \mathbf{X}, \Theta^t)

    并进而计算出对数似然的期望:

    Q(ΘΘt)=EZX,Θt[lnP(X,ZΘ)]Q(\Theta \mid \Theta^t) = \mathbb{E}_{\mathbf{Z} \mid \mathbf{X}, \Theta^t}\Big[\ln P(\mathbf{X}, \mathbf{Z} \mid \Theta)\Big]

  2. M步(Maximization step):
    利用E步中得到的隐变量信息(或其概率分布),更新参数,寻找使得Q(ΘΘt)Q(\Theta \mid \Theta^t)最大的参数:

    Θt+1=argmaxΘQ(ΘΘt)\Theta^{t+1} = \underset{\Theta}{\arg\max}\, Q(\Theta \mid \Theta^t)

这两个步骤不断交替进行,直到参数收敛于一个局部最优解。


3. 为什么EM算法有用

由于隐变量的存在,直接计算对数似然函数

LL(ΘX)=lnZP(X,ZΘ)LL(\Theta \mid \mathbf{X}) = \ln \sum_{\mathbf{Z}} P(\mathbf{X}, \mathbf{Z} \mid \Theta)

非常困难(“和”在对数内,导致求导复杂)。EM算法通过引入一个辅助分布(实际上就是隐变量的后验分布),将难求的对数似然下界分解成两个更易处理的部分。利用Jensen不等式,可以证明:

lnP(XΘ)Q(ΘΘt)\ln P(\mathbf{X} \mid \Theta) \geq Q(\Theta \mid \Theta^t)

因此,通过不断优化这个下界,我们可以逐步提高真实对数似然的值。

另外,虽然隐变量问题也可采用梯度下降等方法求解,但当隐变量数目较多时,直接计算梯度可能涉及指数级数量的求和,而EM算法通过交替更新避免了这种复杂性。


4. 总结

  • 核心问题: 当训练数据不完整时,如何在存在隐变量Z\mathbf{Z}的情况下估计模型参数Θ\Theta
  • EM算法解决方案:
    • E步: 根据当前参数估计隐变量的后验分布或期望。
    • M步: 利用更新后的隐变量信息,重新求出使得似然函数最大的参数值。
    • 迭代更新: 交替进行E步和M步,直到模型参数收敛到一个稳定解。
  • 优势: 避免了直接对含有隐变量的对数似然求导所带来的复杂性,是一种非梯度的、迭代优化方法。

这种方法在很多实际应用中都非常有用,比如在混合高斯模型、聚类、隐马尔可夫模型等问题中都可以看到EM算法的身影。