生成式模型与判别式模型—大厂笔试汇总

本文详细解析了生成式模型(如HMM、朴素贝叶斯)和判别式模型(如SVM、逻辑回归)的区别,涵盖了关键概念、方法及应用实例。通过比较和总结,揭示了它们在数据分布和预测目标上的差异。

一、习题

1、以下属于生成式模型的是:( C )

A、SVM
B、随机森林
C、隐马尔可夫模型HMM
D、逻辑回归

常见的生成式模型有 隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等

2、以下几种模型方法属于判别式模型的有 ( C )

1)混合高斯模型

2)条件随机场模型

3)区分度训练

4)隐马尔科夫模型

A、1,4
B、3,4
C、2,3
D、1,2

公式上看

生成模型: 学习时先得到 P(x,y),继而得到 P(y|x)。预测时应用最大后验概率法(MAP)得到预测类别 y。

判别模型: 直接学习得到P(y|x),利用MAP得到 y。或者直接学得一个映射函数 y=f(x)。

直观上看

生成模型: 关注数据是如何生成
判别模型: 关注类别之间的差别

  • 生成式模型
    • 判别式分析
    • 朴素贝叶斯
    • 混合高斯模型
    • 隐马尔科夫模型(HMM)
    • 贝叶斯网络
    • Sigmoid Belief Networks
    • 马尔科夫随机场(Markov Random Fields)
    • 深度信念网络(DBN)
  • 判别式模型
    • 线性回归(Linear Regression)
    • K近邻(KNN)
    • 逻辑斯蒂回归(Logistic Regression)
    • 神经网络(NN)
    • 支持向量机(SVM)
    • 高斯过程(Gaussian Process)
    • 条件随机场(CRF)
    • CART(Classification and Regression Tree)

3、下面关于支持向量机(SVM)的描述错误的是 ( C )

A、是一种监督式学习的方法
B、可用于多分类的问题
C、是一种生成式模型
D、支持非线性的核函数

属于判别式模型,直接对条件概率p(y|x;θ)建模

4、下列模型属于机器学习生成式模型的是 ( ABCD )

A、朴素贝叶斯
B、隐马尔科夫模型(HMM)
C、马尔科夫随机场(Markov Random Fields)
D、深度信念网络(DBN)

5、有监督机器学习方法可以被分为判别式模型和生成式模型,下面属于生成式模型的有 ( B C )

A、SVM支持向量机
B、朴素贝叶斯
C、隐马尔科夫
D、logistic回归

判别式模型(Discriminative Model):直接对条件概率p(y|x)进行建模,如:线性回归、逻辑回归、决策树、支持向量机SVM、k近邻、神经网络等;

生成式模型(Generative Model):对联合分布概率p(x,y)进行建模,然后求出条件概率作为预测模型,如:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA 等;

二、总结

1、两种不同的模型都用于监督学习任务中。

2、监督学习的任务就是从数据中学习一个模型,并用基于这个模型对给定的输入预测相应的输出。这种模型的一般形式为决策函数 y=f(x)或者条件概率分布P(y|x) 。

3、判别方法不关心背后的数据分布,关心的是对于给定的输入,应该预测什么样的输出。

4、生成模型估计的是联合概率分布,判别式模型估计的是条件概率分布。

### 李宏毅讲解生成式模型判别式模型 #### 生成式模型的特点 生成式模型旨在捕捉数据的真实分布,通过学习联合概率分布 \( p(x, y) \),其中 \( x \) 是输入特征而 \( y \) 是类别标签。这类模型能够模拟新样本的创建过程,适用于多种任务如图像合成、语音生成等[^3]。 对于分类问题而言,在应用贝叶斯定理时,可以通过寻找一组合适的高斯函数来构建模型集合,并利用最大似然估计方法评估各个候选模型的质量从而挑选最优者[^2]。 #### 判别式模型的工作原理 相比之下,判别式模型专注于建立条件概率分布 \( p(y|x) \),即给定特定输入下预测输出的概率。典型代表有支持向量机和支持向量网络等算法。这些技术并不试图理解整个系统的运作机制而是直接针对决策边界进行优化以实现高效准确地分类目的[^4]。 #### Flow作为一种特殊的生成式模型 值得注意的是Flow也属于生成式模型的一种形式,它其他同类框架(例如GANs和VAEs)共享相似属性——都是为了创造逼真的假象实例而设计出来的工具[^1]。 ```python import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB # 创建虚拟二元分类数据集 X, y = make_classification(n_samples=1000, n_features=20, random_state=42) # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) # 使用朴素贝叶斯作为简单的生成式模型示例 gnb = GaussianNB() gnb.fit(X_train, y_train) print(f"Test set accuracy: {gnb.score(X_test, y_test):.2f}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少云清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值