机器学习术语表:机器学习基础知识

本页面包含“机器学习基础知识”术语表术语。如需查看所有术语表术语,请点击此处

A

精确度

#fundamentals

正确分类预测的数量除以预测总数。具体来说:

$$\text{Accuracy} = \frac{\text{correct predictions}} {\text{correct predictions + incorrect predictions }}$$

例如,如果某个模型做出 40 次正确预测和 10 次错误预测,则准确率为:

$$\text{Accuracy} = \frac{\text{40}} {\text{40 + 10}} = \text{80%}$$

二元分类为不同类别的正确预测错误预测提供具体名称。因此,二元分类的准确率公式如下所示:

$$\text{Accuracy} = \frac{\text{TP} + \text{TN}} {\text{TP} + \text{TN} + \text{FP} + \text{FN}}$$

其中:

  • TP 是真正例(正确预测)的数量。
  • TN 是指真正例(正确预测)的数量。
  • FP 是指假正例(预测错误)的数量。
  • FN 为假负例(错误预测)的数量。

比较和对比准确率与精确率召回率

激活函数

#fundamentals

一个函数,使神经网络能够学习特征与标签之间的非线性(复杂)关系。

常用的激活函数包括:

激活函数的曲线图绝不是一条直线。例如,ReLU 激活函数的曲线图由两条直线组成:

两条线的笛卡尔图。第一行的 y 常量为 0,沿 x 轴从 -infinity,0 到 0,-0 运行。
第二行从 0,0 开始。这条线的斜率为 +1,因此它的范围为 0,0 到 +无穷大,+无穷大。

S 型激活函数的曲线图如下所示:

二维曲线图,x 值的范围为无穷大到正正,而 y 值的范围几乎为 0 到 1 之间。当 x 为 0 时,y 为 0.5。该曲线的斜率始终为正,最高斜率为 0,0.5,并随着 x 的绝对值增加而逐渐减小。

有一个常见的误解,

#fundamentals

一种非人类程序或模型,可以解决复杂任务。model例如,翻译文本、程序或模型(能够从放射影像中识别疾病)的程序或模型都展示了人工智能。

正式地说,机器学习是人工智能的一个子领域。但是,近年来,一些组织开始将“人工智能”和“机器学习”这两个术语交替使用。

AUC(ROC 曲线下面积)

#fundamentals

介于 0.0 和 1.0 之间的数字,表示二元分类模型区分正类别负类别的能力。AUC 越接近 1.0,模型将类别彼此分离的能力就越好。

例如,下图显示了一个分类器模型,该模型可将正类别(绿色椭圆形)与负类别(紫色矩形)完美分开。这个不切实际的完美模型的 AUC 为 1.0:

一条数轴,一侧有 8 个正例,另一侧有 9 个负例。

相反,下图显示了生成随机结果的分类器模型的结果。此模型的 AUC 为 0.5:

包含 6 个正例和 6 个负例的数轴。
          示例序列为正、负、正、负、正、负、正、负、负、正、负。

是的,上述模型的 AUC 为 0.5,而不是 0.0。

大多数模型都介于两种极端情况之间。例如,以下模型在一定程度上将正例与负例分隔开来,因此曲线下面积的 AUC 介于 0.5 到 1.0 之间:

包含 6 个正例和 6 个负例的数轴。
          示例序列为负、负、负、负、正、负、正、正、负、正、正、正。

曲线下面积会忽略您为分类阈值设置的任何值。而是会考虑所有可能的分类阈值。

B

反向传播算法

#fundamentals

神经网络中实现梯度下降的算法。

训练神经网络涉及以下两步循环的多次迭代

  1. 前向传播期间,系统会处理一样本以生成预测结果。系统会将每个预测与每个标签值进行比较。预测值与标签值之间的差值就是该样本的损失系统会汇总所有样本的损失以计算当前批次的总损失。
  2. 在向后传递(反向传播)期间,系统会通过调整所有隐藏层中所有神经元的权重来降低损失。

神经网络通常包含许多隐藏层中的许多神经元。其中每个神经元以不同的方式对整体损失造成影响。反向传播算法决定了是增加还是减少应用于特定神经元的权重。

学习速率是一个调节系数,用于控制每个反向传播增加或减少每个权重的程度。较高的学习速率会增加或降低每个权重,且增减幅度会超过学习速率较小。

在微积分方面,反向传播算法实现了微积分的链法则也就是说,反向传播算法会计算误差相对于每个参数的偏导数

几年前,机器学习从业者必须编写代码来实现反向传播。现在,TensorFlow 等现代机器学习 API 可为您实现反向传播算法。呼!

批处理

#fundamentals

一次训练迭代中使用的一组样本批次大小决定了一个批次中的样本数量。

如需了解批量与一个周期之间的关系,请参阅周期

批次大小

#fundamentals

一个批次中的样本数量。 例如,如果批次大小为 100,则模型每次迭代可处理 100 个样本。

以下是常用的批量大小策略:

  • 随机梯度下降法 (SGD),其中批次大小为 1。
  • 全批次,其中批次大小是指整个训练集中的样本数量。例如,如果训练集包含一百万个样本,则批次大小就是一百万个样本。全批量策略通常是一种低效的策略。
  • 小批量,其中批量大小通常介于 10 到 1000 之间。小批次通常是最有效的策略。

偏见(道德/公平性)

#fairness
#fundamentals

1. 对某些事物、个人或群体的成见、偏见或偏爱。这些偏差可能会影响数据的收集和解读、系统设计以及用户与系统交互的方式。此类偏差的形式包括:

2. 抽样或报告过程中引入的系统错误。 此类偏差的形式包括:

请勿与机器学习模型中的偏差项预测偏差混淆。

偏差(数学)或偏差项

#fundamentals

相对于原点的截距或偏移量。偏差是机器学习模型中的参数,用以下符号表示:

  • b
  • w0

例如,在以下公式中,偏差为 b:b

$$y' = b + w_1x_1 + w_2x_2 + … w_nx_n$$

在简单的二维线中,偏差仅表示“y 截距”。例如,下图中线条的偏差为 2。

斜率为 0.5,偏差(y 截距)为 2 的直线曲线图。

之所以存在偏差,是因为并非所有模型都是从原点 (0,0) 开始的。例如,假设一个游乐园的门票费用为 2 欧元,并且客户每入住每小时的费用为 0.5 欧元。因此,映射总费用的模型的偏差为 2,因为最低费用为 2 欧元。

请勿将偏差与道德和公平性偏差预测偏差混淆。

二元分类

#fundamentals

一种分类任务,用于预测两个互斥类中的一个:

例如,以下两个机器学习模型分别执行二元分类:

  • 用于确定电子邮件是垃圾邮件(正类别)还是非垃圾邮件(负类别)的模型。
  • 一种模型,用于评估医学症状以确定人是否患有特定疾病(正类别)或没有该疾病(负类别)。

多类别分类相对。

另请参阅逻辑回归分类阈值

分桶

#fundamentals

将单个特征转换为多个二元特征(通常基于值范围),称为“分桶”或“分箱”。截断的特征通常是连续特征

例如,您可以将温度范围分割为离散的存储分区,而不是将温度表示为单个连续浮点特征,例如:

  • <= 10 摄氏度将是“冷”存储分区。
  • 11 - 24 摄氏度称为“温带”范围。
  • >= 25 摄氏度将是“温”范围。

模型会对同一存储分区中的每个值一视同仁。例如,1322 这两个值都位于温带分区中,因此该模型对这两个值的处理方式相同。

C

分类数据

#fundamentals

具有一组特定可能值的特征。例如,假设有一个名为 traffic-light-state 的分类特征,该特征只能具有以下三个可能的值之一:

  • red
  • yellow
  • green

通过将 traffic-light-state 表示为分类特征,模型可以学习 redgreenyellow 对驱动程序行为的不同影响。

分类特征有时称为离散特征

数值数据相对。

类别

#fundamentals

标签可以所属的类别。例如:

  • 在检测垃圾邮件的二元分类模型中,两类可能是垃圾邮件,而不是垃圾邮件。
  • 在标识狗品种的多类别分类模型中,类别可能是贵宾犬小猎犬哈巴狗等。

分类模型用于预测类别。相比之下,回归模型预测的是数字,而不是类别。

分类模型

#fundamentals

一个模型,其预测结果为modelmodel 例如,以下都是分类模型:

  • 一个预测输入句子的语言(法语?西班牙语? 意大利语?)。
  • 一个预测树种的模型(枫树?橡木?猴面包树?)。
  • 一种模型,用于预测特定疾病的正类别或负类别。

相比之下,回归模型预测的是数字,而不是类别。

两种常见的分类模型是:

分类阈值

#fundamentals

二元分类中,一个介于 0 和 1 之间的数字,用于将逻辑回归模型的原始输出转换为正类别负类别的预测结果。请注意,分类阈值是人类选择的值,而不是模型训练选择的值。

逻辑回归模型会输出 0 到 1 之间的原始值。然后,执行以下操作:

  • 如果此原始值大于分类阈值,则预测正类别。
  • 如果此原始值小于分类阈值,则预测负类别。

例如,假设分类阈值为 0.8。如果原始值为 0.9,则模型会预测正类别。如果原始值为 0.7,则模型会预测负类别。

分类阈值的选择对假正例假负例的数量有很大影响。

分类不平衡的数据集

#fundamentals

一个分类问题的数据集,其中每个类别的标签总数差异很大。 例如,假设一个二元分类数据集,其两个标签按如下方式划分:

  • 100 万个排除标签
  • 10 个正例标签

负类别标签与正类别标签的比率为 100,000:1,因此这是一个分类不平衡的数据集。

相比之下,以下数据集分类不平衡,因为负标签与正标签的比率相对接近于 1:

  • 517 个排除标签
  • 483 个正例标签

多类别数据集也可能不平衡。例如,以下多类别分类数据集也是分类不平衡的,因为一个标签的样本数量远远超过其他两个标签:

  • 100 万个类别为“green”的标签
  • 类别为“紫色”的 200 个标签
  • 类别为“orange”的 350 个标签

另请参阅多数类少数类

裁剪

#fundamentals

一种通过执行以下两项或两项操作来处理离群值的技术:

  • 将大于最大阈值的 feature 值减少到该最大阈值。
  • 将小于最低阈值的特征值增加到该最低阈值。

例如,假设特定特征的值中,小于 0.5% 的值不在 40-60 的范围内。在这种情况下,您可以执行以下操作:

  • 将大于 60(最大阈值)的所有值裁剪为正好 60。
  • 将低于 40(最小阈值)的所有值裁剪为正好 40。

离群值可能会损害模型,有时会导致权重在训练期间溢出。一些离群值还会严重影响准确率等指标。夹扣是一种限制损伤的常见技术。

梯度裁剪会在训练期间强制将梯度值控制在指定范围内。

混淆矩阵

#fundamentals

一个 NxN 表格,其中总结了分类模型所做的正确和错误预测的数量。例如,请考虑以下适用于二元分类模型的混淆矩阵:

肿瘤(预测) 非肿瘤(预测)
肿瘤(标准答案) 18 (TP) 1(FN)
非肿瘤(标准答案) 6 (FP) 452(田纳西州)

上述混淆矩阵显示以下内容:

  • 标准答案为“Tumor”的 19 项预测中,模型正确分类了 18 项,错误分类为 1。
  • 在 458 条评估结果为“非肿瘤”的预测中,模型正确分类为 452,错误分类为 6。

多类别分类问题的混淆矩阵可帮助您识别错误的模式。例如,请考虑以下混淆矩阵,这是一个三类多类别分类模型,该模型对三种不同的鸢尾花类型(维吉尼亚、变色和山鸢尾)进行分类。当标准答案是维吉尼亚州时,混淆矩阵显示模型错误地预测 Versicolor 的可能性要远远超过 Setosa:

  山川(预测) 变色(预测) 维吉尼亚州(预测)
山谷(标准答案) 88 12 0
Versicolor(标准答案) 6 141 7
维吉尼亚州(标准答案) 2 27 109

再举一个例子,混淆矩阵可能表明,经过训练、能够识别手写数字的模型往往错误地预测为 9 而不是 4,或错误地预测为 1 而不是 7。

混淆矩阵包含计算各种性能指标(包括精确率召回率)所需的足够信息。

连续特征

#fundamentals

浮点特征,具有无限范围的可能值,例如温度或重量。

离散特征相对。

收敛

#fundamentals

损失值在每次迭代时变化非常小或完全没有变化时,所达到的状态。例如,下面的损失曲线表明,在大约 700 次迭代时收敛:

笛卡尔曲线图。X 轴表示损失。Y 轴是训练迭代次数。损失在前几次迭代期间非常高,但急剧下降。经过大约 100 次迭代后,损失仍然呈下降趋势,但呈下降趋势。大约 700 次迭代后,损失保持不变。

如果额外的训练不会改进模型,则模型会收敛

深度学习中,在最终下降之前,经过多次迭代,损失值有时会保持不变或几乎保持不变。在长时间保持恒定的损失值期间,您可能会暂时产生错误的收敛。

另请参阅早停法

D

DataFrame

#fundamentals

一种热门的 Pandas 数据类型,用于表示内存中的数据集

DataFrame 类似于表格或电子表格。DataFrame 的每一列都有一个名称(标题),每一行都由一个唯一数字标识。

DataFrame 中的每一列的结构类似于二维数组,只不过可以为每列分配其自己的数据类型。

另请参阅官方 pandas.DataFrame 参考页面

数据集或数据集

#fundamentals

一组原始数据,通常(但并非专门)按以下某种格式进行组织:

  • 电子表格
  • CSV(逗号分隔值)格式的文件

深度模型

#fundamentals

包含多个隐藏层神经网络

深度模型也称为深度神经网络

广度模型相对。

密集特征

#fundamentals

一种特征,其大多数或所有值均为非零值,通常是浮点值的张量。例如,下面的 10 元素张量是密集的,因为它有 9 个值是非零值:

8 3 7 5 2 4 0 4 9 6

稀疏特征相对。

深度

#fundamentals

神经网络中的以下函数总和:

例如,具有 5 个隐藏层和一个输出层的神经网络的深度为 6。

请注意,输入层不影响深度。

离散特征

#fundamentals

一种特征,包含有限个可能值。例如,某个值只能是动物、蔬菜或矿物的特征就是离散特征(或分类特征)。

连续特征相对。

动态

#fundamentals

频繁或持续执行的某些操作。 术语“动态”和“在线”在机器学习中是同义词。以下是在机器学习中的动态和在线的常见用途:

  • 动态模型(或在线模型)是指频繁或持续进行再训练的模型。
  • 动态训练(或在线训练)是频繁或持续进行的训练过程。
  • 动态推理(或在线推理)是按需生成预测的过程。

动态模型

#fundamentals

经常(甚至不断)重新训练的model模型。动态模型是一种“终身学习器”,它会不断适应不断变化的数据。动态模型也称为在线模型

静态模型相对。

E

早停法

#fundamentals

一种正则化方法,是指在训练损失减少之前结束训练。在早停法中,当验证数据集上的损失开始增加时(即泛化性能变差时),您有意停止训练模型。

嵌入层

#language
#fundamentals

一个特殊的隐藏层,基于高维分类特征进行训练,以逐步学习低维度嵌入向量。与单纯地训练高维分类特征相比,嵌入层可让神经网络进行更有效的训练。

例如,Google 地球目前支持约 73,000 种树木。假设树种是模型中的一个特征,因此模型的输入层包含一个长度为 73,000 个元素的独热矢量。例如,baobab 可能会按如下方式表示:

一个由 73,000 个元素组成的数组。前 6,232 个元素存储值 0。下一个元素存储值 1。最后的 66767 个元素将值保留为零。

一个包含 73,000 个元素的数组非常长。如果您不向模型添加嵌入层,由于需要乘以 72,999 个零,训练将会非常耗时。或许,您选择嵌入层由 12 个维度组成。因此,嵌入层会针对每个树种逐步学习一个新的嵌入向量。

在某些情况下,哈希是嵌入层的合理替代方案。

周期数

#fundamentals

对整个训练集进行一次完整的训练遍历,以便每个样本都被处理一次。

一个周期表示 N/批量大小训练迭代,其中 N 是样本总数。

例如,假设存在以下情况:

  • 该数据集包含 1000 个样本。
  • 批次大小为 50 个样本。

因此,一个周期需要 20 次迭代:

1 epoch = (N/batch size) = (1,000 / 50) = 20 iterations

示例

#fundamentals

一行 features 的值,可能还包括标签监督式学习中的示例可分为两大类:

  • 有标签样本由一个或多个特征和一个标签组成。有标签样本在训练过程中使用。
  • 无标签样本包含一个或多个特征,但没有标签。在推理过程中使用无标签样本。

例如,假设您要训练模型来确定天气条件对学生考试分数的影响。以下是三个有标签样本:

特性 标签
温度 湿度 压力 测试分数
15 47 998 良好
19 34 1020 极佳
18 92 1012

以下是三个无标签样本:

温度 湿度 压力  
12 62 1014  
21 47 1017  
19 41 1021  

数据集对应的行通常是样本的原始来源。也就是说,样本通常包含数据集中的一部分列。此外,样本中的特征还可以包含合成特征,例如特征组合

F

假负例 (FN)

#fundamentals

在这个示例中,模型错误地预测了“负类别”。例如,模型预测某封电子邮件不是垃圾邮件(负类别),但该邮件实际上是垃圾邮件。

假正例 (FP)

#fundamentals

模型错误预测正类别的样本。例如,模型预测某封电子邮件是垃圾邮件(正类别),但该邮件实际上不是垃圾邮件。

假正例率 (FPR)

#fundamentals

模型错误预测正类别的实际负例所占的比例。以下公式会计算假正例率:

$$\text{false positive rate} = \frac{\text{false positives}}{\text{false positives} + \text{true negatives}}$$

假正例率是 ROC 曲线的 x 轴。

功能

#fundamentals

机器学习模型的输入变量。样本由一个或多个特征组成。例如,假设您要训练模型来确定天气条件对学生考试分数的影响。下表显示了三个示例,每个示例都包含三个特征和一个标签:

特性 标签
温度 湿度 压力 测试分数
15 47 998 92
19 34 1020 84
18 92 1012 87

标签相对。

特征组合

#fundamentals

通过“组合”分类分桶特征而形成的合成特征

例如,假设有一个“情绪预测”模型,该模型表示以下四个存储分区之一的温度:

  • freezing
  • chilly
  • temperate
  • warm

并表示以下三个类别之一的风速:

  • still
  • light
  • windy

在没有特征组合的情况下,线性模型会针对上述七个不同的分桶分别进行训练。例如,模型会使用 freezing 进行训练,而不考虑使用 windy 等元素。

或者,您也可以创建一个温度与风速的特征组合。此合成特征将具有以下 12 个可能的值:

  • freezing-still
  • freezing-light
  • freezing-windy
  • chilly-still
  • chilly-light
  • chilly-windy
  • temperate-still
  • temperate-light
  • temperate-windy
  • warm-still
  • warm-light
  • warm-windy

得益于特征组合,模型可以学习 freezing-windy 天与 freezing-still 天之间的情绪差异。

如果您利用两个特征(每个特征有许多不同的分桶)来创建合成特征,则生成的特征组合将具有大量可能的组合。例如,如果一个特征有 1,000 个存储分区,另一个特征有 2,000 个存储分区,则生成的特征组合有 2,000,000 个存储分区。

正式地说,十字形是一种笛卡尔积

特征组合主要用于线性模型,很少用于神经网络。

特征工程

#fundamentals
#TensorFlow

包含以下步骤的流程:

  1. 确定哪些特征在训练模型时可能有用。
  2. 将数据集中的原始数据转换为这些特征的高效版本。

例如,您可以确定 temperature 可能是一项实用功能。然后,您可以尝试分桶,以优化模型可以从不同 temperature 范围中学到的内容。

特征工程有时称为特征提取特征化

特征集

#fundamentals

训练机器学习模型所依据的一组特征例如,对于用于预测房价的模型,邮政编码、房源面积和房产条件可以组成一个简单的特征集。

特征向量

#fundamentals

构成样本feature 值数组。特征向量在训练推断期间输入。 例如,具有两个离散特征的模型的特征向量可能是:

[0.92, 0.56]

四个层:1 个输入层、2 个隐藏层和一个输出层。
          输入层包含两个节点,一个包含值 0.92,另一个包含值 0.56。

每个示例为特征向量提供不同的值,因此下一个示例的特征向量可能类似于:

[0.73, 0.49]

特征工程决定了如何表示特征向量中的特征。例如,具有五个可能值的二元分类特征可以使用独热编码表示。在这种情况下,特定样本的特征向量部分将包含四个零,在第三个位置包含一个 1.0,如下所示:

[0.0, 0.0, 1.0, 0.0, 0.0]

再举一个例子,假设您的模型包含三个特征:

  • 具有五种可能值(用独热编码表示)的二元分类特征;例如:[0.0, 1.0, 0.0, 0.0, 0.0]
  • 另一个二元分类特征,具有用独热编码表示的三个可能值;例如:[0.0, 0.0, 1.0]
  • 浮点特征;例如:8.3

在这种情况下,每个样本的特征向量由“九”值表示。根据上述列表中的示例值,特征向量将为:

0.0
1.0
0.0
0.0
0.0
0.0
0.0
1.0
8.3

反馈环

#fundamentals

在机器学习中,模型的预测结果会影响同一模型或其他模型的训练数据。例如,电影推荐模型会影响人们观看的电影,进而影响后续的电影推荐模型。

G

泛化

#fundamentals

模型能够对以前未见过的新数据做出正确预测。可泛化的模型与过拟合的模型相反。

泛化曲线

#fundamentals

训练损失验证损失迭代次数的变化图。

泛化曲线可帮助您检测可能出现的过拟合。例如,以下泛化曲线表明存在过拟合,因为验证损失最终明显高于训练损失。

笛卡尔图,其中 y 轴标记为损失,x 轴标记为迭代。系统会显示两个图表。一个曲线图显示训练损失,另一个图显示验证损失。
这两个曲线图的开头类似,但训练损失最终降幅远低于验证损失。

梯度下降法

#fundamentals

一种可将损失降至最低的数学方法。梯度下降法以迭代方式调整权重偏差,逐渐找到最佳组合,以将损失降至最低。

梯度下降法比机器学习更古老,远远得多。

标准答案

#fundamentals

真相。

实际发生的事情。

例如,假设有一个二元分类模型,该模型预测大学一年级的学生是否会在六年内毕业。此模型的标准答案是,该学生是否实际在 6 年内毕业。

H

隐藏层

#fundamentals

神经网络中的层,介于输入层(特征)和输出层(预测)之间。每个隐藏层都包含一个或多个神经元例如,以下神经网络包含两个隐藏层,第一个隐藏层包含三个神经元,第二个隐藏层包含两个神经元:

四层。第一层是包含两个特征的输入层。第二层是包含三个神经元的隐藏层。第三层是包含两个神经元的隐藏层。第四层是输出层。每个特征包含三条边,每条边指向第二层中的一个不同的神经元。第二层中的每个神经元包含两个边,每条边都指向第三层中的不同神经元。第三层中的每个神经元都包含一条边,每条边都指向输出层。

深度神经网络包含多个隐藏层。例如,上图是一个深度神经网络,因为该模型包含两个隐藏层。

超参数

#fundamentals

您或超参数调优服务在连续训练模型时调整的变量。例如,学习速率就是一种超参数。您可以在一次训练之前将学习速率设置为 0.01。如果您确定 0.01 过高,则可以为下一个训练课程将学习速率设置为 0.003。

相比之下,参数是模型在训练期间学习的各种权重偏差

I

独立同分布 (i.i.d)

#fundamentals

从不会改变的分布中提取的数据,其中绘制的每个值都不依赖于之前绘制的值。i.i.d. 是机器学习的理想气体 - 一种实用的数学结构,但在现实世界中几乎从未发现过。例如,某个网页的访问者的分布在短时间内可能是 i.i.d.;也就是说,该分布在这段时间内不会发生变化,并且一个访问者的访问通常与另一个访问者的访问无关。但是,如果您延长该时间范围,则网页访问者可能会出现季节性变化。

另请参阅非平稳性

推理

#fundamentals

在机器学习中,通过将经过训练的模型应用于无标签样本来进行预测的过程。

推断在统计学中的含义略有不同。如需了解详情,请参阅 维基百科中有关统计学推断的文章

输入层

#fundamentals

包含特征向量神经网络也就是说,输入层提供训练推理示例。例如,以下神经网络中的输入层包含两个特征:

四个层:一个输入层、两个隐藏层和一个输出层。

可解释性

#fundamentals

能够以可理解的术语向人类解释或呈现机器学习模型的推理功能。

例如,大多数线性回归模型都具有高度可解释性。(您只需查看每个特征的训练权重即可。)决策森林也具有高度可解释性。但是,某些模型需要复杂的可视化才能变得可解释。

您可以使用学习可解释性工具 (LIT) 来解释机器学习模型。

迭代

#fundamentals

训练期间对模型参数(模型的权重偏差)进行的单次更新。批次大小决定了模型在单次迭代中处理的样本数量。例如,如果批次大小为 20,则模型在调整参数之前会处理 20 个样本。

训练神经网络时,单次迭代包括以下两次遍历:

  1. 前向传播用于评估单个批次的损失。
  2. 反向传播(反向传播),用于根据损失和学习速率调整模型参数。

L

L0 正则化

#fundamentals

一种正则化,用于惩罚模型中非零权重的总数。例如,与具有 10 个非零权重的类似模型相比,具有 11 个非零权重的模型所受到的惩罚更高。

L0 正则化有时称为 L0 范数正则化

L1 损失

#fundamentals

一个损失函数,用于计算实际标签值与模型预测值之间的差异的绝对值。例如,以下是包含五个样本批量的 L1 损失计算:

示例的实际价值 模型的预测值 增量的绝对值
7 6 1
5 4 1
8 11 3
4 6 2
9 8 1
  8 = L1 损失

L2 损失相比,L1 损失对离群值不太敏感。

平均绝对误差是指每个样本的平均 L1 损失。

L1 正则化

#fundamentals

一种正则化,根据权重的绝对值的总和按比例惩罚权重。L1 正则化有助于将不相关或几乎不相关的特征的权重提高到正好 0。权重为 0 的特征实际上能够从模型中移除。

L2 正则化相对。

L2 损失

#fundamentals

一个损失函数,用于计算实际标签值与模型预测的值之间的差的平方。例如,下面计算了一个包含五个样本批量的 L2 损失:

示例的实际价值 模型的预测值 增量的平方
7 6 1
5 4 1
8 11 9
4 6 4
9 8 1
  16 = L2 损失

由于取平方值,L2 损失会放大离群值的影响。也就是说,与 L1 损失相比,L2 损失对糟糕预测的反应更强烈。例如,上一个批次的 L1 损失将为 8,而不是 16。请注意,一个离群值占 16 的 9。

回归模型通常使用 L2 损失作为损失函数。

均方误差是指每个样本的平均 L2 损失。平方损失函数是 L2 损失的别称。

L2 正则化

#fundamentals

一种正则化,根据权重的平方和平方和权重进行惩罚。 L2 正则化有助于使离群值权重(正值或负值较高或较低的权重)更接近 0,但不完全接近 0值非常接近 0 的特征会保留在模型中,但对模型的预测影响不大。

线性模型中,L2 正则化始终可以改进泛化。

L1 正则化相对。

标签

#fundamentals

监督式机器学习中,该值指样本的“答案”或“结果”部分。

每个有标签样本由一个或多个特征和一个标签组成。例如,在垃圾邮件检测数据集中,标签可能是“垃圾邮件”或“非垃圾邮件”。在降雨数据集中,标签可能是特定时间段内的降雨量。

有标签样本

#fundamentals

包含一个或多个特征和一个标签的示例。例如,下表显示了房屋估价模型的三个有标签样本,每个样本具有三个特征和一个标签:

卧室数量 浴室数量 房屋存在时间 房价(标签)
3 2 15 345,000 美元
2 1 72 179,000 美元
4 2 34 392,000 美元

监督式机器学习中,模型使用有标签样本进行训练,并使用无标签样本进行预测。

对比有标签样本和无标签样本。

Lambda

#fundamentals

正则化率的含义相同。

lambda 是一个重载术语。我们在此重点介绍一下该术语在正则化中的定义。

图层

#fundamentals

神经网络中的一组神经元。下面介绍了三种常见的层类型:

例如,下图显示了一个神经网络,其中包含一个输入层、两个隐藏层和一个输出层:

具有一个输入层、两个隐藏层和一个输出层的神经网络。输入层由两个特征组成。第一个隐藏层由三个神经元组成,第二个隐藏层由两个神经元组成。输出层由单个节点组成。

TensorFlow 中,也是 Python 函数,接受张量和配置选项作为输入,并生成其他张量作为输出。

学习速率

#fundamentals

一个浮点数,用于告知梯度下降法在每次迭代时调整权重和偏差的强度程度。例如,0.3 的学习速率调整权重和偏差的能力是 0.1 的学习速率的三倍。

学习速率是一个重要的超参数。如果设置的学习速率过低,训练将会花费太长时间。如果将学习速率设置得过高,梯度下降法通常难以达到收敛

线性

#fundamentals

两个或多个变量之间的关系,可以仅通过加法和乘法表示。

线性关系的曲线图是一条线。

非线性相对。

线性模型

#fundamentals

一种模型,为每个特征分配权重以执行modelmodelmodelmodel (线性模型还会包含偏差。)相比之下,在深度模型中,特征与预测的关系通常是非线性的。

与深度模型相比,线性模型通常更易于训练,并且可解释性。但是,深度模型可以学习特征之间的复杂关系

线性回归逻辑回归是两种类型的线性模型。

线性回归

#fundamentals

一种机器学习模型,同时满足以下两个条件:

  • 该模型为线性模型
  • 预测结果为浮点值。(这是线性回归回归部分。)

对比线性回归与逻辑回归此外,对比回归与分类

逻辑回归

#fundamentals

一种预测概率的回归模型。逻辑回归模型具有以下特征:

  • 该标签为分类标签。“逻辑回归”一词通常是指二元逻辑回归,即用于计算具有两个可能值的标签概率的模型。多项逻辑回归是一种不太常见的变体,用于计算具有两个以上可能值的标签的概率。
  • 训练期间的损失函数为对数损失函数。(对于具有两个以上可能值的标签,可以并行放置多个对数损失单元。)
  • 该模型具有线性架构,而非深度神经网络。但是,此定义的其余部分也适用于预测分类标签的概率的深度模型

例如,假设有一个逻辑回归模型,该模型会计算输入电子邮件是垃圾邮件或非垃圾邮件的概率。在推理期间,假设模型预测为 0.72。因此,模型会进行以下估算:

  • 电子邮件是垃圾邮件的概率为 72%。
  • 电子邮件不是垃圾邮件的概率为 28%。

逻辑回归模型使用以下两步架构:

  1. 模型通过应用输入特征的线性函数来生成原始预测 (y')。
  2. 模型将该原始预测结果作为 S 型函数的输入,该函数会将原始预测结果转换为 0 到 1 之间的值(不含 0 和 1)。

与任何回归模型一样,逻辑回归模型可以预测数字。但是,此数字通常会成为二元分类模型的一部分,如下所示:

  • 如果预测数字大于分类阈值,则二元分类模型会预测正类别。
  • 如果预测数量小于分类阈值,则二元分类模型会预测负类别。

对数损失

#fundamentals

在二元逻辑回归中使用的损失函数

对数几率

#fundamentals

某个事件几率的对数。

#fundamentals

训练监督式模型期间,衡量模型的预测与其标签的差距。

损失函数计算损失。

损失曲线

#fundamentals

损失随训练迭代次数的函数而绘制的图表。下图显示了典型的损失曲线:

损失与训练迭代的笛卡尔图,显示损失在初始迭代中快速下降,然后逐渐下降,然后在最终迭代期间呈平斜率。

损失曲线可以帮助您确定模型何时收敛过拟合

损失曲线可以绘制以下所有类型的损失:

另请参阅泛化曲线

损失函数

#fundamentals

训练或测试期间,用于计算一批量样本的损失的数学函数。对于预测效果较好的模型,与预测质量不佳的模型相比,损失函数返回的损失要低。

训练的目标通常是尽可能降低损失函数返回的损失。

损失函数种类繁多。请为您正在构建的模型类型选择合适的损失函数。例如:

M

机器学习

#fundamentals

根据输入数据训练 模型的程序或系统。经过训练的模型可以根据从用于训练模型的同一分布中抽取的新(从未见过)数据做出有用的预测。

机器学习是指与这些程序或系统相关的研究领域。

多数类

#fundamentals

分类不平衡的数据集中更为常见的标签。例如,假设一个数据集包含 99% 的负类别标签和 1% 的正向标签,则负类别标签是多数类别。

少数类相对。

小批次

#fundamentals

在一次迭代中处理的批量中随机选择的小型子集。小批次的批次大小通常介于 10 到 1,000 个样本之间。

例如,假设整个训练集(整个批次)包含 1000 个样本。进一步假设您将每个小批量的批量大小设置为 20。因此,每次迭代都会从 1,000 个样本中随机抽取 20 个样本确定损失,然后相应地调整权重偏差

计算小批量的损失比计算全批量中所有样本的损失要高效得多。

少数类

#fundamentals

分类不平衡的数据集中不太常见的标签。例如,假设一个数据集包含 99% 的负例标签和 1% 的正例标签,则正例标签为少数类别。

多数类相对。

model

#fundamentals

一般而言,任何处理输入数据并返回输出的数学结构。换句话说,模型是系统进行预测所需的一组参数和结构。在监督式机器学习中,模型将样本作为输入,并推断预测作为输出。在监督式机器学习中,模型略有不同。例如:

  • 线性回归模型由一组权重偏差组成。
  • 神经网络模型由以下部分组成:
    • 一组隐藏层,每个隐藏层包含一个或多个神经元
    • 与每个神经元相关的权重和偏差。
  • 决策树模型包含以下内容:
    • 树的形状;即条件与叶子连接的模式。
    • 条件和叶子。

您可以保存、恢复或复制模型。

非监督式机器学习也会生成模型,通常一个函数可以将输入样本映射到最合适的集群

多类别分类

#fundamentals

在监督式学习中,一种分类问题,是指数据集中包含两个以上类别的标签。例如,Iris 数据集中的标签必须是以下三个类别之一:

  • 山鸢尾
  • 维吉尼亚鸢尾
  • 变色鸢尾

利用 Iris 数据集训练的模型,基于新样本预测鸢尾花类型,它执行的是多类别分类。

相比之下,正好区分两个类别的分类问题是二元分类模型。例如,预测“垃圾邮件”或“非垃圾邮件”的电子邮件模型是一种二元分类模型。

在聚类问题中,多类别分类是指两个以上的聚类。

负类别

#fundamentals

二元分类中,一种类别称为“正类别”,另一种类别称为“负类别”。正类别是模型要测试的对象或事件,负类别是另一种可能性。例如:

  • 在医学检查中,负类别可以是“非肿瘤”。
  • 电子邮件分类器中的负类别可以是“非垃圾邮件”。

正类别相对。

输出表示

#fundamentals

包含至少一个隐藏层模型modelmodel深度神经网络是一种包含多个隐藏层的神经网络。例如,下图显示了一个包含两个隐藏层的深度神经网络。

具有输入层、两个隐藏层和输出层的神经网络。

神经网络中的每个神经元都连接到下一层中的所有节点。 例如,在上图中,请注意,第一个隐藏层中的三个神经元分别连接到第二个隐藏层中的两个神经元。

计算机上实现的神经网络有时称为人工神经网络,以便将其与大脑和其他神经系统中的神经网络区分开来。

一些神经网络可以模拟不同特征和标签之间极其复杂的非线性关系。

另请参阅卷积神经网络循环神经网络

神经元

#fundamentals

在机器学习中,神经网络隐藏层中的一个不同单元。每个神经元执行以下两步操作:

  1. 计算输入值的加权总和与对应权重的乘积。
  2. 将加权和作为输入传递给激活函数

第一个隐藏层中的神经元接受来自输入层中特征值的输入。除第一个隐藏层之外,任何隐藏层中的神经元接受来自前一个隐藏层中神经元的输入。例如,第二个隐藏层中的神经元接受来自第一个隐藏层中的神经元的输入。

下图突出显示了两个神经元及其输入。

具有输入层、两个隐藏层和输出层的神经网络。其中有两个神经元突出显示:一个位于第一个隐藏层,一个位于第二个隐藏层。第一个隐藏层中突出显示的神经元从输入层中的两个特征接收输入。第二个隐藏层中突出显示的神经元从第一个隐藏层中的三个神经元分别接收输入。

神经网络中的神经元模拟大脑和神经系统其他部分神经元的行为。

节点(神经网络)

#fundamentals

隐藏层中的神经元

非线性

#fundamentals

两个或多个变量之间的关系,无法仅通过加法和乘法表示。线性关系可以表示为线条;非线性关系不能表示为线条。例如,假设存在两个模型,每个模型将单个特征与单个标签相关联。左侧是线性模型,右侧是非线性模型:

两块地块。一个曲线图是一条线,因此这是线性关系。
          另一张曲线是曲线,因此为非线性关系。

非平稳性

#fundamentals

值在一个或多个维度(通常为时间)上发生变化的特征。以下面的非平稳性示例为例:

  • 特定商店销售的泳衣数量因季节而异。
  • 在特定地区,在一年中的大部分时间里,某种水果的收获量为零,但在短期内会大很多。
  • 由于气候变化,每年的平均气温会发生变化。

平稳性形成对比。

标准化

#fundamentals

从广义上讲,将变量的实际值范围转换为标准值范围的过程,例如:

  • -1 到 +1
  • 0 至 1
  • 正态分布

例如,假设某个特征的实际值范围是 800 到 2,400。作为特征工程的一部分,您可以将实际值归一化为标准范围,例如 -1 到 +1。

归一化是特征工程中的一项常见任务。如果特征向量中的每个数值特征的范围大致相同,则模型的训练速度通常较快(并可以生成更准确的预测)。

数值数据

#fundamentals

以整数或实数表示的特征。 例如,房屋估价模型可能用数值数据表示房屋大小(以平方英尺或平方米为单位)。如果用数值数据表示特征,则表示特征的值与标签具有数学关系。也就是说,房屋的平方米数可能与房屋价值存在某种数学关系。

并非所有整数数据都应表示为数值数据。例如,世界上某些地区的邮政编码是整数;但是,整数邮政编码在模型中不应表示为数值数据。这是因为邮政编码 20000 的有效性不是邮政编码 10000 的两倍(或一半)。此外,虽然不同的邮政编码确实与不同的房地产价值相关,但我们也不能假设邮政编码 20000 对应的房地产价值是邮政编码 10000 的房地产价值的两倍。邮政编码应表示为分类数据

数值特征有时称为连续特征

O

离线

#fundamentals

静态的含义相同。

离线推理

#fundamentals

模型生成一批预测,然后缓存(保存)这些预测的过程。然后,应用可以访问从缓存推断出的预测,而无需重新运行模型。

例如,假设某个模型每四小时生成一次当地天气预报(预测结果)。每个模型运行后,系统会缓存所有本地天气预报。天气应用会从缓存中检索天气预报。

离线推理也称为静态推理

在线推理相对。

独热编码

#fundamentals

将分类数据表示为向量,其中:

  • 一个元素设为 1。
  • 所有其他元素均设置为 0。

独热编码通常用于表示具有有限个可能值的字符串或标识符。例如,假设一个名为 Scandinavia 的特定分类特征具有五个可能的值:

  • “丹麦”
  • “瑞典”
  • “挪威”
  • “芬兰”
  • “冰岛”

独热编码可以表示五个值中的每个值,如下所示:

country 矢量
“丹麦” 1 0 0 0 0
“瑞典” 0 1 0 0 0
“挪威” 0 0 1 0 0
“芬兰” 0 0 0 1 0
“冰岛” 0 0 0 0 1

得益于独热编码,模型可以根据这五个国家/地区中的每一个学习不同的连接。

将特征表示为数值数据是独热编码的替代方案。遗憾的是,用数字表示斯堪的纳维亚国家/地区并不是一个不错的选择。例如,请考虑以下数字表示法:

  • “丹麦”为 0
  • “Sweden”是 1
  • “挪威”为 2
  • “芬兰”是 3
  • “冰岛”是 4

使用数字编码时,模型将以数学方式解释原始数字,并尝试根据这些数字进行训练。然而,冰岛的面积实际上并没有挪威的两倍(或一半),因此该模型会得出一些奇怪的结论。

一对多

#fundamentals

假设有一个有 N 个类别的分类问题,一个解决方案将由 N 个单独的二元分类器 - 一个二元分类器对应一种可能的结果。例如,假设有一个将样本分类为动物、蔬菜或矿物的模型,一对多解决方案会提供以下三个单独的二元分类器:

  • 动物还是非动物
  • 蔬菜和非蔬菜
  • 矿物和非矿物

online

#fundamentals

动态的含义相同。

在线推理

#fundamentals

根据需求生成预测。例如,假设某个应用将输入传递给模型并发出预测请求。使用在线推理的系统通过运行模型(并将预测结果返回给应用)来响应请求。

离线推理相对。

输出层

#fundamentals

神经网络的“最后一层”。输出层包含预测结果。

下图展示了一个小型深度神经网络,其中包含一个输入层、两个隐藏层和一个输出层:

具有一个输入层、两个隐藏层和一个输出层的神经网络。输入层由两个特征组成。第一个隐藏层由三个神经元组成,第二个隐藏层由两个神经元组成。输出层由单个节点组成。

过拟合

#fundamentals

创建一个与训练数据model高度匹配的模型model,以致模型无法根据新数据做出正确的预测。

正则化可以减少过拟合。用庞大且多样化的训练集进行训练也可以降低过拟合。

P

pandas

#fundamentals

基于 numpy 构建的面向列的数据分析 API。包括 TensorFlow 在内的许多机器学习框架都支持将 Pandas 数据结构作为输入。如需了解详情,请参阅 Pandas 文档

参数

#fundamentals

模型在训练期间学习的权重偏差。例如,在线性回归模型中,参数包括以下公式中的偏差 (b) 和所有权重(w1w2 等):

$$y' = b + w_1x_1 + w_2x_2 + … w_nx_n$$

相比之下,超参数则是您(或超参数翻转服务)为模型提供的值。例如,学习速率就是一种超参数。

正类别

#fundamentals

您要测试的类。

例如,癌症模型中的正类别可能是“肿瘤”。 电子邮件分类器中的正类别可能是“垃圾邮件”。

负类别相对。

后期处理

#fairness
#fundamentals

在运行模型后调整模型的输出。 后处理可用于强制执行公平性约束,而无需修改模型本身。

例如,您可以对二元分类器应用后处理,方法是设置分类阈值,以便通过检查某个属性的所有值的真正例率是否相同,保持某个属性的机会相等

预测

#fundamentals

模型的输出。例如:

  • 二元分类模型的预测可以是正类别,也可以是负类别。
  • 多类别分类模型的预测是一个类别。
  • 线性回归模型的预测结果是一个数字。

代理标签

#fundamentals

用于估算数据集中无法直接提供的标签的数据。

例如,假设您必须训练模型来预测员工的压力水平。您的数据集包含大量预测特征,但不包含名为“压力水平”的标签。不怀气,您选择“工作场所事故”作为压力水平的代理标签。毕竟,压力很大的员工比冷静的员工更容易遇到事故。或者他们呢?工作场所事故实际上可能因多种原因而有所上升和下降。

再举一个例子,假设您希望将“在下雨吗?”作为数据集的布尔值标签,但您的数据集不包含雨点数据。如果有照片,您可以建立带雨伞的照片作为“在下雨吗?”的代理标签。代理标签好吗?或许有可能,但某些文化的人更有可能带雨伞抵御阳光,而不是下雨。

代理标签往往不完美。请尽可能选择实际标签,而不是代理标签。也就是说,当实际标签不存在时,请非常谨慎地选择代理标签,选择最不糟糕的代理标签候选对象。

R

RAG

#fundamentals

检索增强生成的缩写。

标注者

#fundamentals

样本提供标签的人员。“注释者”是审核者的另一种称呼。

修正线性单元 (ReLU)

#fundamentals

一种激活函数,具有以下行为:

  • 如果输入为负或零,则输出为 0。
  • 如果输入为正,则输出等于输入。

例如:

  • 如果输入为 -3,则输出为 0。
  • 如果输入为 +3,则输出为 3.0。

以下是 ReLU 曲线图:

两条线的笛卡尔图。第一行的 y 常量为 0,沿 x 轴从 -infinity,0 到 0,-0 运行。
第二行从 0,0 开始。这条线的斜率为 +1,因此它的范围为 0,0 到 +无穷大,+无穷大。

ReLU 是一种非常流行的激活函数。尽管行为简单,但 ReLU 仍可让神经网络学习特征标签之间的非线性关系

回归模型

#fundamentals

通俗来说,是指生成数值预测的模型。(相比之下,分类模型会生成类别预测)。例如,以下都是回归模型:

  • 预测特定房屋价值(例如 423,000 欧元)的模型。
  • 用于预测特定树木的预期寿命(如 23.2 年)的模型。
  • 预测特定城市未来六小时内将降雨量(例如 0.18 英寸)的模型。

两种常见的回归模型是:

  • 线性回归:它会找出将标签值最适合特征的直线。
  • 逻辑回归:生成介于 0.0 到 1.0 之间的概率,系统随后通常会将此概率映射到类预测。

并非所有输出数值预测的模型都是回归模型。 在某些情况下,数值预测实际上只是一个恰好具有数字类名称的分类模型。例如,预测数字邮政编码的模型是分类模型,而不是回归模型。

正则化

#fundamentals

任何可减少过拟合的机制。 常见的正则化类型包括:

正则化也可以定义为对模型复杂度的惩罚。

正则化率

#fundamentals

一个数字,用于指定训练期间正则化的相对重要性。提高正则化率可以减少过拟合,但可能会降低模型的预测能力。相反,降低或省略正则化率会增加过拟合。

ReLU

#fundamentals

修正线性单元的缩写。

检索增强生成 (RAG)

#fundamentals

一种提高大型语言模型 (LLM) 输出质量的方法,具体方法是以模型训练后检索到的知识来源为基础。RAG 为训练好的 LLM 提供从可信知识库或文档检索到的信息,从而提高 LLM 响应的准确性。

使用检索增强生成的常见动机包括:

  • 提高模型生成的回答的真实准确度。
  • 向模型授予访问其未进行训练的知识的权限。
  • 更改模型使用的知识。
  • 启用模型以引用来源。

例如,假设化学应用使用 PaLM API 生成与用户查询相关的摘要。当应用后端收到查询时,后端:

  1. 搜索(“检索”)与用户查询相关的数据。
  2. 将相关化学数据附加到用户的查询中。
  3. 指示 LLM 根据附加数据创建摘要。

ROC(接收者操作特征)曲线

#fundamentals

二元分类中不同分类阈值真正例率假正例率的图表。

ROC 曲线的形状表明二元分类模型区分正类别与负类别的能力。例如,假设二元分类模型将所有负类别与所有正类别完美分离:

一条数轴,右侧是 8 个正例,左侧是 7 个负例。

上述模型的 ROC 曲线如下所示:

ROC 曲线。x 轴为假正例率,y 轴为真正例率。该曲线具有倒置的 L 形。该曲线的起点为 (0.0,0.0),然后直线上升到 (0.0,1.0)。然后曲线从 (0.0,1.0) 到 (1.0,1.0)。

相比之下,下图绘制了一个糟糕模型的原始逻辑回归值,该模型根本无法区分负类别和正类别:

包含正例和负类别完全混合的数轴。

此模型的 ROC 曲线如下所示:

ROC 曲线,实际为从 (0.0,0.0) 到 (1.0,1.0) 的直线。

另一方面,在现实世界中,大多数二元分类模型在一定程度上将正类别和负类别分开,但通常并非完美。因此,典型的 ROC 曲线介于以下两种极端情况之间:

ROC 曲线。x 轴为假正例率,y 轴为真正例率。ROC 曲线近似于从西向北横跨罗盘点的抖动弧。

理论上,ROC 曲线上最接近 (0.0,1.0) 的点确定理想分类阈值。但是,其他一些实际问题也会影响理想分类阈值的选择。例如,假负例带来的痛苦可能远远超过假正例。

称为 AUC 的数值指标将 ROC 曲线汇总为单个浮点值。

均方根误差 (RMSE)

#fundamentals

均方误差的平方根。

S 型函数

#fundamentals

一个数学函数,用于将输入值“挤压”到受限范围(通常为 0 到 1 或 -1 到 +1)。也就是说,您可以将任何数字(2、100 万、负 100 亿等)传递给 S 型函数,输出仍将处于受限范围内。S 型激活函数的曲线图如下所示:

二维曲线图,x 值的范围为无穷大到正正,而 y 值的范围几乎为 0 到 1 之间。当 x 为 0 时,y 为 0.5。该曲线的斜率始终为正,最高斜率为 0,0.5,并随着 x 的绝对值增加而逐渐减小。

S 型函数在机器学习中有多种用途,包括:

softmax 函数

#fundamentals

用于确定多类别分类模型中每个可能类别的概率的函数。这些概率相加等于 1.0。例如,下表显示了 softmax 如何分布各种概率:

图片是... Probability
0.85
0.13
0.02

Softmax 也称为“完整 softmax”。

候选采样相对。

稀疏特征

#language
#fundamentals

一种特征,其值主要为零或空。例如,如果某个特征包含 1 个值和 100 万个值,则属于稀疏特征。相反,密集特征的值主要不为零或为空。

在机器学习中,大量的特征都是稀疏特征。分类特征通常是稀疏特征。例如,在森林中有 300 种可能的树种中,一个样本可能只会识别一棵“枫树”。或者,在视频库的数百万个视频中,只有一个样本可以识别“卡萨布兰卡”。

在模型中,您通常使用独热编码表示稀疏特征。如果独热编码很大,可以在独热编码之上放置一个嵌入层,以提高效率。

稀疏表示法

#language
#fundamentals

仅存储非零元素的位置

例如,假设名为 species 的分类特征识别特定森林中的 36 种树种。并进一步假设每个示例仅标识一个物种。

您可以使用独热矢量来表示每个样本中的树种。独热矢量将包含单个 1(用于表示该示例中的特定树种)和 35 个 0(代表该示例中未包含的 35 个树种)。因此,maple 的独热表示法可能如下所示:

一个矢量,其中位置 0 到 23 存储值 0,位置 24 存储值 1,位置 25 到 35 存储值 0。

或者,稀疏表示法将仅确定特定物种的位置。如果 maple 在位置 24,则 maple 的稀疏表示法为:

24

请注意,稀疏表示法比独热表示法更紧凑。

稀疏向量

#fundamentals

值大部分为零的向量。另请参阅稀疏特征稀疏性

平方损失

#fundamentals

L2 损失的含义相同。

静态

#fundamentals

某项操作只执行一次,而不是连续执行。 术语“静态”和“离线”是同义词。以下是在机器学习中静态离线的常见用法:

  • 静态模型(即离线模型)是指训练一次后使用一段时间的模型。
  • 静态训练(即离线训练)是训练静态模型的过程。
  • 静态推理(或离线推理)是模型一次生成一批预测的过程。

动态相对。

静态推理

#fundamentals

离线推理的同义词。

平稳性

#fundamentals

一个特征,其值在一个或多个维度(通常是时间)上不会发生变化。例如,如果某个特征的值在 2021 年和 2023 年看起来大致相同,则该特征表现出平稳性。

在现实世界中,很少有特征表现出平稳性。即使是与稳定性同义的特征(如海平面)也会随时间发生变化。

非平稳性相对。

随机梯度下降法 (SGD)

#fundamentals

一种梯度下降法,其中批量大小为 1。换言之,SGD 会针对从训练集中均匀随机选择的单个样本进行训练。

监督式机器学习

#fundamentals

使用特征及其相应的标签来训练模型modelmodelmodel。监督式机器学习类似于通过研究一组问题及其相应的答案来学习一个主题。掌握问题和答案之间的对应关系后,学生就可以针对同一主题的新问题(从未见过)提供答案。

非监督式机器学习相对。

合成特征

#fundamentals

一种特征,不在输入特征之列,而是由一个或多个输入特征组合而成。用于创建合成特征的方法包括:

  • 将连续特征分桶到范围分箱中。
  • 创建特征组合
  • 将一个特征值与其他特征值或其自身相乘(或除以)。例如,如果 ab 是输入特征,那么以下是合成特征的示例:
    • ab
    • a2
  • 对特征值应用超越函数。例如,如果 c 是输入特征,则以下是合成特征的示例:
    • sin(c)
    • ln(c)

通过单独进行归一化缩放创建的特征不属于合成特征。

T

测试损失

#fundamentals

指标,表示模型在测试集上的损失构建model时,您通常会尝试最大限度地降低测试损失。这是因为,与较低的训练损失或低验证损失相比,较低测试损失的相关质量信号更强。

如果测试损失与训练损失或验证损失之间存在较大差距,有时表明您需要提高正则化率

训练

#fundamentals

确定构成模型的理想参数(权重和偏差)的过程。在训练期间,系统会读取样本并逐步调整参数。在训练中,每个样本都会使用几次到数十亿次。

训练损失

#fundamentals

一个指标,表示模型在特定训练迭代期间的损失例如,假设损失函数为均方误差也许第 10 次迭代的训练损失(均方误差)为 2.2,而第 100 次迭代的训练损失为 1.9。

损失曲线绘制的是训练损失与迭代次数的关系。损失曲线可提供有关训练的以下提示:

  • 向下的斜率表示模型在改进。
  • 如果有一个上升的斜率,则意味着模型在不断变差。
  • 平缓表示模型已达到收敛

例如,下面在某种程度上进行了一些理想化的损失曲线显示了:

  • 在初始迭代期间有一个陡峭的向下斜坡,这意味着模型可以迅速得到改进。
  • 一个逐渐平缓(但仍在下降)的斜率,直到接近训练结束,这表示以比初始迭代期间更慢的速度继续改进模型。
  • 接近训练结束时的平缓坡,表明收敛。

训练损失与迭代的对比图。此损失曲线以陡峭的向下斜率开始。斜率逐渐趋于平缓,直到斜率变为 0。

虽然训练损失很重要,但另请参阅泛化

训练-应用偏差

#fundamentals

模型在训练期间的性能与同一模型在服务期间的性能之间的差异。

训练集

#fundamentals

用于训练模型数据集的子集。

通常,数据集中的样本会被划分为以下三个不同的子集:

理想情况下,数据集中的每个样本应仅属于上述子集之一。例如,一个样本不应同时属于训练集和验证集。

真负例 (TN)

#fundamentals

模型正确预测负类别的一个示例。例如,模型推断出某封电子邮件不是垃圾邮件,而该电子邮件确实不是垃圾邮件。

正例 (TP)

#fundamentals

模型正确预测正类别的示例。例如,模型推断出某封电子邮件是垃圾邮件,而该电子邮件确实是垃圾邮件。

真正例率 (TPR)

#fundamentals

召回率的含义相同。具体来说:

$$\text{true positive rate} = \frac{\text{true positives}} {\text{true positives} + \text{false negatives}}$$

真正例率是 ROC 曲线的 y 轴。

U

欠拟合

#fundamentals

生成预测能力较差的模型model,因为模型尚未充分掌握训练数据的复杂性。许多问题都可能会导致欠拟合,包括:

无标签样本

#fundamentals

包含特征但没有标签的示例。例如,下表显示了房屋估价模型的三个无标签样本,每个样本都有三个特征,但没有房屋价值:

卧室数量 浴室数量 房屋存在时间
3 2 15
2 1 72
4 2 34

监督式机器学习中,模型使用有标签样本进行训练,并使用无标签样本进行预测。

半监督非监督式学习中,无标签样本在训练过程中使用。

将无标签样本与有标签样本进行对比。

非监督式机器学习

#clustering
#fundamentals

训练模型model,以找出数据集(通常是无标签数据集)中的规律。

非监督式机器学习最常见的用途是将数据聚类为类似的样本组。例如,非监督式机器学习算法可以根据音乐的各种属性对歌曲进行聚类。生成的聚类可以作为其他机器学习算法(例如音乐推荐服务)的输入。当有用的标签不足或缺失时,聚类会有所帮助。例如,在反滥用和反欺诈等领域,聚类有助于人们更好地了解数据。

监督式机器学习相对。

V

validation

#fundamentals

对模型质量的初始评估。 验证功能会根据验证集检查模型的预测结果质量。

由于验证集与训练集不同,因此验证有助于防止过拟合

您可以考虑将根据验证集评估模型作为第一轮测试,而根据测试集评估模型,将其作为第二轮测试。

验证损失

#fundamentals

一个指标,表示模型在训练的特定迭代期间在验证集上的损失

另请参阅泛化曲线

验证集

#fundamentals

数据集的一部分,用于对经过训练的模型执行初始评估。通常,您会基于验证集多次评估经过训练的模型,然后再根据测试集评估模型。

按照传统,您可以将数据集内的样本划分为以下三个不同的子集:

理想情况下,数据集中的每个样本应仅属于上述子集之一。例如,一个样本不应同时属于训练集和验证集。

西

权重

#fundamentals

模型乘以另一个值的值。 训练是确定模型理想权重的过程;推断是使用这些已学到的权重进行预测的过程。

加权和

#fundamentals

所有相关输入值的总和乘以其对应的权重。例如,假设相关输入包含以下内容:

输入值 输入权重
2 -1.3
-1 0.6
3 0.4

因此,加权和为:

weighted sum = (2)(-1.3) + (-1)(0.6) + (3)(0.4) = -2.0

加权和是激活函数的输入参数。

Z

Z-score 标准化

#fundamentals

一种缩放技术,将原始特征值替换为浮点值,该浮点值表示与特征的平均值之间的标准差数。例如,假设某个特征的平均值为 800,标准差为 100。下表显示了 Z 分数归一化如何将原始值映射到其 Z 分数:

原始值 Z-score
800 0
950 提升了 1.5
575 -2.25

然后,机器学习模型会根据该特征的 Z 分数(而不是原始值)进行训练。