生成模型与判别模型
通过训练集得到的模型有两种形式:生成模型和判别模型。
生成模型(Generative Models)和判别模型(Discriminative Models)是机器学习中两种核心建模方法,它们在目标、建模对象、应用场景和优缺点上存在显著差异。理解它们的区别对选择合适的算法至关重要。
一、生成模型
典型的生成模型包括:朴素贝叶斯法、隐马尔可夫模型(时间序列的概率模型)。
注:输入和输出变量要求为随机变量。
二、判别模型
典型的判别模型包括:k近邻法、感知机、决策树。
注:不需要输入和输出变量均为随机变量。
对于判别模型可以根据二者的鼻子的长度来判定类别,而生成方法需要分别对二者建立特征模型,就不只包括鼻子,还有嘴巴等等特征。
三、两者的详细对比:
特性 | 生成模型 (Generative Models) | 判别模型 (Discriminative Models) |
---|---|---|
核心目标 | 学习数据本身的联合概率分布 P(X, Y) | 直接学习决策边界或条件概率 P(Y|X) |
建模对象 | 输入特征 X 和输出标签 Y 的联合分布 | 给定输入特征 X 时,输出标签 Y 的条件分布 |
“思考”方式 | “数据是如何生成出来的?” (模拟数据生成过程) | “如何根据特征区分不同类别?” (关注类别边界) |
数学本质 | 估计 P(X, Y) = P(X|Y) * P(Y) | 直接估计 P(Y|X) |
典型算法 | • 朴素贝叶斯 (Naive Bayes) • 隐马尔可夫模型 (HMM) • 高斯混合模型 (GMM) • 生成对抗网络 (GAN) • 变分自编码器 (VAE) • 贝叶斯网络 | • 逻辑回归 (Logistic Regression) • 支持向量机 (SVM) • 决策树/随机森林 • 传统神经网络 • 条件随机场 (CRF) • k近邻 (k-NN) |
训练过程 | 学习每个类别下特征 X 的分布 P(X|Y) 和先验概率 P(Y) | 直接学习从 X 映射到 Y 的函数或条件概率 P(Y|X) |
预测方式 | 利用贝叶斯定理计算后验概率: P(Y|X) = [P(X|Y) * P(Y)] / P(X),取最大 P(Y|X) 对应的 Y | 直接输出使 P(Y|X) 最大的 Y,或学习决策函数 Y = f(X) |
优点 | • 能生成新的数据样本 • 可处理缺失数据 • 易于融入先验知识 • 适合无监督/半监督学习(学习数据分布) • 提供完整的概率框架 | • 分类准确率通常更高(尤其在大样本下) • 训练和预测效率更高 • 模型更简单直接,避免不必要的分布假设 • 对特征工程依赖相对较小 |
缺点 | • 需要估计更多参数(联合分布),计算更复杂 • 对模型假设敏感(如朴素贝叶斯的条件独立性假设) • 如果分布假设错误,性能可能较差 • 分类任务上可能不如判别模型精确 | • 无法生成新样本 • 难以处理缺失数据 • 难以利用无标签数据 • 对输入数据的分布提供较少理解 |
主要应用场景 | • 数据生成(图像、文本、语音合成) • 异常检测(低概率样本) • 带缺失数据的分类 • 自然语言处理(语言建模) • 推荐系统(生成用户-物品交互) | • 绝大多数分类任务(图像分类、文本分类、垃圾邮件检测) • 回归任务 • 序列标注(词性标注、命名实体识别) • 需要高判别精度的场景 |
类比 | 画家:学习整个物体的结构和纹理,然后可以自己画出来(生成)或判断类别。 | 裁判:专注于观察关键特征(如条纹、尾巴)来快速区分老虎和豹子,但不关心如何“画”出它们。 |