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}}
$$ - 特点:考虑词频,适合长文本或词频信息重要的任务。
模型总结
优点
- 计算高效:参数估计和预测时间复杂度低,适合高维数据(如文本)。
- 内存友好:仅需存储各类别的特征概率。
- 鲁棒性:对缺失数据不敏感,适合部分特征缺失的场景。
缺点
- 条件独立假设过强:忽略特征间关联,可能损失信息(如文本中的词共现)。
- 概率估计偏倚:拉普拉斯平滑可能引入微小偏差。
- 性能局限:分类性能相比于逻辑回归、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)$。
- 朴素贝叶斯通过条件独立性简化计算,在高维数据(如文本)中特别有效。