Lecture-5

生成学习算法与判别学习算法的区别

判别学习算法

  • 目标: 学习条件概率分布 $P(y|x)$或直接建模决策边界 $h_\theta(x)$。
  • e.g.: 逻辑回归、支持向量机(SVM)。
  • 关注点: 直接估计特征 $x$和标签 $y$之间的关系。

生成学习算法

  • 目标: 通过建模 $P(x|y)$和 $P(y)$来学习联合概率分布 $P(x, y)$,然后通过贝叶斯定理推导出 $P(y|x)$
  • e.g. 高斯判别分析(GDA),朴素贝叶斯。
  • 关注点: 建模每个类别 $y$中特征 $x$的分布,并推断 $P(y|x)$进行分类。

高斯判别分析(GDA)

多元高斯分布

一个 $d$-维随机变量 $X \sim \mathcal{N}(\mu, \Sigma)$具有:

  • 概率密度函数(PDF):
    $$
    p(x; \mu, \Sigma) = \frac{1}{(2\pi)^{d/2}|\Sigma|^{1/2}} \exp\left( -\frac{1}{2}(x-\mu)^T \Sigma^{-1}(x-\mu) \right)
    $$
  • 参数:
    • 均值向量 $\mu \in \mathbb{R}^d$。
    • 协方差矩阵 $\Sigma \in \mathbb{R}^{d \times d}$(对称,半正定)。

GDA中的模型假设

  • 类先验: $y \sim \text{Bernoulli}(\phi)$。
  • 条件分布:
    $$
    x|y=0 \sim \mathcal{N}(\mu_0, \Sigma), \quad x|y=1 \sim \mathcal{N}(\mu_1, \Sigma)
    $$
    共享的协方差矩阵 $\Sigma$确保了线性的决策边界。

参数估计通过最大似然法

给定训练集 ${(x^{(i)}, y^{(i)})}{i=1}^m$,最大化联合似然性:
$
\mathcal{L}(\phi_y,\phi
{j|y=0},\phi_{j|y=1}) = \prod_{i=1}^{n} p(x_i,y_i)
$
对该函数取log然后求极大似然值得到MLE解
MLE解:

  • 类先验:
    $$
    \phi_y = \frac{1}{m} \sum_{i=1}^m \mathbb{I}{y^{(i)}=1}
    $$
  • 类条件均值:
    $$
    \mu_0 = \frac{\sum_{i=1}^m \mathbb{I}{y^{(i)}=0} x^{(i)}}{\sum_{i=1}^m \mathbb{I}{y^{(i)}=0}}, \quad \mu_1 = \frac{\sum_{i=1}^m \mathbb{I}{y^{(i)}=1} x^{(i)}}{\sum_{i=1}^m \mathbb{I}{y^{(i)}=1}}
    $$
  • 共享协方差:
    $$
    \Sigma = \frac{1}{m} \sum_{i=1}^m (x^{(i)} - \mu_{y^{(i)}})(x^{(i)} - \mu_{y^{(i)}})^T
    $$

模型优缺点

优点:模型简单,计算方便,易于理解和解释。
缺点:效果不好。

决策边界

后验概率 $P(y=1|x)$遵循逻辑函数:
$$
P(y=1|x) = \frac{1}{1 + \exp(-\theta^T x)}, \quad \theta = \Sigma^{-1}(\mu_1 - \mu_0)
$$
当 $\Sigma_0 = \Sigma_1$时,GDA产生一个线性的决策边界。*同时如果两个分类的协方差矩阵不同,那么决策边界将不再是线性的。


朴素贝叶斯与多元朴素贝叶斯

模型假设

条件独立性:
$$
P(x_1, x_2, …, x_n|y) = \prod_{i=1}^n P(x_i|y)
$$

  • 核心思想:在给定类别 $y$ 的条件下,所有特征 $x_i$ 相互独立。这一假设简化了计算,但忽略了特征间的潜在关联,故称为“朴素”。
  • 实际影响:尽管现实中特征可能相关(如文本中的相邻词汇),但模型仍表现良好,尤其在文本分类等高维场景中。

参数估计

类先验

对于二分类 $y \in {0,1}$:
$$
\phi_y = \frac{1}{m} \sum_{i=1}^m \mathbb{I}{y^{(i)}=1}
$$

  • $\phi_y$ 表示类别 $y=1$ 的先验概率,直接通过样本比例估计。

特征似然

  • 二元特征(如伯努利模型):
    $$
    \phi_{j|y=1} = \frac{\sum_{i=1}^m \mathbb{I}{x_j^{(i)}=1 \wedge y^{(i)}=1}}{\sum_{i=1}^m \mathbb{I}{y^{(i)}=1}}
    $$
    • 分子:类别 $y=1$ 中特征 $x_j=1$ 的样本数。
    • 分母:类别 $y=1$ 的总样本数。

拉普拉斯平滑

  • 问题:若某特征在训练集中未出现(如 $\sum \mathbb{I}{x_j=1 \wedge y=1}=0$),概率估计为 $0$,导致连乘失效。
  • 解决方法:添加伪计数,避免零概率。
    • 伯努利模型
      $$
      \phi_{j|y=1} = \frac{1 + \sum_{i=1}^m \mathbb{I}{x_j^{(i)}=1 \wedge y^{(i)}=1}}{2 + \sum_{i=1}^m \mathbb{I}{y^{(i)}=1}}
      $$
    • 多项式模型(词汇表大小为 $V$):
      $$
      \phi_{k|y} = \frac{1 + \sum_{i=1}^m \sum_{t=1}^{n_i} \mathbb{I}{\text{word}t^{(i)}=k \wedge y^{(i)}=y}}{V + \sum{k’=1}^V \sum_{i=1}^m \sum_{t=1}^{n_i} \mathbb{I}{\text{word}_t^{(i)}=k’ \wedge y^{(i)}=y}}
      $$

文本分类事件模型对比

1. 伯努利事件模型(Multivariate Bernoulli)

  • 特征表示:$x_j \in {0,1}$,表示词 $j$ 是否在文档中出现。
  • 似然函数
    $$
    P(x|y) = \prod_{j=1}^n \phi_{j|y}^{x_j}(1-\phi_{j|y})^{1-x_j}
    $$
  • 参数估计
    $$
    \phi_{j|y} = \frac{\sum_{i=1}^m \mathbb{I}{x_j^{(i)}=1 \wedge y^{(i)}=y}}{\sum_{i=1}^m \mathbb{I}{y^{(i)}=y}}
    $$
  • 特点:忽略词频,适合短文本或存在性特征显著的任务。

2. 多项式事件模型

  • 特征表示:$x_j$ 表示文档中第 $j$ 个位置的词在词汇表中的索引。
  • 似然函数
    $$
    P(x|y) = \prod_{t=1}^{n} \phi_{k|y}, \quad \text{其中 } k \text{ 是位置 } t \text{ 的词}
    $$
  • 参数估计
    $$
    \phi_{k|y} = \frac{\sum_{i=1}^m \sum_{t=1}^{n_i} \mathbb{I}{\text{word}t^{(i)}=k \wedge y^{(i)}=y}}{\sum{i=1}^m n_i \cdot \mathbb{I}{y^{(i)}=y}}
    $$
  • 特点:考虑词频,适合长文本或词频信息重要的任务。

模型总结

优点

  1. 计算高效:参数估计和预测时间复杂度低,适合高维数据(如文本)。
  2. 内存友好:仅需存储各类别的特征概率。
  3. 鲁棒性:对缺失数据不敏感,适合部分特征缺失的场景。

缺点

  1. 条件独立假设过强:忽略特征间关联,可能损失信息(如文本中的词共现)。
  2. 概率估计偏倚:拉普拉斯平滑可能引入微小偏差。
  3. 性能局限:分类性能相比于逻辑回归、SVM等模型较差。

附:高斯朴素贝叶斯(补充)

  • 适用场景:连续特征,假设 $P(x_j|y)$ 服从高斯分布。
  • 参数估计
    $$
    \mu_{j|y} = \frac{1}{m_y} \sum_{i:y^{(i)}=y} x_j^{(i)}, \quad \sigma_{j|y}^2 = \frac{1}{m_y} \sum_{i:y^{(i)}=y} (x_j^{(i)} - \mu_{j|y})^2
    $$
  • 概率计算
    $$
    P(x_j|y) = \frac{1}{\sqrt{2\pi\sigma_{j|y}^2}} \exp\left(-\frac{(x_j - \mu_{j|y})^2}{2\sigma_{j|y}^2}\right)
    $$

关键要点

  • 生成模型(如GDA、朴素贝叶斯)在已知特征分布时有用。
  • 判别模型(如逻辑回归)更适合于复杂数据,直接学习 $P(y|x)$。
  • 朴素贝叶斯通过条件独立性简化计算,在高维数据(如文本)中特别有效。