2.4 模型正则化策略
如前所述,在机器学习模型的训练过程中,经常会出现训练误差较小但泛化误差较大的过拟合现象。这是因为如果模型参数个数较多或取值范围较大而训练样本数量较少,则模型中的某些参数就会失去应有的约束,使得训练获得的模型较为复杂,从而降低了模型的泛化能力。由此可知,产生过拟合现象的根本原因在于模型容量与训练样本数量的不匹配。此时可以通过适当方法对模型的自由度或容量进行一定程度的控制,以尽量避免模型的过拟合现象。这些方法通常统称为模型的正则化策略。具体可分别从模型修正和样本扩充这两个角度设计模型的正则化策略。模型正则化的目标是提升模型性能,故可将其看成是实现模型优化的一种特殊方式。本节主要介绍范数惩罚、样本增强和对抗训练这三种常用的模型正则化策略。其中范数惩罚策略基于对模型的修正,而样本增强和对抗训练策略则基于对样本的扩充。
2.4.1 范数惩罚
范数惩罚是机器学习领域最常用的一种模型正则化方法。该方法的基本思想是通过在目标函数表达式中添加适当惩罚项的方式降低模型容量,使得模型容量与训练样本数量相匹配,从而达到提升模型泛化性能的目的。
具体地说,假设使用基数为n的训练样本集S={(X1,y1),(X2,y2),…,(Xn,yn)}进行模型训练且目标函数为
其中,β为模型参数向量,即β=(β1,β2,…,βk)T。
范数惩罚则在上述目标函数中添加惩罚项αλ(β),建立新的目标函数F′(β),即有
惩罚项αλ(β)中的α为大于0的超参数,α越大,则对参数的惩罚越严重。λ(β)表示对参数向量β的惩罚形式,根据其形式不同可将范数惩罚分为多种具体形式。
常用的范数惩罚方式主要有L1范数惩罚、L2范数惩罚等。L1范数惩罚是对目标函数F(β)添加L1范数形式的正则化项
其中,α为正则化权重,模型越复杂,α的值应该设置得越大。正则化后的目标函数为
可用梯度下降算法最小化目标函数F′(β)。对F′(β)计算梯度
其中,sign(x)为符号函数,即对于任意参数βi,有
使用梯度下降算法进行参数更新,即有
上式表明,带L1范数惩罚项的梯度下降法在原始梯度下降算法的基础之上,对参数的取值做了一定程度的控制,使其尽量向0靠近,即若βi>0,则减去|εαsign(βi)|,若βi<0,则加上|εαsign(βi)|。因此,L1范数惩罚的基本目的是尽量产生稀疏的参数向量,即使得尽可能多的参数值为0。
模型容量过大通常是由于参数过多,L1范数惩罚将很多模型参数置为0。这意味着降低了模型对数据的拟合能力,控制了模型容量,由此可缓解过拟合现象。
此外,由于L1范数惩罚项τ的表达式中包含绝对值,故目标函数F′(β)并非处处可导。这相当于对原目标函数F(β)的性质做出约束。图2-10表示二维参数向量在L1范数惩罚下的约束效果,其中等值线为目标函数图像,而方形线为惩罚项τ=|β|1|+|β2|的图像。
由于惩罚项τ在某些点不可导,故其图像上会出现尖点。显然,惩罚项τ不可导点的坐标中至少有一项为0,在高维情况下可能有多项为0。因此,L1范数惩罚通常可使参数向量稀疏。从特征选择的角度看,参数向量稀疏相当于对模型的输入特征进行了一定的优化选择,即L1范数惩罚保留了与模型输出相关的特征而排除了无关特征。
图2-10 L1范数惩罚示意图
与L1范数惩罚类似,L2范数惩罚对目标函数F(β)添加L2范数的正则化项
得到新的目标函数F′(β),即有
可用梯度下降算法对目标函数F′(β)的最小值进行优化。计算F′(β)的梯度
得到新的迭代公式为
即有:
其中,ε为梯度下降算法的步长。
由于ε和α均大于0,故使用L2范数惩罚所得参数是在将参数缩小为原参数的1/(εα)的基础上计算获得的。这种方法通常称为权重衰减。由此可见,L2范数惩罚并没有刻意促使某些参数为0,而是使得模型的所有参数值都变小。
图2-11给出了参数向量为二维时利用L2范数惩罚所能实现的约束效果,其中等值线为原代价函数F(β)的图像,圆周曲线为L2范数惩罚项图像。L2范数惩罚项处处可导,不会出现尖点,故难以获得稀疏参数向量,但可通过减小模型参数值的方式实现正则化。
一般而言,过拟合模型都较为复杂且参数值较大。例如,对于图2-12所示的回归模型,由于该模型试图充分拟合每个样本点,这使得其导数值较大。当模型参数值较小时,其导数值也会随之减小,从而达到减小模型容量、实现正则化的目的。
图2-11 L2范数惩罚示意图
图2-12 过拟合的回归模型示意图
从数值计算角度而言,若目标函数为二次函数,例如,最小二乘估计中的目标函数
则可直接算得解的具体表达式
但若模型参数过多,则说明样本X由过多的特征所描述。若特征向量维数大于训练样本数量时,则矩阵XTX不满秩。此时无法对其求逆,故难以通过直接计算获得目标函数的解。但若对目标函数添加L2范数惩罚正则化项,则可将目标函数转化为以下形式
得到其最优解的具体表达式为
其中,E为单位矩阵;(XTX+αE)为满秩矩阵,可直接通过求逆矩阵获得。
事实上,范数惩罚项可以是一般的Lp范数形式,即。其中p为正实数,对于p的不同取值,所获得的正则化效果也有所不同。α则是一个适当的调和系数,当α较大时,模型参数都很小,此时模型学习能力较弱,可能会导致模型欠拟合;当α值较小时,相当于没有进行正则化,模型可能出现过拟合现象。因此,只有在α取值合适时,才能使得模型既能很好地拟合训练数据集,又不出现严重过拟合现象。
需要注意的是,模型偏置项一般不参与范数惩罚计算。这是因为确定偏置项所需样本量较少,故其对模型拟合能力的影响也非常小,一般不用对其进行正则化处理。
2.4.2 样本增强
导致模型产生过拟合现象的原因是模型容量与训练样本数量不匹配,即由于训练样本数量较少从而导致模型的某些参数失去约束。因此,除了对模型容量进行约束之外,还可以通过增加训练样本数量的方式解决模型过拟合问题。样本增强便是一种基于扩充训练样本集的正则化策略。所谓样本增强就是通过适当方式从已有样本中产生一个或多个虚拟样本,以满足模型训练的需要。
显然,通过样本增强产生的虚拟样本需要满足一定的合理性,即既要与现有样本保持一定差异,又要服从与现有样本一致的总体概率分布。否则,使用这些虚拟样本不但不能减轻过拟合现象,反而会进一步降低模型的鲁棒性。在很多应用场合,对虚拟样本的合理性进行判断是一件非常困难的事情。然而,计算机视觉领域的处理对象是直观图像,可通过观察方式直观判断虚拟样本的合理性。因此,样本增强目前主要用于计算机视觉领域。
图像作为计算机视觉领域的处理对象,通常包含很多不改变原始信息表达的可变因素。例如一幅猫的图像,若改变其亮度或对其进行旋转,则图像中目标物体依旧是猫。故可通过改变图像中可变因素产生虚拟样本。最常见的样本增强方法包括旋转、翻转和加噪等。这些方法虽然较为简单,但却能产生很多有效的虚拟样本,实现对训练样本集合的有效扩充。图2-13a~d中的四幅图像分别表示原图以及通过旋转、垂直翻转、加噪声获得的三个虚拟样本。
图2-13 通过样本增强获得虚拟样本
a)原始图像 b)旋转图像 c)垂直翻转图像 d)加噪声图像
对于任意给定的一张数字图像X,若将其绕图像中心顺时针旋转θ度,则需将图像中心作为坐标原点建立一个坐标系。假设图像X中的某像素点A关于该坐标系的坐标为(xA,yA),则其极坐标表示为xA=rcosα,yA=rsinα。其中r表示像素点A到坐标原点的距离,α表示坐标原点与像素点A所在的射线和极坐标轴之间的夹角大小。此时,将像素点A绕旋转中心逆时针旋转θ度所得到的像素点A的新坐标为
将该图像中的全部像素点按上式计算得到旋转后的坐标,然后将其移动至该位置即可得到旋转后的图像。值得注意的是,样本增强所得到的新样本类别应与原始样本保持一致。例如,对字符9旋转180°后得到的样本类别为6,这种样本增强方式是不适用的。
与图像旋转不同,图像翻转生成的是与原图像X成轴对称的图像,具体可分为水平翻转和垂直翻转两种。水平翻转是指以图像的垂直中轴线为中心,交换图像的左右两个部分。假设大小为m×n的原图中某个像素点A的坐标为(xA,yA),则进行水平翻转后像素点A所对应的新的坐标计算公式为:。垂直翻转则是指以图像的水平中轴线为中心,交换图像的上下两个部分,相应计算公式为。
图像加噪也是一种常用的样本增强方法。其基本思想是对原图叠加一个微小的随机噪声,由此生成新样本。具体地说,对于给定的原始图像X,首先生成某种噪声ε,然后以简单叠加方式将噪声ε与原始图像进行合成,得到新图像X′,即X′=X+ε。
最近人们研究出一种基于生成对抗网络(GAN)的样本增强方法。该方法首先通过GAN模型的生成器生成新的样本,然后将生成的虚拟样本和训练集中的实际图像样本随机输入到判别器中,通过GAN模型的判别器判别输入样本是否为虚拟样本。最后,通过判别器的判别结果不断提升生成器的性能,使得判别器最终无法判别输入样本是否为虚拟样本,此时所生成的虚拟样本即为所求。
图2-14表示GAN模型在训练过程中所生成的虚拟图像样本的变化情况。其中第一幅图像为原始图像,其余为生成器所生成的虚拟图像。它们按照迭代次数的大小从左到右、从上到下进行排列。显然,随着生成器与判别器博弈,虚拟图像越来越接近真实图像,甚至能够以假乱真。图2-15表示使用训练好的生成器生成的四张虚拟样本。
图2-14 生成对抗网络(GAN)生成效果提升过程的示意图
图2-15 根据原图生成的虚拟样本
2.4.3 对抗训练
上述图像样本增强方法中,在对图像样本X加入少量噪声的同时,不改变其类别就可以得到新的虚拟样本X′。如果直接将虚拟样本X′作为测试样本而不是训练样本,则对于一些鲁棒性较弱的机器学习模型,可能会对虚拟样本X′做出错误分类。通常将这种与原始样本之间仅有少量差异却被错误分类的虚拟样本称为对抗样本。
对抗样本对机器学习模型具有很大的危害性,无论是传统机器学习模型还是目前常用的深度网络模型,它们在对抗样本面前都会表现出一定的脆弱性。更加危险的是,有时同一对抗样本在不同模型上的测试结果会出现同样的错误,也就是说对抗样本可能会同时威胁到多个模型。因此,必须尽可能找出对抗样本并对其进行训练,以提高模型的鲁棒性。
通常认为出现对抗样本的主要原因是由于模型在高维空间中作为一种线性模型而引起的误差累积放大。具体地说,对于线性模型f(X)=Xβ,考虑对抗样本X′=X+ε和真实样本X在该模型下输出的差异
当特征向量维数k较大时,误差的线性累加会造成对抗样本在线性模型上的输出与真实样本在其上的输出误差变大,由此产生错误分类结果。
解决此类问题的直观方法是生成尽可能多的对抗样本作为训练样本以用于训练模型,从而纠正模型对对抗样本的错误分类,提高模型的鲁棒性。这种正则化策略通常称为对抗训练。显然,对抗训练的关键在于如何生成用于训练的对抗样本。常用对抗样本生成方法有简单界约束限制域拟牛顿法、快速梯度符号法等。
简单界约束限制域拟牛顿法的基本思想是直接对优化目标添加对噪声ε的约束,使得添加了噪声ε的新样本被错误分类。具体来说,对于一个分类器f,该方法直接通过最优化如下目标生成对抗样本
其中,label(X)为X的真实标注值;L为期望模型对生成样本的错误分类标记。
上述优化目标表示希望取得最小的噪声ε,使得模型将加噪后的生成样本分类为错误的类别L,并且保证生成样本X′=X+ε与原始样本X的区别不大。
为方便计算,可将上述优化问题的形式表示为
其中,c>0;F为目标函数。
求解上述优化问题便可得到对抗样本。当上述目标函数为凸函数时,必定可以找到精确的对抗样本,即噪声ε最小的对抗样本。然而,实际问题的目标函数往往为非凸,此时只能找到近似对抗样本,即噪声ε并非最小值,但即便如此,所生成对抗样本与真实样本之间的差别也是非常小的。
简单界约束限制域拟牛顿法虽然可以生成对抗样本,但其效率低下。事实上,可根据对抗样本产生原因构造对抗样本生成算法。由此可得用于快速生成抗样本的快速梯度符号法。该方法认为机器学习模型在高维空间中是一个高度线性的模型,此时,对样本添加一个较小的噪声,通过高维线性模型对噪声的累加改变模型输出结果,得到对抗样本。
具体地说,设模型参数向量为β=(β1,β2,…,βk)T,样本输入为X。若想得到一个对抗样本X′,可通过对样本X添加如下最优扰动来实现
即生成样本为
上式中,F(β,X,y)表示模型f的参数向量为β时将X分类为y的累计损失。在生成对抗样本时将X和y视为变量。sign)为模型目标函数对X的梯度方向,γ为噪声在该方向上的偏移参数,通常由人为给定。
快速梯度符号法的基本思想是在目标函数的梯度方向上对原始样本X添加扰动使得目标函数值增大,由此提高样本错误分类的概率。当模型为近似高维线性模型时,一个很小的扰动就会由于扰动的累加而导致模型的输出发生较大的改变,由此生成所需的对抗样本。需要注意的是,快速梯度符号法在生成对抗样本时并未指明将对抗样本进行错分的具体类别,故由该方法生成对抗样本的错分类别是不确定的,即为不定向对抗样本。事实上,也可使用快速梯度符号法生成定向对抗样本。
在使用上述方法或其他方法生成对抗样本之后,可将这些对抗样本添加到训练样本集当中构成新的训练样本集,重新训练该模型便可完成对抗训练。不难看出,对抗训练在本质上是一种特殊的数据增强正则化方法,只是用于扩充训练样本集的虚拟样本较为特殊,通过添加这些对模型鲁棒性有较大影响的样本到训练集中,可以尽可能提升模型的鲁棒性。