- 机器学习实战(视频教学版)
- 迟殿委 王培进 王兴平
- 5356字
- 2024-12-30 15:19:11
1.3 机器学习常用术语
机器学习是一门专业性很强的技术,它大量地应用了数学、统计学上的知识,因此总会有一些陌生的词汇,这些词汇就像“拦路虎”一样阻碍着我们前进,甚至把我们吓跑。本节就来介绍机器学习中常用的术语,为后续的学习打下坚实的基础。
1.模型
模型这一词语将会贯穿整个教程的始末,它是机器学习中的核心概念。可以把它看作一个“魔法盒”,我们向它许愿(输入数据),它就会帮我们实现愿望(输出预测结果)。整个机器学习的过程都将围绕模型展开,训练出一个最优质的“魔法盒”,它可以尽量精准地实现我们许的“愿望”,这就是机器学习的目标。
2.数据集
数据集,从字面意思很容易理解,它表示一个承载数据的集合。如果说“模型”是“魔法盒”,那么数据集就是负责给它充电的“能量电池”。简单地说,如果缺少了数据集,那么模型就没有存在的意义了。数据集可划分为“训练集”和“测试集”,它们分别在机器学习的“训练阶段”和“预测输出阶段”起着重要的作用。
3.样本与特征
样本指的是数据集中的数据,一条数据被称为“一个样本”。通常情况下,样本会包含多个特征值,用来描述数据,例如现在有一组描述人体形态的数据“180 70 25”,如果单看数据我们会感到茫然,但是用“特征”描述后就会变得容易理解,如表1-4所示。
表1-4 样本与特征
由上表可知,数据集的构成是“一行一样本,一列一特征”。特征值也可以理解为数据的相关性,每一列的数据都与这一列的特征值相关。
4.向量
“向量”是一个常用的数学术语,也是机器学习的关键术语。向量在线性代数中有着严格的定义。向量也称欧几里得向量、几何向量、矢量,指具有大小和方向的量。可以形象地把它理解为带箭头的线段,箭头代表向量的方向,线段长度代表向量的大小。与向量对应的量叫作数量(物理学中称标量),数量只有大小,没有方向。
在机器学习中,模型算法的运算均基于线性代数运算法则,例如行列式、矩阵运算、线性方程等。这些运算法则学习起来其实并不难,它们都有一定的运算规则,只需套用即可,因此读者不必彷徨,可以参考向量运算法则。向量的计算可采NumPy库来实现,示例如下。
【程序1.3】num_cal.py
import numpy as np #构建向量数组 a=np.array([-1,2]) b=np.array([3,-1]) #加法 a_b=a+b #数乘 a2=a*2 b3=b*(-3) #减法 b_a=a-b print(a_b,a2,b3,b_a)
简而言之,数据集中的每一个样本都是一条具有向量形式的数据。
5.矩阵
矩阵也是一个常用的数学术语,可以把它看作由向量组成的二维数组。数据集就是以二维矩阵的形式存储数据的,可以把它形象地理解为电子表格,“一行一样本,一列一特征”,表现形式如表1-5所示。
表1-5 数据特征描述
如果用二维矩阵的表示的话,其格式如下:
6.假设函数与损失函数
机器学习在构建模型的过程中会应用大量的数学函数,正因为如此,很多初学者对它产生畏惧,那么它们真的有这么可怕吗?其实笔者认为至少没有想象中的那么可怕。从编程角度来看,这些函数就相当于模块中内置好的方法,只需要调用相应的方法,就可以达成想要的目的。而要说难点,首先就是要理解应用场景,然后根据实际的场景去调用相应的方法,这才是我们更应该关注的问题。
假设函数(Hypothesis Function)和损失函数(Loss Function)是机器学习中的两个概念,它并非某个模块下的函数或方法,而是我们根据实际应用场景确定的一种函数形式,就像我们解决数学应用题一样,根据题意写出解决问题的方程组。下面分别来看一下它们的含义。
1)假设函数
假设函数可表述为y=f(x),其中x表示输入数据,y表示输出的预测结果,而这个结果需要不断地优化才会达到预期的结果,否则会与实际值偏差较大。
2)损失函数
损失函数又叫目标函数,简写为L(x)。这个L(x)的值是假设函数得出的预测结果y,如果L(x)的返回值越大,就表示预测结果与实际偏差越大;如果L(x)的返回值越小,则证明预测值越来越“逼近”真实值,这才是机器学习最终的目的。因此,损失函数就像一个度量尺,让我们知道“假设函数”预测结果的优劣,从而做出相应的优化策略。
3)优化方法
“优化方法”可以理解为假设函数和损失函数之间的沟通桥梁。通过L(x)可以得知假设函数输出的预测结果与实际值的偏差值,当该值较大时,就需要做出相应的调整,这个调整的过程叫作“参数优化”。而如何实现优化呢?这也是机器学习过程中的难点。其实为了解决这一问题,数学家们早就给出了相应的解决方案,例如梯度下降、牛顿法与拟牛顿法、共轭梯度法等。因此,我们要做的就是理解并掌握“科学巨人”留下的理论、方法。
对于优化方法,我们要根据具体的应用场景来选择,因为每一种方法都有自己的优劣,只有合适的才是最好的。
上述函数的关系如图1-16所示。
7.拟合、过拟合与欠拟合
拟合是机器学习中的重要概念,也可以说机器学习的研究对象就是让模型能更好地拟合数据。那么,到底如何理解“拟合”这个词呢?
图1-16 函数关系图
1)拟合
形象地说,“拟合”就是把平面坐标系中一系列散落的点,用一条光滑的曲线连接起来,因此拟合也被称为“曲线拟合”。拟合的曲线一般用函数来表示,但是由于拟合曲线会存在许多种连接方式,因此就会出现多种拟合函数。通过研究、比较确定一条最佳的“曲线”也是机器学习中一个重要的任务。如图1-17所示,展示了一条拟合曲线。
提示 很多和数学相关的编程语言都内置了计算拟合曲线的函数,例如MATLAB、Python SciPy等,在后续内容中还会介绍。
2)过拟合
过拟合是机器学习模型训练过程中经常遇到的问题。所谓过拟合,通俗来讲就是模型的泛化能力较差,也就是过拟合的模型在训练样本中表现优越,但是在验证数据以及测试数据集中表现不佳。
举一个简单的例子,例如训练一个识别狗狗照片的模型,如果只用金毛犬的照片训练,那么该模型就只吸纳了金毛犬的相关特征,此时让训练好的模型识别一条泰迪犬,那么结果可想而知,该模型会认为泰迪犬不是一条狗。过拟合曲线如图1-18所示。
图1-17 拟合曲线
图1-18 过拟合曲线
过拟合问题之所以在机器学习中经常遇道,主要是因为训练时样本过少、特征值过多导致的,本书后续还会详细介绍。
3)欠拟合
欠拟合(Underfitting)恰好与过拟合相反,它指的是“曲线”不能很好地“拟合”数据。在训练和测试阶段,欠拟合模型表现均较差,无法输出理想的预测结果。欠拟合曲线如图1-19所示。
造成欠拟合的主要原因是没有选择好合适的特征值,例如使用一次函数(ykxb=+)去拟合具有对数特征的散落点(log2yx=),示例如图1-20所示。
图1-19 欠拟合曲线
图1-20 欠拟合示例
总之,过拟合可以理解为模型把非目标物识别成了目标物。我们想要识别的非目标物,它的一些特征没有那么明显,但因为模型被“喂”了过大的训练集或者训练轮数过多,所以模型把这些特征认为是目标物的特有特征。欠拟合是由于“喂”给模型的训练集过少、算法有缺陷等原因导致的。欠拟合可以理解为最终输出的模型不能完成我们希望模型完成的任务,也就是模型识别不出来我们想要识别的东西。
欠拟合和过拟合是机器学习中会遇到的问题,这两种情况都不是我们期望看到的,因此要避免。关于如何处理类似问题,我们在本书后续内容中还会陆续讲解,本节只需要熟悉并理解常见的机器学习术语和一些概念即可。
8.激活函数(Activation Function)
激活函数(例如ReLU或Sigmoid)将前一层所有神经元激活值的加权和输入一个非线性函数中,然后向下一层传递该函数的输出值(典型的非线性)。
9.反向传播(Backpropagation)
反向传播算法是神经网络中完成梯度下降的重要算法。首先,在前向传播的过程中计算每个节点的输出值;然后,在反向传播的过程中计算与每个参数对应的误差的偏导数。
10.基线(Baseline)
基线是指用作比较参考的简单模型,它帮助模型开发者量化模型在特定问题上的预期表现。
11.批量(Batch)
批量是指模型训练中一个迭代(指一次梯度更新)所使用的样本集。
12.批量大小(Batch Size)
批量大小指一个批量中样本的数量。例如,SGD的批量大小为1,而mini-batch的批量大小通常为10~1000。批量大小通常在训练与推理的过程中确定,但是TensorFlow框架不允许动态更改批量大小。
13.二元分类器(Binary Classification)
二元分类器输出两个互斥(不相交)类别中的一个。例如,一个评估邮件信息并输出垃圾邮件或非垃圾邮件的机器学习模型就是一个二元分类器。
14.标定层(Calibration Layer)
标定层是一种调整后期预测的结构,通常用于解释预测偏差。调整后的预期和概率必须匹配一个观察标签集的分布。
15.候选采样(Candidate Sampling)
候选采样是一种在训练时进行的优化方法,使用Softmax等算法计算所有正标签的概率,同时只计算一些随机取样的负标签的概率。
16.检查点(Checkpoint)
检查点指在特定时刻标记模型变量的状态的数据。检查点允许输出模型的权重,也允许通过多个阶段训练模型。检查点还允许跳过错误继续进行(例如,抢占作业)。注意,模型自身的图式并不包含于检查点内。
17.类别(Class)
所有同类属性的目标值作为一个标签。
18.类别不平衡数据集(Class-Imbalanced Data Set)
数据集样本类别极不平衡,一般针对二元分类问题,表示两个类别的标签的分布频率有很大的差异。
19.分类模型(Classification)
机器学习模型的一种,将数据分离为两个或多个离散类别。例如,一个自然语言处理分类模型可以将一句话归类为法语、西班牙语或意大利语。分类模型与回归模型(Regression Model)成对比。
20.分类阈值(Classification Threshold)
分类阈值指应用于模型的预测分数以分离正类别和负类别的一种标量值标准。当需要将逻辑回归的结果映射到二元分类模型中时,就需要使用分类阈值。
21.混淆矩阵(Confusion Matrix)
混淆矩阵指总结分类模型的预测结果的表现水平(即标签和模型分类的匹配程度)的NN×维表格。混淆矩阵的一个轴列出模型预测的标签,另一个轴列出实际的标签。N表示类别的数量。
22.连续特征(Continuous Feature)
连续特征拥有无限个取值点的浮点特征。和离散特征(Discrete Feature)相反。
23.收敛(Convergence)
训练过程达到的某种状态,其中训练损失和验证损失在经过确定的迭代次数后,在每一次迭代中改变很小或完全不变。换句话说,当对当前数据继续训练而无法再提升模型的表现水平的时候,就称模型已经收敛。在深度学习中,损失值在下降之前,有时候经过多次迭代仍保持常量或者接近常量,就会造成模型已经收敛的错觉。
24.凸函数(Convex Function)
一种形状大致呈字母U形或碗形的函数。但是,在退化情形中,凸函数的形状就像一条线。
25.交叉熵(Cross-Entropy)
多类别分类问题中对Log损失函数的推广。交叉熵量化两个概率分布之间的区别。参见困惑度(Perplexity)。
26.数据集(Data Set)
样本的集合。
27.决策边界(Decision Boundary)
在一个二元分类或多类别分类问题中,模型学习的类别之间的分离器。
28.深度模型(Deep Model)
一种包含多个隐藏层的神经网络。深度模型依赖于其可训练的非线性性质。和宽度模型(Wide Model)对照。
29.密集特征(Dense Feature)
大多数取值为非零的一种特征,通常用取浮点值的张量(Tensor)表示。和稀疏特征(Sparse Feature)相反。
30.Dropout正则化(Dropout Regularization)
训练神经网络时一种有用的正则化方法。Dropout正则化的过程是在单次梯度计算中删去一层网络中随机选取的固定数量的单元。删去的单元越多,正则化越强。
31.动态模型(Dynamic Model)
动态模型是一种以连续更新的方式在线训练的模型,即数据连续不断地输入模型。
32.早期停止法(Early Stopping)
一种正则化方法,在训练损失完成下降之前停止模型训练过程。当验证数据集(Validation Data Set)的损失开始上升的时候,即泛化表现变差的时候,就应该使用早期停止法。
33.嵌入(Embeddings)
一类表示为连续值特征的明确的特征。嵌入通常指将高维向量转换到低维空间中。
34.集成(Ensemble)
多个模型预测的综合考虑。
35.评估器(Estimator)
评估器是一种封装了各种机器学习模型的工具,是拟合和训练数据的机器学习算法或者其他算法的抽象。
36.样本(Example)
一个数据集的一行内容。一个样本包含了一个或多个特征,也可能是一个标签。参见标注样本(Labeled Example)和无标注样本(Unlabeled Example)。
37.假负类(False Negative,FN)
被模型错误预测为负类的样本。例如,模型推断一封邮件为非垃圾邮件(负类),但实际上这封邮件是垃圾邮件。
38.假正类(False Positive,FP)
被模型错误预测为正类的样本。例如,模型推断一封邮件为垃圾邮件(正类),但实际上这封邮件是非垃圾邮件。
39.假正类率(False Positive Rate,FP率)
ROC曲线中的x轴。FP率的计算公式是:假正率=假正类数/(假正类数+真负类数)。
40.特征列(Feature Columns)
具有相关性的特征的集合,例如用户可能居住的所有国家的集合。一个样本的一个特征列中可能会有一个或者多个特征。
41.特征集(Feature Set)
特征集指机器学习模型训练的时候使用的特征群。例如,邮政编码、面积要求和物业状况等,可以组成一个简单的特征集,使模型能预测房价。
42.特征定义(Feature Spec)
特征指的是描述一个实例的属性或特征,也可以称为自变量(independent variable)或输入变量(input variable)。
43.泛化(Generalization)
泛化是指模型利用新的没见过的数据而不是训练数据做出正确预测的能力。
44.广义线性模型(Generalized Linear Model)
广义线性模型是线性模型的扩展,通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。
45.梯度(Gradient)
在机器学习中,梯度是模型函数的偏导数向量。梯度指向最陡峭的上升路线。
46.梯度截断(Gradient Clipping)
在应用梯度之前先修饰数值,梯度截断有助于确保数值稳定性,防止梯度爆炸出现。
47.梯度下降(Gradient Descent)
梯度下降通过计算模型的相关参数和损失函数的梯度来最小化损失,值取决于训练数据。梯度下降迭代地调整参量,逐渐靠近权重和偏置的最佳组合,从而最小化损失函数。
48.图(Graph)
图是由节点(Node)和边(Edge)组成的一种数据结构,用于描述事物之间的关系。图近来正逐渐变成机器学习的一大核心领域,例如,可以通过图来预测潜在的连接,从而理解社交网络的结构、检测欺诈、理解汽车租赁服务的消费者行为,或者进行实时推荐。