生成模型与判别模型:差异与用例
Posted: Mon Dec 02, 2024 10:59 am
机器学习 (ML) 模型是统计和概率方法的计算机实现。它们通常采用两种方法之一:生成式建模或判别式建模。
在本文中,我们概述了生成模型和判别模型,介绍了每种类型的常见模型,解释了两种方法背后的数学原理,并讨论了每种类型的模型可用于解决的问题类型的实际例子。
什么是生成模型?
给定一组示例数据点D及其相关标签L ,生成模型 将学习 联合概率分布P(D, L) 。然后,它使用该基础分布生成类似于训练示例的新数据或解决分类问题。
该图展示了生成模型的工作流程
生成模型工作流程。使用 napkin.ai 创建
以下部分通过示例解释生成模型的基础知识。
朴素贝叶斯模型
朴素贝叶斯模型基于贝叶斯定理。该定理给出了当已知事件B为真时,事件A的条件概率P(A | B) 。这被称为给定B时A的后验概率。
单独来看,事件A的概率P(A)称为先验概率。朴素贝叶斯模型假设A和B是独立事件 - 因此前缀为“朴素”。如果A和B是相互依赖的,那么传统的贝叶斯定理就不再适用,朴素贝叶斯模型就不是正确的选择。
贝叶斯模型是生成模型,因为它们对联合概率分布进行建模。训练过程学习联合概率——P(A, B) 。训练后,它可用于预测概率P(A)最高的A值。此外,贝叶斯模型还可以用于分类,因为它们可以计算条件概率(使用贝叶斯规则)。
要学习在实践中使用朴素贝叶斯模型,请按照使用 scikit-learn 和 Python 构建朴素贝叶斯模型的教程进行操作。
高斯混合模型
高斯混合模型 (GMM) 是一类混合模型。其独特前提是底 twitter 数据库 层数据结合了统计分布,而不是单一分布。
在 GMM 中,假设总体是不同子总体的组合,每个子总体都服从高斯分布。实际上,数据分布被分析为几个单独的高斯分布的加权平均值。
GMM 捕获基础数据集的概率分布。因此,它们可用于异常值分析和无监督分类等任务。这些任务涉及通过将训练数据集视为随机样本来构建总体统计模型。
R 中的混合模型课程深入介绍了 GMM 的实际细节。
生成对抗网络
生成对抗网络 (GAN) 是一种基于神经网络的模型。它由两部分组成:生成器和鉴别器。生成器网络经过训练可以生成与训练示例相似的向量,而鉴别器经过训练可以区分原始示例和生成器生成的示例。
本质上,生成器和鉴别器具有相反的训练目标,因此它们具有对抗性。因此,名称中使用了“对抗性”一词。
生成器和鉴别器在同一个训练循环中一起训练。随着生成器越来越擅长创建真实示例,鉴别器会区分原始示例和生成示例。训练持续进行,直到生成器学会生成与训练数据非常相似的示例,以至于鉴别器无法区分它们。
训练后,生成器用于生成与原始示例相似的真实合成数据。
隐马尔可夫模型
隐马尔可夫模型 (HMM) 适用于顺序数据集。马尔可夫过程(或马尔可夫链)用于对顺序数据进行建模。马尔可夫模型的前提是序列中的下一个元素x n+1仅取决于前一个元素x n,而不取决于它之前的任何元素{ x 1 , x 2 , ... x n-1 }。马尔可夫模型假设顺序数据集可以用具有隐藏状态的马尔可夫过程表示。
这些状态生成序列中的下一个元素:
模型的当前输出仅取决于当前状态
当前状态仅取决于前一个状态。马尔可夫模型的前提是,从初始状态到第(N-2) 个状态的所有相关信息都封装在第 (N-1) 个状态中。无需明确考虑更早的状态。
马尔可夫模型用转移概率(从一个状态到另一个状态)和发射概率(在给定特定状态下生成特定序列元素) 表示。
HMM 将训练数据集建模为马尔可夫过程。训练目标是确定转换和发射概率,以最大化在示例数据集中生成序列的概率。因此,给定一个序列,经过训练的马尔可夫模型可以生成该序列的连续元素。
要了解它们的实际实现,请关注有关 Python 中的马尔可夫链的教程。
成为一名机器学习科学家
掌握Python技能成为机器学习科学家
什么是判别模型?
给定一个由数据点D及其相关标签L组成的训练数据集,判别模型会学习条件概率分布P(D | L) 。然后,它使用该条件概率分布来预测新数据点的类别。
该图展示了判别模型的工作流程
判别模型工作流程。使用 napkin.ai 创建
判别模型通常用于解决分类问题。以下示例展示了它们的用例。
K 近邻
K 最近邻 (KNN) 是一种较老的机器学习模型。它基于这样的前提:给定数据点的分布,相似的项目位于邻近位置。
KNN 模型是非参数的,没有像回归系数这样的参数。它们既可用于分类问题,也可用于回归问题。
输入数据点的类别与其k 个最近邻居相同。数据点的预测值是其k 个最近邻居的平均值。k (要考虑的最近邻居的数量)可以被视为模型的超参数。它用于调整模型的行为,但不会直接影响模型的输出。
在本文中,我们概述了生成模型和判别模型,介绍了每种类型的常见模型,解释了两种方法背后的数学原理,并讨论了每种类型的模型可用于解决的问题类型的实际例子。
什么是生成模型?
给定一组示例数据点D及其相关标签L ,生成模型 将学习 联合概率分布P(D, L) 。然后,它使用该基础分布生成类似于训练示例的新数据或解决分类问题。
该图展示了生成模型的工作流程
生成模型工作流程。使用 napkin.ai 创建
以下部分通过示例解释生成模型的基础知识。
朴素贝叶斯模型
朴素贝叶斯模型基于贝叶斯定理。该定理给出了当已知事件B为真时,事件A的条件概率P(A | B) 。这被称为给定B时A的后验概率。
单独来看,事件A的概率P(A)称为先验概率。朴素贝叶斯模型假设A和B是独立事件 - 因此前缀为“朴素”。如果A和B是相互依赖的,那么传统的贝叶斯定理就不再适用,朴素贝叶斯模型就不是正确的选择。
贝叶斯模型是生成模型,因为它们对联合概率分布进行建模。训练过程学习联合概率——P(A, B) 。训练后,它可用于预测概率P(A)最高的A值。此外,贝叶斯模型还可以用于分类,因为它们可以计算条件概率(使用贝叶斯规则)。
要学习在实践中使用朴素贝叶斯模型,请按照使用 scikit-learn 和 Python 构建朴素贝叶斯模型的教程进行操作。
高斯混合模型
高斯混合模型 (GMM) 是一类混合模型。其独特前提是底 twitter 数据库 层数据结合了统计分布,而不是单一分布。
在 GMM 中,假设总体是不同子总体的组合,每个子总体都服从高斯分布。实际上,数据分布被分析为几个单独的高斯分布的加权平均值。
GMM 捕获基础数据集的概率分布。因此,它们可用于异常值分析和无监督分类等任务。这些任务涉及通过将训练数据集视为随机样本来构建总体统计模型。
R 中的混合模型课程深入介绍了 GMM 的实际细节。
生成对抗网络
生成对抗网络 (GAN) 是一种基于神经网络的模型。它由两部分组成:生成器和鉴别器。生成器网络经过训练可以生成与训练示例相似的向量,而鉴别器经过训练可以区分原始示例和生成器生成的示例。
本质上,生成器和鉴别器具有相反的训练目标,因此它们具有对抗性。因此,名称中使用了“对抗性”一词。
生成器和鉴别器在同一个训练循环中一起训练。随着生成器越来越擅长创建真实示例,鉴别器会区分原始示例和生成示例。训练持续进行,直到生成器学会生成与训练数据非常相似的示例,以至于鉴别器无法区分它们。
训练后,生成器用于生成与原始示例相似的真实合成数据。
隐马尔可夫模型
隐马尔可夫模型 (HMM) 适用于顺序数据集。马尔可夫过程(或马尔可夫链)用于对顺序数据进行建模。马尔可夫模型的前提是序列中的下一个元素x n+1仅取决于前一个元素x n,而不取决于它之前的任何元素{ x 1 , x 2 , ... x n-1 }。马尔可夫模型假设顺序数据集可以用具有隐藏状态的马尔可夫过程表示。
这些状态生成序列中的下一个元素:
模型的当前输出仅取决于当前状态
当前状态仅取决于前一个状态。马尔可夫模型的前提是,从初始状态到第(N-2) 个状态的所有相关信息都封装在第 (N-1) 个状态中。无需明确考虑更早的状态。
马尔可夫模型用转移概率(从一个状态到另一个状态)和发射概率(在给定特定状态下生成特定序列元素) 表示。
HMM 将训练数据集建模为马尔可夫过程。训练目标是确定转换和发射概率,以最大化在示例数据集中生成序列的概率。因此,给定一个序列,经过训练的马尔可夫模型可以生成该序列的连续元素。
要了解它们的实际实现,请关注有关 Python 中的马尔可夫链的教程。
成为一名机器学习科学家
掌握Python技能成为机器学习科学家
什么是判别模型?
给定一个由数据点D及其相关标签L组成的训练数据集,判别模型会学习条件概率分布P(D | L) 。然后,它使用该条件概率分布来预测新数据点的类别。
该图展示了判别模型的工作流程
判别模型工作流程。使用 napkin.ai 创建
判别模型通常用于解决分类问题。以下示例展示了它们的用例。
K 近邻
K 最近邻 (KNN) 是一种较老的机器学习模型。它基于这样的前提:给定数据点的分布,相似的项目位于邻近位置。
KNN 模型是非参数的,没有像回归系数这样的参数。它们既可用于分类问题,也可用于回归问题。
输入数据点的类别与其k 个最近邻居相同。数据点的预测值是其k 个最近邻居的平均值。k (要考虑的最近邻居的数量)可以被视为模型的超参数。它用于调整模型的行为,但不会直接影响模型的输出。