谷歌开发者:机器学习基本术语与概念(下)

295 阅读24分钟

谷歌开发者:机器学习基本术语与概念(下)

谷歌开发者曾经整理了机器学习常见的一些术语与概念。为了便于大家学习,先荐将这些术语与基本概念编译、整理,分两篇文章分享给大家,以下是从A到Z的基本术语与概念。

H

启发式(heuristic)

一个问题的实际的和非最优的解,但能从学习经验中获得足够多的进步。

隐藏层(hidden layer)

神经网络中位于输入层(即特征)和输出层(即预测)之间的合成层。一个神经网络包含一个或多个隐藏层。

合页损失函数(Hinge loss)

损失函数的一个类型,用于分类模型以寻找距离每个样本尽可能远的决策边界,即最大化样本和边界之间的边缘。KSVMs 使用 hinge 损失函数(或相关的函数,比如平方 hinge 函数)。在二元分类中,hinge 损失函数按以下方式定义:

[公式]

其中 y'是分类器模型的列输出:

[公式]

y 是真实的标签,-1 或+1。

因此,hinge 损失将是下图所示的样子:



测试数据(holdout data)

有意不用于训练的样本。验证数据集(validation data set)和测试数据集(test data set)是测试数据(holdout data)的两个例子。测试数据帮助评估模型泛化到除了训练数据之外的数据的能力。测试集的损失比训练集的损失提供了对未知数据集的损失更好的估计。

超参数(hyperparameter)

连续训练模型的过程中可以拧动的「旋钮」。例如,相对于模型自动更新的参数,学习率(learning rate)是一个超参数。和参量对照。

I

独立同等分布(independently and identically distributed,i.i.d)

从不会改变的分布中获取的数据,且获取的每个值不依赖于之前获取的值。i.i.d. 是机器学习的理想情况——一种有用但在现实世界中几乎找不到的数学构建。例如,网页访客的分布可能是短暂时间窗口上的 i.i.d;即分布不会在该时间窗口发生改变,每个人的访问都与其他人的访问独立。但是,如果你扩展了时间窗口,则会出现网页访客的季节性差异。

推断(inference)

在机器学习中,通常指将训练模型应用到无标注样本来进行预测的过程。在统计学中,推断指在观察到的数据的基础上拟合分布参数的过程。

输入函数 (input function)

在 TensorFlow 中,用于将输入数据返回到 Estimator 的训练、评估或预测方法的函数。例如,训练输入函数会返回训练集中的一批特征和标签。

输入层(input layer)

神经网络的第一层(接收输入数据)。

可解释性 (interpretability)

模型的预测可解释的难易程度。深度模型通常不可解释,也就是说,很难对深度模型的不同层进行解释。相比之下,线性回归模型和宽度模型的可解释性通常要好得多。

评分者间一致性(inter-rater agreement)

用来衡量一项任务中评分者意见一致的指标。如果意见不一致,则可能需要改进任务说明。有时也叫标注者间信度(inter-annotator agreement)或评分者间信度(inter-rater reliability)。

迭代 (iteration)

模型的权重在训练期间的一次更新。迭代包含计算参数在单批次数据上的梯度损失。

K

Kernel 支持向量机(Kernel Support Vector Machines/KSVM)

一种分类算法,旨在通过将输入数据向量映射到更高维度的空间使正类和负类之间的边际最大化。例如,考虑一个输入数据集包含一百个特征的分类问题。为了使正类和负类之间的间隔最大化,KSVM 从内部将特征映射到百万维度的空间。KSVM 使用的损失函数叫作 hinge 损失。

L

L1 损失函数(L1 loss)

损失函数基于模型对标签的预测值和真实值的差的绝对值而定义。L1 损失函数比起 L2 损失函数对异常值的敏感度更小。

L1 正则化(L1 regularization)

一种正则化,按照权重绝对值总和的比例进行惩罚。在依赖稀疏特征的模型中,L1 正则化帮助促使(几乎)不相关的特征的权重趋近于 0,从而从模型中移除这些特征。

L2 损失(L2 loss)

参见平方损失。

L2 正则化(L2 regularization)

一种正则化,按照权重平方的总和的比例进行惩罚。L2 正则化帮助促使异常值权重更接近 0 而不趋近于 0。(可与 L1 正则化对照阅读。)L2 正则化通常改善线性模型的泛化效果。

标签(label)

在监督式学习中,样本的“答案”或“结果”。标注数据集中的每个样本包含一或多个特征及一个标签。比如,在房屋数据集中,特征可能包括卧室数量、卫生间数量、房龄,而标签可能就是房子的价格。在垃圾邮件检测数据集中,特征可能包括主题、发出者何邮件本身,而标签可能是“垃圾邮件”或“非垃圾邮件”。

标注样本(labeled example)

包含特征和标签的样本。在监督式训练中,模型从标注样本中进行学习。

lambda

正则化率的同义词。(该术语有多种含义。这里,我们主要关注正则化中的定义。)

层(layer)

神经网络中的神经元序列,可以处理输入特征序列或神经元的输出。

它也是 TensorFlow 的一种抽象化概念。层是将张量和配置选项作为输入、输出其他张量的 Python 函数。一旦必要的张量出现,用户就可以通过模型函数将结果转换成估计器。

学习速率(learning rate)

通过梯度下降训练模型时使用的一个标量。每次迭代中,梯度下降算法使学习率乘以梯度,乘积叫作 gradient step。

学习速率是一个重要的超参数。

最小二乘回归(least squares regression)

通过 L2 损失最小化进行训练的线性回归模型。

线性回归(linear regression)

对输入特征的线性连接输出连续值的一种回归模型。

logistic 回归(logistic regression)

将 sigmoid 函数应用于线性预测,在分类问题中为每个可能的离散标签值生成概率的模型。尽管 logistic 回归常用于二元分类问题,但它也用于多类别分类问题(这种情况下,logistic 回归叫作「多类别 logistic 回归」或「多项式 回归」。

对数损失函数(Log Loss)

二元 logistic 回归模型中使用的损失函数。

损失(Loss)

度量模型预测与标签距离的指标,它是度量一个模型有多糟糕的指标。为了确定损失值,模型必须定义损失函数。例如,线性回归模型通常使用均方差作为损失函数,而 logistic 回归模型使用对数损失函数。

M

机器学习(machine learning)

利用输入数据构建(训练)预测模型的项目或系统。该系统使用学习的模型对与训练数据相同分布的新数据进行有用的预测。机器学习还指与这些项目或系统相关的研究领域。

均方误差(Mean Squared Error/MSE)

每个样本的平均平方损失。MSE 可以通过平方损失除以样本数量来计算。TensorFlow Playground 展示「训练损失」和「测试损失」的值是 MSE。

小批量(mini-batch)

在训练或推断的一个迭代中运行的整批样本的一个小的随机选择的子集。小批量的大小通常在 10 到 1000 之间。在小批量数据上计算损失比在全部训练数据上计算损失要高效的多。

小批量随机梯度下降(mini-batch stochastic gradient descent)

使用小批量的梯度下降算法。也就是,小批量随机梯度下降基于训练数据的子集对 梯度进行评估。Vanilla SGD 使用 size 为 1 的小批量。

模型(model)

机器学习系统从训练数据中所学内容的表示。该术语有多个含义,包括以下两个相关含义:

  • TensorFlow 图,显示如何计算预测的结构。
  • TensorFlow 图的特定权重和偏差,由训练决定。

模型训练(model training)

确定最佳模型的过程。

动量(Momentum)

一种复杂的梯度下降算法,其中的学习步不只依赖于当前步的导数,还依赖于先于它的步。动量包括随着时间计算梯度的指数加权移动平均数,类似于物理学中的动量。动量有时可以阻止学习陷于局部最小值。

多类别(multi-class)

在多于两类的类别中进行分类的分类问题。例如,有约 128 种枫树,那么分类枫树品种的模型就是多类别的。反之,把电子邮件分成两个类别(垃圾邮件和非垃圾邮件)的模型是二元分类器模型。

N

NaN trap

训练过程中,如果模型中的一个数字变成了 NaN,则模型中的很多或所有其他数字最终都变成 NaN。NaN 是「Not a Number」的缩写。

负类(negative class)

在二元分类中,一个类别是正类,另外一个是负类。正类就是我们要找的目标,负类是另外一种可能性。例如,医疗测试中的负类可能是「非肿瘤」,电子邮件分类器中的负类可能是「非垃圾邮件」。

神经网络(neural network)

该模型从大脑中获取灵感,由多个层组成(其中至少有一个是隐藏层),每个层包含简单的连接单元或神经元,其后是非线性。

神经元(neuron)

神经网络中的节点,通常输入多个值,生成一个输出值。神经元通过将激活函数(非线性转换)应用到输入值的加权和来计算输出值。

归一化(normalization)

将值的实际区间转化为标准区间的过程,标准区间通常是-1 到+1 或 0 到 1。例如,假设某个特征的自然区间是 800 到 6000。通过减法和分割,你可以把那些值标准化到区间-1 到+1。参见缩放。

numpy

Python 中提供高效数组运算的开源数学库。pandas 基于 numpy 构建。

O

目标(objective)

算法尝试优化的目标函数。

离线推断(offline inference)

生成一组预测并存储,然后按需检索那些预测。可与在线推断对照阅读。

one-hot 编码(one-hot encoding)

一个稀疏向量,其中:

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

独热编码常用于表示有有限可能值集合的字符串或标识符。例如,假设一个记录了 15000 个不同品种的植物数据集,每一个用独特的字符串标识符来表示。作为特征工程的一部分,你可能将那些字符串标识符进行独热编码,每个向量的大小为 15000。

一对多(one-vs.-all)

给出一个有 N 个可能解决方案的分类问题,一对多解决方案包括 N 个独立的二元分类器——每个可能的结果都有一个二元分类器。例如,一个模型将样本分为动物、蔬菜或矿物,则一对多的解决方案将提供以下三种独立的二元分类器:

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

在线推断(online inference)

按需生成预测。可与离线推断对照阅读。

运算(Operation/op)

TensorFlow 图中的一个节点。在 TensorFlow 中,任何创建、控制或损坏张量的步骤都是运算。例如,矩阵乘法是一个把两个张量作为输入、生成一个张量作为输出的运算。

优化器(optimizer)

梯度下降算法的特定实现。TensorFlow 的基类优化器是 tf.train.Optimizer。不同的优化器(tf.train.Optimizer 的子类)对应不同的概念,如:

  • 动量(Momentum)
  • 更新频率(AdaGrad = ADAptive GRADient descent;Adam = ADAptive with Momentum;RMSProp)
  • 稀疏性/正则化(Ftrl)
  • 更复杂的数学(Proximal及其他)

我们还可以想象 NN-driven optimizer。

异常值(outlier)

与大多数值差别很大的值。在机器学习中,下列都是异常值:

  • 高绝对值的权重。
  • 与实际值差距过大的预测值。
  • 比平均值多大约 3 个标准差的输入数据的值。

异常值往往使模型训练中出现问题。

输出层(output layer)

神经网络的「最后」一层。这一层包含整个·模型所寻求的答案。

过拟合(overfitting)

创建的模型与训练数据非常匹配,以至于模型无法对新数据进行正确的预测。

P

pandas

一种基于列的数据分析 API。很多机器学习框架,包括 TensorFlow,支持 pandas 数据结构作为输入。参见 pandas 文档。

参数(parameter)

机器学习系统自行训练的模型的变量。例如,权重是参数,它的值是机器学习系统通过连续的训练迭代逐渐学习到的。可与超参数对照阅读。

参数服务器(Parameter Server/PS)

用于在分布式设置中跟踪模型参数。

参数更新(parameter update)

在训练过程中调整模型参数的操作,通常在梯度下降的单个迭代中进行。

偏导数(partial derivative)

一个多变量函数的偏导数是它关于其中一个变量的导数,而保持其他变量恒定。例如,f(x, y) 对于 x 的偏导数就是 f(x) 的导数,y 保持恒定。x 的偏导数中只有 x 是变化的,公式中其他的变量都不用变化。

分区策略(partitioning strategy)

在多个参数服务器中分割变量的算法。

性能(performance)

具有多种含义:

  • 在软件工程中的传统含义:软件运行速度有多快/高效?
  • 在机器学习中的含义:模型的准确率如何?即,模型的预测结果有多好?

困惑度(perplexity)

对模型完成任务的程度的一种度量指标。例如,假设你的任务是阅读用户在智能手机上输入的单词的头几个字母,并提供可能的完整单词列表。该任务的困惑度(perplexity,P)是为了列出包含用户实际想输入单词的列表你需要进行的猜测数量。

困惑度和交叉熵的关系如下:


流程(pipeline)

机器学习算法的基础架构。管道包括收集数据、将数据放入训练数据文件中、训练一或多个模型,以及最终输出模型。

正类(positive class)

在二元分类中,有两种类别:正类和负类。正类是我们测试的目标。(不过必须承认,我们同时测试两种结果,但其中一种不是重点。)例如,医疗测试中正类可能是「肿瘤」,电子邮件分类器中的正类可能是「垃圾邮件」。可与负类对照阅读。

精度(precision)

分类模型的一种指标。准确率指模型预测正类时预测正确的频率。即:


预测(prediction)

模型在输入样本后的输出结果。

预测偏差(prediction bias)

揭示预测的平均值与数据集中标签的平均值的差距。

预制评估器(pre-made Estimator)

已经构建好的评估器。TensorFlow 提供多个预制评估器,包括 DNNClassifier、DNNRegressor 和 LinearClassifier。我们可以根据指导(www.tensorflow.org/extend/esti…)构建自己的预制评估器。

预训练模型(pre-trained model)

已经训练好的模型或模型组件(如嵌入)。有时,我们将预训练嵌入馈送至神经网络。其他时候,我们的模型自行训练嵌入,而不是依赖于预训练嵌入。

先验信念(prior belief)

训练开始之前我们对数据的信念。例如,L2 正则化依赖于权重值很小且正常分布在 0 周围的信念。

Q

队列(queue)

实现队列数据结构的 TensorFlow 操作。通常在输入/输出(I/O)中使用。

R

秩(rank)

机器学习领域中包含多种含义的术语:

  • 张量中的维度数量。比如,标量有 1 个秩,向量有 1 个秩,矩阵有 2 个秩。(注:在这个词汇表中,「秩」的概念和线性代数中「秩」的概念不一样,例如三阶可逆矩阵的秩为 3。)
  • 机器学习问题中类别的序数位置,按从高到低的顺序给类别分类。比如,行为排序系统可以把狗的奖励按从高(牛排)到低(甘蓝)排序。

评分者(rater)

为样本提供标签的人,有时也叫「标注者」。

召回率(recall)

分类模型的一个指标,可以回答这个问题:模型能够准确识别多少正标签?即:


修正线性单元(Rectified Linear Unit/ReLU)

一种具备以下规则的激活函数:

  • 如果输入为负或零,则输出为 0。
  • 如果输入为正,则输出与输入相同。

回归模型(regression model)

一种输出持续值(通常是浮点数)的模型。而分类模型输出的是离散值,如「day lily」或「tiger lily」。

正则化(regularization)

对模型复杂度的惩罚。正则化帮助防止过拟合。正则化包括不同种类:

  • L1 正则化
  • L2 正则化
  • dropout 正则化
  • early stopping(这不是正式的正则化方法,但可以高效限制过拟合)

正则化率(regularization rate)

一种标量级,用 lambda 来表示,指正则函数的相对重要性。从下面这个简化的损失公式可以看出正则化率的作用:

[公式]

提高正则化率能够降低过拟合,但可能会使模型准确率降低。

表征

将数据映射到有用特征的过程。

受试者工作特征曲线(receiver operating characteristic/ROC Curve)

反映在不同的分类阈值上,真正类率和假正类率的比值的曲线。参见 AUC。

根目录(root directory)

指定放置 TensorFlow 检查点文件子目录和多个模型的事件文件的目录。

均方根误差(Root Mean Squared Error/RMSE)

均方误差的平方根。

S

Saver

负责存储模型检查点文件的 TensorFlow 对象。

缩放(scaling)

特征工程中常用的操作,用于控制特征值区间,使之与数据集中其他特征的区间匹配。例如,假设你想使数据集中所有的浮点特征的区间为 0 到 1。给定一个特征区间是 0 到 500,那么你可以通过将每个值除以 500,缩放特征值区间。还可参见正则化。

scikit-learn

一种流行的开源机器学习平台。网址:www.scikit-learn.org

序列模型(sequence model)

输入具有序列依赖性的模型。例如,根据之前观看过的视频序列对下一个视频进行预测。

会话(session)

保持 TensorFlow 程序的状态(如变量)。

Sigmoid 函数(sigmoid function)

把 logistic 或多项式回归输出(对数几率)映射到概率的函数,返回的值在 0 到 1 之间。sigmoid 函数的公式如下:


其中σ在 logistic 回归问题中只是简单的:

在有些神经网络中,sigmoid 函数和激活函数一样。

softmax

为多类别分类模型中每个可能的类提供概率的函数。概率加起来的总和是 1.0。例如,softmax 可能检测到某个图像是一只狗的概率为 0.9,是一只猫的概率为 0.08,是一匹马的概率为 0.02。(也叫作 full softmax)。

稀疏特征(sparse feature)

值主要为 0 或空的特征向量。比如,一个向量的值有 1 个 1,、一百万个 0,则该向量为稀疏向量。再比如,搜索查询中的单词也是稀疏向量:在一种语言中有很多可以用的单词,但给定的查询中只用了其中的一些。

可与稠密特征对照阅读。

平方损失(squared loss)

线性回归中使用的损失函数(也叫作 L2 Loss)。该函数计算模型对标注样本的预测值和标签真正值之间差的平方。在平方之后,该损失函数扩大了不良预测的影响。即,平方损失比 L1 Loss 对异常值(outlier)的反应更加强烈。

静态模型(static model)

离线训练的模型。

稳态(stationarity)

数据集中的一种数据属性,数据分布在一或多个维度中保持不变。通常情况下,维度是时间,意味着具备平稳性的数据不会随着时间发生变化。比如,具备平稳性的数据从 9 月到 12 月不会改变。

步(step)

一个批量中的前向和后向评估。

步长(step size)

学习速率(learning rate)乘以偏导数的值,即梯度下降中的步长。

随机梯度下降(stochastic gradient descent/SGD)

批量大小为 1 的梯度下降算法。也就是说,SGD 依赖于从数据集中随机均匀选择出的一个样本,以评估每一步的梯度。

结构风险最小化(structural risk minimization/SRM)

这种算法平衡两个目标:

  • 构建预测性最强的模型(如最低损失)。
  • 使模型尽量保持简单(如强正则化)。

比如,在训练集上的损失最小化 + 正则化的模型函数就是结构风险最小化算法。更多信息,参见 www.svms.org/srm/。可与经验风险最小化对照阅读。

摘要(summary)

在 TensorFlow 中,特定步计算的值或值的集合,通常用于跟踪训练过程中的模型指标。

监督式机器学习(supervised machine learning)

利用输入数据及其对应标签来训练模型。监督式机器学习类似学生通过研究问题和对应答案进行学习。在掌握问题和答案之间的映射之后,学生就可以提供同样主题的新问题的答案了。可与非监督机器学习对照阅读。

合成特征(synthetic feature)

不在输入特征中,而是从一个或多个输入特征中派生出的特征。合成特征的类型包括:

  • 特征与自己或其他特征相乘(叫作特征交叉)。
  • 两个特征相除。
  • 将连续的特征放进 range bin 中。

由归一化或缩放单独创建的特征不是合成特征。

T

张量(tensor)

TensorFlow 项目的主要数据结构。张量是 N 维数据结构(N 的值很大),经常是标量、向量或矩阵。张量可以包括整数、浮点或字符串值。

张量处理单元(Tensor Processing Unit,TPU)

优化 TensorFlow 性能的 ASIC(application-specific integrated circuit,专用集成电路)。

张量形状(Tensor shape)

张量的元素数量包含在不同维度中。比如,[5, 10] 张量在一个维度中形状为 5,在另一个维度中形状为 10。

张量大小(Tensor size)

张量包含的标量总数。比如,[5, 10] 张量的大小就是 50。

TensorBoard

展示一个或多个 TensorFlow 项目运行过程中保存的摘要数据的控制面板。

TensorFlow

大型分布式机器学习平台。该术语还指 TensorFlow 堆栈中的基础 API 层,支持数据流图上的通用计算。

尽管 TensorFlow 主要用于机器学习,但是它也适用于要求使用数据流图进行数值运算的非机器学习任务。

TensorFlow Playground

一个可以看到不同超参数对模型(主要是神经网络)训练的影响的平台。前往 playground.tensorflow.org,使用 TensorFlow Playground。

TensorFlow Serving

帮助训练模型使之可部署到产品中的平台。

测试集(test set)

数据集的子集。模型经过验证集初步测试之后,使用测试集对模型进行测试。可与训练集和验证集对照阅读。

tf.Example

一种标准 protocol buffer,用于描述机器学习模型训练或推断的输入数据。

训练(training)

确定组成模型的完美参数的流程。

训练集(training set)

数据集子集,用于训练模型。可与验证集和测试集对照阅读。

真负类(true negative,TN)

被模型正确地预测为负类的样本。例如,模型推断某封电子邮件不是垃圾邮件,然后该电邮真的不是垃圾邮件。

真正类(true positive,TP)

被模型正确地预测为正类的样本。例如,模型推断某封电子邮件是垃圾邮件,结果该电邮真的是垃圾邮件。

真正类率(true positive rate,TP rate)

召回率(recall)的同义词。即:

TruePositiveRate=TruePositives/(TruePositives+FalseNegatives)

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

U

无标签样本(unlabeled example)

包含特征但没有标签的样本。无标签样本是推断的输入。在半监督学习和无监督学习的训练过程中,通常使用无标签样本。

无监督机器学习(unsupervised machine learning)

训练一个模型寻找数据集(通常是无标签数据集)中的模式。

无监督机器学习最常用于将数据分成几组类似的样本。例如,无监督机器学习算法可以根据音乐的各种属性聚类数据。用这种方式收集的数据可以作为其他机器学习算法(如音乐推荐服务)的输入。聚类在难以获取真正标签的情景中非常有用。例如,在反欺诈和反滥用的情景中,聚类可以帮助人类更好地理解数据。

无监督机器学习的另一个例子是主成分分析(principal component analysis,PCA)。如,将 PCA 应用于包含数百万购物车内容的数据集中时,就有可能发现有柠檬的购物车往往也有解酸剂。可与监督式机器学习对照阅读。

V

验证集(validation set)

数据集的一个子集(与训练集不同),可用于调整超参数。可与训练集和测试集对照阅读。

W

权重(weight)

线性模型中的特征系数,或者深度网络中的边缘。线性模型的训练目标是为每个特征确定一个完美的权重。如果权重为 0,则对应的特征对模型而言是无用的。

宽度模型(wide model)

线性模型通常具备很多稀疏输入特征。我们称之为“宽度”模型,因其具有大量与输出节点直接连接的输入,是一种特殊类型的神经网络。宽模型通常比深度模型更容易调试(debug)和检查。尽管宽模型无法通过隐藏层表达非线性,但它们可以使用特征交叉和 bucketization 等转换用不同方式对非线性建模。与深度模型相对。

如欲申请产品试用,欢迎添加先荐小助手微信号(ID:recsysfc)

本账号为第四范式智能推荐产品先荐的官方账号。账号立足于计算机领域,特别是人工智能相关的前沿研究,旨在把更多与人工智能相关的知识分享给公众,从专业的角度促进公众对人工智能的理解;同时也希望为人工智能相关人员提供一个讨论、交流、学习的开放平台,从而早日让每个人都享受到人工智能创造的价值。