购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 机器学习的三要素

机器学习方法都是由模型、策略和算法(优化算法)构成的,即机器学习方法由三要素构成,可以简单地表示为:

方法=模型+学习准则+优化算法

学习准则亦可统称为策略,所有涉及的机器学习方法均拥有这三要素,可以说构建一种机器学习方法就是确定具体的三要素。

2.2.1 模型

对于一个机器学习任务,首先要确定其输入空间 X 和输出空间 Y 。不同机器学习任务的主要区别在于输出空间不同。在两类分类问题中 Y ={+1,−1},在 C 类分类问题中 Y ={1,2…, C },而在回归问题中 Y =ℝ。

输入空间 X 和输出空间 Y 构成了一个样本空间。对于样本空间中的样本( x , y )∈ X × Y ,假定存在一个未知的真实映射函数 g : X Y 使得:

或者真实条件概率分布:

机器学习的目标是找到一个模型来近似真实映射函数 g ( x )或真实条件概率分布 p r ( y | x )。

由于我们不知道真实的映射函数 g ( x )或条件概率分布 p r ( y | x )的具体形式,因而只能根据经验来假设一个函数集合 F ,称为假设空间(Hypothesis Space),然后通过观测其在训练集 D 上的特性,从中选择一个理想的假设 f *∈ F

假设空间 F 通常为一个参数化的函数族:

其中, f ( x ; θ )是参数为 θ 的函数,也称为模型(Model), d 为参数的数量。

常见的假设空间可以分为线性和非线性两种,对应的模型 f 也分别称为线性模型和非线性模型。机器学习的线性模型可以分为一般线性模型和广义线性模型。

1. 一般线性模型

一般线性模型的假设空间为一个参数化的线性函数族,即:

其中,参数 θ 是需要学习的参数,包含权重向量 w 和偏置 b

2. 广义线性模型

广义的线性模型可以写为多个非线性基函数 ϕ ( x )的线性组合:

其中, ϕ ( x )=[ ϕ 1 ( x ), ϕ 2 ( x )…, ϕ K ( x )] T K 个非线性基函数组成的向量,参数 θ 包含权重向量 w 和偏置 b 。如果 ϕ ( x )本身为可学习的核函数,比如常用的核函数如表2.1所示。

表2.1 常用的核函数

ϕ ( x )为线性核函数,则 f ( x ; θ )为线性方法模型;若 ϕ ( x )为可学习的非线性核函数,如Sigmoid函数,则 f ( x ; θ )就等价于神经网络模型。机器学习模型中参数 θ 的取值称为参数空间(Parameter Space)。

2.2.2 学习准则

机器学习的目标在于从假设空间中学习最优模型。有了模型的假设空间后,机器学习需要确定使用什么样的准则进行学习或者选择最优模型。这其中就涉及期望风险最小化、经验风险最小化和结构风险最小化等学习准则。

一个好的模型 f ( x , θ *)应该在所有( x ,y)的可能取值上都与真实映射函数 y = g ( x )一致,即:

或与真实条件概率分布 p r ( y | x )一致,即这里两个分布相似性的定义不太严谨,更好的方式为 KL 散度或交叉熵。

模型 f ( x ; θ )的好坏可以通过期望风险(Expected Risk) R ( θ )来衡量,其定义为:

其中, p r ( x , y )为真实的数据分布, L ( y,f ( x ; θ )为损失函数,用来量化两个变量之间的差异。期望风险也称为期望错误(Expected Error)。

1. 损失函数

监督学习问题是在假设空间中选取模型 f 作为决策函数,对于给定的输入 X ,由 f ( X )给出相应的输出 Y ,这个输出的预测值 f ( X )与真实值 Y 可能一致,也可能不一致,用一个损失函数(Loss Function)或代价函数(Cost Function)来度量预测错误的程度。损失函数是 f ( X )和 Y 的非负实值函数,记作 ,度量模型一次预测的好坏。下面介绍几种常用的损失函数。

1)0-1损失函数

分类问题所对应的损失函数为0-1损失,其是分类准确度的度量,对分类正确的估计值取0,反之取1,即0-1损失函数(0-1 Loss Function):

其中, I (·)是指示函数。0-1损失函数是一个不连续的分段函数,不利于求解最小化问题,因此在应用时可构造其代理损失(Surrogate Loss)。代理损失是与原损失函数具有相合性(Consistency)的损失函数,最小化代理损失所得的模型参数也是最小化原损失函数的解。当一个函数是连续凸函数,并在任意取值下是0-1损失函数的上界时,该函数可作为0-1损失函数的代理函数。

2)平方损失函数

平方损失函数(Quadratic Loss Function)经常用在预测标签 y 为实数值的任务中,它直接测量机器学习模型的输出与实际结果之间的距离。定义为:

平方损失函数一般不适用于分类问题。

3)交叉熵损失函数

交叉熵损失函数(Cross-Entropy Loss Function)一般用于分类问题。交叉熵用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。假设样本的标签 y ∈{1…, C }为离散的类别,模型 f ( x ; θ )∈[0,1] C 的输出为类别标签的条件概率分布,即:

并满足:

我们可以用一个 C 维的One-Hot向量 y 来表示样本标签。假设样本的标签为 k ,那么标签向量 y 只有第 k 维的值为1,其余元素的值都为0。标签向量 y 可以看作是样本标签的真实概率分布,即第 c 维(记为 y c ,1≤ c C )是类别为 c 的真实概率。假设样本的类别为 k ,那么它属于第 k 类的概率为1,其他类的概率为0。

对于两个概率分布,一般可以用交叉熵来衡量它们的差异。标签的真实分布 y 和模型预测分布 f ( x ; θ )之间的交叉熵为:

因为 y 为One-Hot向量,所以公式2.17也可以写为:

其中, f y ( x ; θ )可以看作真实类别 y 的似然函数。因此,交叉熵损失函数也就是负对数似然损失函数(Negative Log-Likelihood Function)。

4)铰链损失函数

铰链损失函数(Hinge Loss Function)是一个分段连续函数,其在分类器分类完全正确时取0。使用铰链损失对应的分类器是支持向量机(Support Vector Machine,SVM),铰链损失的性质决定了SVM具有稀疏性,即分类正确但概率不足1和分类错误的样本被识别为支持向量(Support Vector),被用于划分决策边界,其余分类完全正确的样本没有参与模型求解。

对于两类分类问题,假设 y 的取值为{−1,+1}, f ( x ; θ )∈ℝ。Hinge损失函数(Hinge Loss Function)为:

其中,[ x ] + =max(0, x )。

2. 风险最小化准则

一个好的模型 f ( x ; θ )应当有一个比较小的期望错误,但由于不知道真实的数据分布和映射函数,实际上无法计算其期望风险 R ( θ )。给定一个训练集 ,我们可以计算其经验风险(Empirical Risk),即在训练集上的平均损失:

学习准则是找到一组参数 θ *使得经验风险最小,即:

这就是经验风险最小化(Empirical Risk Minimization,ERM)准则。

3. 正则化

正则化(Regularization)是指在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题。大条件数意味着舍入误差或其他误差会严重地影响问题的结果。

光滑衡量了函数的可导性,如果一个函数是光滑函数,则该函数无穷可导,即任意 n 阶可导。正则性衡量了函数光滑的程度,正则性越高,函数越光滑。机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作 L 1和 L 2,中文称作 L 1正则化和 L 2正则化,或者 L 1范数和 L 2范数。 L 1和 L 2其实就是数学里面的范数,用范数刚好可以达到我们想要的目的。 L 1范数就是绝对值的和, L 2范数就是平方和。 L 1正则化和 L 2正则化可以看作是损失函数的惩罚项。所谓惩罚,是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用 L 1正则化的模型建叫作Lasso回归,使用 L 2正则化的模型叫作Ridge回归(岭回归)。正则化是为了解决过拟合问题。

解决过拟合的方法有两种:

方法一:尽量减少选取变量的数量。人工检查每一个变量,并以此来确定哪些变量更为重要,然后,保留那些更为重要的特征变量。显然这种做法需要对问题足够了解,需要专业经验或先验知识。因此,决定哪些变量应该留下不是一件容易的事情。此外,当你舍弃一部分特征变量时,你也舍弃了问题中的一些信息。例如,也许所有的特征变量对于预测房价都是有用的,我们实际上并不想舍弃一些信息或者说舍弃这些特征变量。最好的做法是采取某种约束可以自动选择重要的特征变量,自动舍弃不需要的特征变量。

方法二:正则化。采用正则化方法会自动削弱不重要的特征变量,自动从许多特征变量中提取重要的特征变量,减小特征变量的数量级。这个方法非常有效,当我们有很多特征变量时,其中每一个变量都能对预测产生一点影响。正如在房价预测的例子中看到的那样,我们可以有很多特征变量,其中每一个变量都是有用的,因此我们不希望把它们删掉,这就导致了正则化概念的发生。

1) L 1正则化和 L 2正则化的直观理解

L 1正则化和 L 2正则化(或者 L 1范数和 L 2范数)的直观理解如图2.1所示,右上角一圈一圈的就是误差项的函数。最小化的时候就是 L 1范数和 L 2范数与误差项相交的时候。左边的 L 1函数图像带一个尖角,明显更容易相交在数轴上,就是为整数的点上,这样就会有更多的刚好为0的解。而 L 2相交在圆弧上,各种位置都有可能。

图2.1代表目标函数-平方误差项的等值线和 L 1、 L 2范数等值线(左边是 L 1),我们正则化后的代价函数需要求解的目标就是在经验风险和模型复杂度之间的平衡取舍,在图中形象地表示就是菱形或圆形与等值线的交叉点。

图2.1 L 1和 L 2正则化的直观图

彩色线(参见配书资源的图片)就是优化过程中遇到的等高线,一圈代表一个目标函数值,圆心就是样本观测值(假设一个样本),半径就是误差值,受限条件就是黑色边界(就是正则化那部分),二者相交处,才是最优参数。左图中这个顶点的值是( w 1 , w 2 )=(0, w )。可以直观想象,因为 L 1函数有很多“突出的角”(二维情况下有4个,多维情况下更多),没有加正则项的损失函数与这些角接触的概率会远大于与 L 1其他部位接触的概率,而在这些角上,会有很多权值等于0,这就是 L 1可以产生稀疏模型的原因,进而可以用于特征选择。右图中二维平面下 L 2正则化的函数图形是一个圆,与方形相比,被磨去了棱角。因此,没有加正则项的损失函数与 L 相交时使得 w 1 w 2 等于零的概率小了许多,这就是 L 2正则化不具有稀疏性的原因。 L 2正则化相当于为参数定义了一个圆形的解空间,而 L 1正则化相当于为参数定义了一个菱形的解空间。 L 1“棱角分明”的解空间显然更容易与目标函数等高线在脚点碰撞,从而产生稀疏解。

2)过拟合

根据大数定理可知,当训练集大小| D |趋向于无穷大时,经验风险就趋向于期望风险。然而通常情况下,我们无法获取无限的训练样本,并且训练样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布。经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。这就是所谓的过拟合(Overfitting)。

3)解决过拟合问题

过拟合问题往往是训练数据少、有噪声以及模型能力强等原因造成的。

为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化(Regularization)来限制模型能力,使其不要过度地最小化经验风险。这种准则就是结构风险最小化(Structure Risk Minimization,SRM)准则:

其中,|| θ ||是 L 2范数的正则化项,用来减少参数空间,避免过拟合; λ 用来控制正则化的强度。从贝叶斯学习的角度来讲,正则化是假设了参数的先验分布,不完全依赖训练数据。

总之,机器学习中的学习准则并不仅仅是拟合训练集上的数据,同时也要使得泛化错误最低。给定一个训练集,机器学习的目标是从假设空间中找到一个泛化错误较低的“理想”模型,以便更好地对未知的样本进行预测,特别是不在训练集中出现的样本。因此,机器学习可以看作是一个从有限、高维、有噪声的数据上得到更一般性规律的泛化问题。和过拟合相反的一个概念是欠拟合(Underfitting),即模型不能很好地拟合训练数据,在训练集的错误率比较高。欠拟合一般是由于模型能力不足造成的。图2.2给出了欠拟合和过拟合的示例。

图2.2 欠拟合(高偏差,低方差)、正常和过拟合(低偏差,高方差)图

2.2.3 优化算法

机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好,而不只是在训练集上表现良好,机器学习中有很多优化算法。对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习,最后一般都归结为求解最优化问题。因此,最优化方法在机器学习算法的推导与实现中占据中心地位。

在确定了训练集 D 、假设空间 F 以及学习准则后,如何找到最优的模型 f ( x , θ *)就成了一个最优化(Optimization)问题。机器学习的训练过程其实就是最优化问题的求解过程。

在机器学习中,优化又可以分为参数优化和超参数优化。模型 f ( x ; θ )中的 θ 称为模型的参数,可以通过优化算法进行学习。除了可学习的参数 θ 之外,还有一类参数是用来定义模型结构或优化策略的,这类参数叫作超参数(Hyper-Parameter)。常见的超参数包括聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等。超参数的选取一般都是组合优化问题,很难通过优化算法来自动学习。因此,超参数优化是机器学习的一个经验性很强的技术,通常是按照人的经验设定,或者通过搜索的方法对一组超参数组合进行不断试错调整。

1. 梯度下降法

如果函数是一维的变量,则梯度就是导数的方向;如果函数大于一维,梯度就是在这个点的法向量,并指向数值更高的等值线,这就是为什么求最小值的时候要用负梯度。不同机器学习算法的区别在于模型、学习准则(损失函数)和优化算法的差异。相同的模型也可以有不同的学习算法,它们之间的差异在于使用了不同的学习准则和优化算法。在机器学习中,最简单、常用的优化算法就是梯度下降法,即首先初始化参数 θ 0 ,然后按下面的迭代公式来计算训练集 D 上风险函数的最小值:

其中, θ t 为第 t 次迭代时的参数值, α 为搜索步长。在机器学习中, α 一般称为学习率(Learning Rate)。

2. 提前停止

在机器学习中,提前停止是一种正则化形式,用于在用迭代方法(例如梯度下降)训练学习器时避免过度拟合。这种方法更新了学习器,使其更好地适合每次迭代的训练数据,提高了学习器在训练集之外的数据上的表现。但是,提高学习器对训练数据的适应性是以增加泛化误差为代价的。提前停止规则提供了在学习器开始过度训练之前可以运行多少次迭代的指导。提前停止规则已经在许多不同的机器学习方法中使用,理论基础不尽相同。

3. 随机梯度下降法

梯度下降法是一种寻找目标函数最小化的方法。梯度方向是数值下降最快的方向,在机器学习中,根据数据集使用方式不同,分为批量梯度下降(Batch Gradient Descent,BGD)、随机梯度下降(Stochastic Gradient Descent,SGD)和小批量梯度下降(Mini-Batch Gradient Descent)3种。随机梯度下降算法是从样本中随机抽出一组,训练后按梯度更新一次,再抽取一组,再更新一次,在样本量极其大的情况下,可能不用训练完所有的样本就可以获得一个损失值在可接受范围之内的模型。

4. 小批量梯度下降法

随机梯度下降法的一个缺点是无法充分利用计算机的并行计算能力。小批量梯度下降法是批量梯度下降和随机梯度下降的折中。每次迭代时,我们随机选取一小部分训练样本来计算梯度并更新参数,这样既可以兼顾随机梯度下降法的优点,也可以提高训练效率。第 t 次迭代时,随机选取一个包含 K K 通常不会设置得很大,一般在1~100,在实际应用中为了提高计算效率,通常设置为2的 n 次方)个样本的子集 I t ,计算这个子集上每个样本损失函数的梯度并进行平均,然后进行参数更新:

在实际应用中,小批量随机梯度下降法有收敛快、计算开销小的优点,因此逐渐成为大规模的机器学习中的主要优化算法。 tbNBX5e/yRylA+Jy+oGZwgNSro8h1Y2tcwGOXga/nncVxSkLTd35VghrnVZY3THE

点击中间区域
呼出菜单
上一章
目录
下一章
×