Google出了一份机器学习术语表,列出了一般的机器学习术语和 TensorFlow 专用术语的定义,并且翻译成了中文,对理解机器学习中的术语很有帮助,于是我把它转载过来,方便学习和记录,这一篇是首字母L-Q
的内容。
原文链接:https://developers.google.cn/machine-learning/glossary/?hl=zh-CN
一种损失函数,基于模型预测的值与标签的实际值之差的绝对值。与 L 2 L_2 L2 损失函数相比, L 1 L_1 L1 损失函数对离群值的敏感性弱一些。
一种正则化,根据权重的绝对值的总和来惩罚权重。在依赖稀疏特征的模型中, L 1 L_1 L1 正则化有助于使不相关或几乎不相关的特征的权重正好为 0,从而将这些特征从模型中移除。与 L 2 L_2 L2 正则化相对。
请参阅平方损失函数。
一种正则化,根据权重的平方和来惩罚权重。 L 2 L_2 L2 正则化有助于使离群值(具有较大正值或较小负值)权重接近于 0,但又不正好为 0。(与 L1 正则化相对。)在线性模型中, L 2 L_2 L2 正则化始终可以改进泛化。
在监督式学习中,标签指样本的"答案"或"结果"部分。有标签数据集中的每个样本都包含一个或多个特征以及一个标签。例如,在房屋数据集中,特征可能包括卧室数、卫生间数以及房龄,而标签则可能是房价。在垃圾邮件检测数据集中,特征可能包括主题行、发件人以及电子邮件本身,而标签则可能是"垃圾邮件"或"非垃圾邮件"。
包含特征和标签的样本。在监督式训练中,模型从有标签样本中学习规律。
与正则化率的含义相同。
(多含义术语,我们在此关注的是该术语在正则化中的定义。)
神经网络中的一组神经元,负责处理一组输入特征,或一组神经元的输出。
此外还指 TensorFlow 中的抽象层。层是 Python 函数,以张量和配置选项作为输入,然后生成其他张量作为输出。当必要的张量组合起来后,用户便可以通过模型函数将结果转换为 Estimator。
一种 TensorFlow API,用于以层组合的方式构建深度神经网络。通过 Layers API,您可以构建不同类型的层,例如:
tf.layers.Dense
构建全连接层。tf.layers.Conv2D
构建卷积层。在编写自定义 Estimator 时,您可以编写"层"对象来定义所有隐藏层的特征。
Layers API 遵循 Keras layers API 规范。也就是说,除了前缀不同以外,Layers API 中的所有函数均与 Keras layers API 中的对应函数具有相同的名称和签名。
在训练模型时用于梯度下降的一个标量。在每次迭代期间,梯度下降法都会将学习速率与梯度相乘。得出的乘积称为梯度步长。
学习速率是一个重要的超参数。
一种通过最小化 L 2 L_2 L2 损失训练出的线性回归模型。
一种回归模型,通过将输入特征进行线性组合输出连续值。
一种模型,通过将 S 型函数应用于线性预测,生成分类问题中每个可能的离散标签值的概率。虽然逻辑回归经常用于二元分类问题,但也可用于多类别分类问题(其叫法变为多类别逻辑回归或多项回归)。
分类模型生成的原始(非标准化)预测向量,通常会传递给标准化函数。如果模型要解决多类别分类问题,则对数通常变成 softmax 函数的输入。之后,softmax 函数会生成一个(标准化)概率向量,对应于每个可能的类别。
此外,对数有时也称为 S 型函数的元素级反函数。如需了解详细信息,请参阅 tf.nn.sigmoid_cross_entropy_with_logits。
二元逻辑回归中使用的损失函数。
某个事件几率的对数。
如果事件涉及二元概率,则几率指的是成功概率 § 与失败概率 (1-p) 之比。例如,假设某个给定事件的成功概率为 90%,失败概率为 10%。在这种情况下,几率的计算公式如下:
几率 = p ( 1 − p ) = 0.9 0.1 = 9 \text{几率} = \frac{p}{(1- p)} = \frac{0.9}{0.1} = 9 几率=(1−p)p=0.10.9=9
简单来说,对数几率即几率的对数。按照惯例,"对数"指自然对数,但对数的基数其实可以是任何大于 1 的数。若遵循惯例,上述示例的对数几率应为:
对数几率 = ln ( 9 ) = 2.2 \text{对数几率} = \ln(9) = 2.2 对数几率=ln(9)=2.2
对数几率是 S 型函数的反函数。
一种衡量指标,用于衡量模型的预测偏离其标签的程度。或者更悲观地说是衡量模型有多差。要确定此值,模型必须定义损失函数。例如,线性回归模型通常将均方误差用作损失函数,而逻辑回归模型则使用对数损失函数。
一种程序或系统,用于根据输入数据构建(训练)预测模型。这种系统会利用学到的模型根据从分布(训练该模型时使用的同一分布)中提取的新数据(以前从未见过的数据)进行实用的预测。机器学习还指与这些程序或系统相关的研究领域。
每个样本的平均平方损失。MSE 的计算方法是平方损失除以样本数。TensorFlow Playground 显示的"训练损失"值和"测试损失"值都是 MSE。
您关心的一个数值。可能可以也可能不可以直接在机器学习系统中得到优化。您的系统尝试优化的指标称为目标。
一种用于评估模型的 TensorFlow API。例如,tf.metrics.accuracy
用于确定模型的预测与标签匹配的频率。在编写自定义 Estimator 时,您可以调用 Metrics API 函数来指定应如何评估您的模型。
从整批样本内随机选择并在训练或推断过程的一次迭代中一起运行的一小部分样本。小批次的批次大小通常介于 10 到 1000 之间。与基于完整的训练数据计算损失相比,基于小批次数据计算损失要高效得多。
一种采用小批次样本的梯度下降法。也就是说,小批次 SGD 会根据一小部分训练数据来估算梯度。Vanilla SGD 使用的小批次的大小为 1。
机器学习的缩写。
机器学习系统从训练数据学到的内容的表示形式。多含义术语,可以理解为下列两种相关含义之一:
Estimator 中的函数,用于实现机器学习训练、评估和推断。例如,模型函数的训练部分可以处理以下任务:定义深度神经网络的拓扑并确定其优化器函数。如果使用预创建的 Estimator,则有人已为您编写了模型函数。如果使用自定义 Estimator,则必须自行编写模型函数。
有关编写模型函数的详细信息,请参阅创建自定义 Estimator。
确定最佳模型的过程。
一种先进的梯度下降法,其中学习步长不仅取决于当前步长的导数,还取决于之前一步或多步的步长的导数。动量涉及计算梯度随时间而变化的指数级加权移动平均值,与物理学中的动量类似。动量有时可以防止学习过程被卡在局部最小的情况。
区分两种以上类别的分类问题。例如,枫树大约有 128 种,因此,确定枫树种类的模型就属于多类别模型。反之,仅将电子邮件分为两类(“垃圾邮件"和"非垃圾邮件”)的模型属于二元分类模型。
与多类别分类的含义相同。
模型中的一个数字在训练期间变成 NaN,这会导致模型中的很多或所有其他数字最终也会变成 NaN。
NaN 是"非数字"的缩写。
在二元分类中,一种类别称为正类别,另一种类别称为负类别。正类别是我们要寻找的类别,负类别则是另一种可能性。例如,在医学检查中,负类别可以是"非肿瘤"。在电子邮件分类器中,负类别可以是"非垃圾邮件"。另请参阅正类别。
一种模型,灵感来源于脑部结构,由多个层构成(至少有一个是隐藏层),每个层都包含简单相连的单元或神经元(具有非线性关系)。
神经网络中的节点,通常会接收多个输入值并生成一个输出值。神经元通过将激活函数(非线性转换)应用于输入值的加权和来计算输出值。
多含义术语,可以理解为下列两种含义之一:
将实际的值区间转换为标准的值区间(通常为 -1 到 +1 或 0 到 1)的过程。例如,假设某个特征的自然区间是 800 到 6000。通过减法和除法运算,您可以将这些值标准化为位于 -1 到 +1 区间内。
另请参阅缩放。
用整数或实数表示的特征。例如,在房地产模型中,您可能会用数值数据表示房子大小(以平方英尺或平方米为单位)。如果用数值数据表示特征,则可以表明特征的值相互之间具有数学关系,并且与标签可能也有数学关系。例如,如果用数值数据表示房子大小,则可以表明面积为 200 平方米的房子是面积为 100 平方米的房子的两倍。此外,房子面积的平方米数可能与房价存在一定的数学关系。
并非所有整数数据都应表示成数值数据。例如,世界上某些地区的邮政编码是整数,但在模型中,不应将整数邮政编码表示成数值数据。这是因为邮政编码 20000
在效力上并不是邮政编码 10000 的两倍(或一半)。此外,虽然不同的邮政编码确实与不同的房地产价值有关,但我们也不能假设邮政编码为 20000 的房地产在价值上是邮政编码为 10000 的房地产的两倍。邮政编码应表示成分类数据。
数值特征有时称为连续特征。
一个开放源代码数学库,在 Python 中提供高效的数组操作。Pandas 建立在 Numpy 之上。
算法尝试优化的指标。
生成一组预测,存储这些预测,然后根据需求检索这些预测。与在线推断相对。
一种稀疏向量,其中:
独热编码常用于表示拥有有限个可能值的字符串或标识符。例如,假设某个指定的植物学数据集记录了 15000 个不同的物种,其中每个物种都用独一无二的字符串标识符来表示。在特征工程过程中,您可能需要将这些字符串标识符编码为独热向量,向量的大小为 15000。
一种机器学习方法,通常用于对象分类,旨在通过单个训练样本学习有效的分类器。
另请参阅少量样本学习。
假设某个分类问题有 N 种可能的解决方案,一对多解决方案将包含 N 个单独的二元分类器 - 一个二元分类器对应一种可能的结果。例如,假设某个模型用于区分样本属于动物、蔬菜还是矿物,一对多解决方案将提供下列三个单独的二元分类器:
根据需求生成预测。与离线推断相对。
TensorFlow 图中的节点。在 TensorFlow 中,任何创建、操纵或销毁张量的过程都属于操作。例如,矩阵相乘就是一种操作,该操作以两个张量作为输入,并生成一个张量作为输出。
梯度下降法的一种具体实现。TensorFlow 的优化器基类是 tf.train.Optimizer。不同的优化器可能会利用以下一个或多个概念来增强梯度下降法在指定训练集中的效果:
甚至还包括 NN 驱动的优化器。
与大多数其他值差别很大的值。在机器学习中,下列所有值都是离群值。
离群值常常会导致模型训练出现问题。
神经网络的"最后"一层,也是包含答案的层。
创建的模型与训练数据过于匹配,以致于模型无法根据新数据做出正确的预测。
面向列的数据分析 API。很多机器学习框架(包括 TensorFlow)都支持将 Pandas 数据结构作为输入。请参阅 Pandas 文档。
机器学习系统自行训练的模型的变量。例如,权重就是一种参数,它们的值是机器学习系统通过连续的训练迭代逐渐学习到的。与超参数相对。
一种作业,负责在分布式设置中跟踪模型参数。
在训练期间(通常是在梯度下降法的单次迭代中)调整模型参数的操作。
一种导数,除一个变量之外的所有变量都被视为常量。例如,f(x, y) 对 x 的偏导数就是 f(x) 的导数(即,使 y 保持恒定)。f 对 x 的偏导数仅关注 x 如何变化,而忽略公式中的所有其他变量。
在参数服务器间分割变量的算法。
多含义术语,具有以下含义:
一种衡量指标,用于衡量模型能够多好地完成任务。例如,假设任务是读取用户使用智能手机键盘输入字词时输入的前几个字母,然后列出一组可能的完整字词。此任务的困惑度 § 是:为了使列出的字词中包含用户尝试输入的实际字词,您需要提供的猜测项的个数。
困惑度与交叉熵的关系如下:
p = 2 − 交叉熵 p = 2^{-\text{交叉熵}} p=2−交叉熵
机器学习算法的基础架构。流水线包括收集数据、将数据放入训练数据文件、训练一个或多个模型,以及将模型导出到生产环境。
将一个或多个由前趋的卷积层创建的矩阵压缩为较小的矩阵。池化通常是取整个池化区域的最大值或平均值。以下面的 3x3 矩阵为例:
池化运算与卷积运算类似:将矩阵分割为多个切片,然后按步长逐个运行卷积运算。例如,假设池化运算按 1x1 步长将卷积矩阵分割为 2x2 个切片。如下图所示,进行了四个池化运算。假设每个池化运算都选择该切片中四个值的最大值:
池化有助于在输入矩阵中实现平移不变性。
对于视觉应用来说,池化的更正式名称为空间池化。时间序列应用通常将池化称为时序池化。按照不太正式的说法,池化通常称为下采样或降采样。
在二元分类中,两种可能的类别分别被标记为正类别和负类别。正类别结果是我们要测试的对象。(不可否认的是,我们会同时测试这两种结果,但只关注正类别结果。)例如,在医学检查中,正类别可以是"肿瘤"。在电子邮件分类器中,正类别可以是"垃圾邮件"。
与负类别相对。
一种分类模型指标。精确率指模型正确预测正类别的频率,即:
精确率 = 正 例 数 正 例 数 + 假 正 例 数 \text{精确率} = \frac{正例数}{正例数 + 假正例数} 精确率=正例数+假正例数正例数
模型在收到输入样本后的输出。
一种值,用于表明预测平均值与数据集中标签的平均值相差有多大。
其他人已建好的 Estimator。TensorFlow 提供了一些预创建的 Estimator,包括 DNNClassifier
、DNNRegressor
和 LinearClassifier
。您可以按照这些说明构建自己预创建的 Estimator。
已经过训练的模型或模型组件(例如嵌套)。有时,您需要将预训练的嵌套馈送到神经网络。在其他时候,您的模型将自行训练嵌套,而不依赖于预训练的嵌套。
在开始采用相应数据进行训练之前,您对这些数据抱有的信念。例如, L 2 L_2 L2 正则化依赖的先验信念是权重应该很小且应以 0 为中心呈正态分布。
一种 TensorFlow 操作,用于实现队列数据结构。通常用于 I/O 中。
联系邮箱:[email protected]
CSDN:https://me.csdn.net/qq_41729780
知乎:https://zhuanlan.zhihu.com/c_1225417532351741952
公众号:复杂网络与机器学习
欢迎关注/转载,有问题欢迎通过邮箱交流。