七、深度学习中的正则化

部署运行你感兴趣的模型镜像

机器学习中的一个核心问题是设计不仅在训练数据上表现好,而且能在新输入上泛化(?)好的算法。在机器学习中,许多策略被显式地设计来减少测试误差(可能会以增大训练误差为代价)。这些策略被统称为正则化。

待补充 141

1 参数范数惩罚

许多正则化方法通过对目标函数JJJ添加一个参数范数惩罚Ω(θ)\Omega(\theta)Ω(θ),限制模型(如神经网络、线性回归或逻辑回归)的学习能力。我们将正则化后的目标函数记为J~\tilde{J}J~

J~(θ;X,y)=J(θ;X,y)+αΩ(θ)(7.1)\tilde{J}(\theta;X,y)=J(\theta;X,y)+\alpha\Omega(\theta)\quad\quad\quad\quad\quad(7.1)J~(θ;X,y)=J(θ;X,y)+αΩ(θ)(7.1)

其中α∈[0,∞)\alpha\in[0,\infty)α[0,)是权衡范数惩罚项Ω\OmegaΩ和标准目标函数F(X;θ)F(X;\theta)F(X;θ)相对贡献的超参数。将α\alphaα设为0表示没有正则化。α\alphaα越大,对应正则化惩罚越大。

当我们的训练算法最小化正则化后的目标函数J~\tilde{J}J~时,它会降低原始目标JJJ关于训练数据的误差并同时减小在某些衡量标准下参数θ\thetaθ(或参数子集)的规模。选择不同的参数范数Ω\OmegaΩ会偏好不同的解。在本节中,我们会讨论各种范数惩罚对模型的影响。

在探究不同范数的正则化表现之前,我们需要说明一下,在神经网络中,参数包
括每一层仿射变换的权重和偏置,我们通常只对权重做惩罚而不对偏置做正则惩罚。
精确拟合偏置所需的数据通常比拟合权重少得多。每个权重会指定两个变量如何相
互作用。我们需要在各种条件下观察这两个变量才能良好地拟合权重。而每个偏置仅
控制一个单变量。这意味着,我们不对其进行正则化也不会导致太大的方差。另外,
正则化偏置参数可能会导致明显的欠拟合。因此,我们使用向量 w 表示所有应受范
数惩罚影响的权重,而向量 θ 表示所有参数 (包括 w 和无需正则化的参数)。

在神经网络的情况下,有时希望对网络的每一层使用单独的惩罚,并分配不同
的 α 系数。寻找合适的多个超参数的代价很大,因此为了减少搜索空间,我们会在
所有层使用相同的权重衰减。

1.1 L2L^2L2参数正则化

权重衰减(weight decay)是最简单且最常见的参数范数惩罚,它表现为L2L^2L2参数范数惩罚。这个正则化策略通过向目标函
数添加一个正则项Ω(θ)=12∥w∥22\Omega(\theta)=\frac{1}{2}\Vert w\Vert_2^2Ω(θ)=21w22,使权重更加接近原点(更一般地,我们可以将参数正则化为接近空间中的任意特定点,令人惊讶的是这样也仍有正则化效果,但是特定点越接近真实值结果越好。当我们不知道正确的值应该是正还是负时,零是有意义的默认值。由于模型参数正则化为零的情况更为常见,我们将只探讨这种特殊情况。)。在其他学术圈,L2L^2L2也被称为岭回归或 Tikhonov 正则。

我们可以通过研究正则化后目标函数的梯度,洞察一些权重衰减的正则化表现。为了简单起见,我们假定其中没有偏置参数,因此θ\thetaθ就是www。这样一个模型具有以下总的目标函数:

J~(w;X,y)=α2wTw+J(w;X,y)(7.2)\tilde{J}(w;X,y)=\frac{\alpha}{2}w^Tw+J(w;X,y)\quad\quad\quad\quad(7.2)J~(w;X,y)=2αwTw+J(w;X,y)(7.2)

与之对应的梯度为

∇wJ~(w;X,y)=αw+∇wJ(w;X,y)(7.3)\nabla_w\tilde{J}(w;X,y)=\alpha w+\nabla_wJ(w;X,y)\quad\quad\quad\quad(7.3)wJ~(w;X,y)=αw+wJ(w;X,y)(7.3)

(?上面的公式推导)

使用单步梯度下降更新权重,即执行以下更新:

w←w−ϵ(αw+∇wJ(w;X,y)).(7.4)w\leftarrow w-\epsilon(\alpha w+\nabla_wJ(w;X,y)).\quad\quad\quad\quad\quad(7.4)wwϵ(αw+wJ(w;X,y)).(7.4)

换一种写法,上式变为:

w←(1−ϵα)w−ϵ∇wJ(w;X,y).(7.5)w\leftarrow(1-\epsilon\alpha)w-\epsilon\nabla_wJ(w;X,y).\quad\quad\quad\quad(7.5)w(1ϵα)wϵwJ(w;X,y).(7.5)

可以看到,加入权重衰减后会引起学习规则的修改,即在每步执行通常的梯度更新之前先收缩权重向量(将权重向量乘以一个常数因子)。这是单个步骤发生的变化。但是,在训练的整个过程会发生什么呢?

我们进一步简化分析,令w∗w^*w为未正则化的目标函数取得最小训练误差时的权重向量,即w∗=arg min⁡wJ(w)w^*=\argmin\limits_{w}J(w)w=wargminJ(w),并在w∗w^*w的邻域对目标函数做二次近似。如果目标函数确实是二次的 (如以均方误差拟合线性回归模型的情况),则该近似是完美的。近似的J^(θ)\hat{J}(\theta)J^(θ)如下:

J^(θ)=J(w∗)+12(w−w∗)TH(w−w∗)(7.6)\hat{J}(\theta)=J(w^*)+\frac{1}{2}(w-w^*)^TH(w-w^*)\quad\quad\quad\quad(7.6)J^(θ)=J(w)+21(ww)TH(ww)(7.6)

其中HHHJJJw∗w^*w处计算的 Hessian 矩阵 (关于www)。因为w∗w^*w被定义为最优,即梯度消失为 0,所以该二次近似中没有一阶项。同样地,因为 w∗w^*wJJJ 的一个最优点,我们可以得出 HHH 是半正定的结论。(?)

J^\hat{J}J^ 取得最小时,其梯度

∇wJ^(w)=H(w−w∗)(7.7)\nabla_w\hat{J}(w)=H(w-w^*)\quad\quad\quad\quad(7.7)wJ^(w)=H(ww)(7.7)

为0.(还是一个问题,这里是怎么推导的?)

为了研究权重衰减带来的影响,我们在式 (7.7) 中添加权重衰减的梯度。现在我们探讨最小化正则化后的 J^\hat{J}J^。我们使用变量 w~\tilde{w}w~ 表示此时的最优点:

αw~+H(w~−w∗)=0(7.8)\alpha\tilde{w}+H(\tilde{w}-w^*)=0\quad\quad\quad\quad\quad(7.8)αw~+H(w~w)=0(7.8)
(H+αI)w~=Hw∗(7.9)(H+\alpha I)\tilde{w}=Hw^*\quad\quad\quad\quad\quad(7.9)(H+αI)w~=Hw(7.9)
w~=(H+αI)−1Hw∗(7.10)\tilde{w}=(H+\alpha I)^-1Hw^*\quad\quad\quad\quad\quad(7.10)w~=(H+αI)1Hw(7.10)

(?矩阵什么时候可逆)

α\alphaα 趋向于 0 时,正则化的解 w~\tilde{w}w~ 会趋向 w∗w^*w。那么当 α\alphaα 增加时会发生什么呢?因为 HHH 是实对称的,所以我们可以将其分解为一个对角矩阵 Λ\LambdaΛ 和一组特征向量的标准正交基 QQQ,并且有 H=QΛQTH=Q\Lambda Q^TH=QΛQT(?实对称矩阵的什么性质)。将其应用于式 (7.10) ,可得:

w~=(QΛQT+αI)−1QΛQTw∗  (7.11)=[Q(Λ+αI)QT]−1QΛQTw∗(7.12)=Q(Λ+αI)−1ΛQTw∗(7.13)\tilde{w}=(Q\Lambda Q^T+\alpha I)^{-1}Q\Lambda Q^Tw^*\quad\quad\quad\quad\quad\ \ (7.11)\\=[Q(\Lambda+\alpha I)Q^T]^{-1}Q\Lambda Q^T w^*\quad\quad\quad\quad(7.12)\\=Q(\Lambda+\alpha I)^{-1}\Lambda Q^Tw^*\quad\quad\quad\quad\quad\quad\quad(7.13)w~=(QΛQT+αI)1QΛQTw  (7.11)=[Q(Λ+αI)QT]1QΛQTw(7.12)=Q(Λ+αI)1ΛQTw(7.13)

(?)中间推导

我们可以看到权重衰减的效果是沿着由HHH的特征向量所定义的轴缩放w∗w^*w。具体来说,我们会根据λiλi+α\frac{\lambda_i}{\lambda_i+\alpha}λi+αλi因子缩放与HHHiii个特征向量对齐的w∗w^*w的分量(图2.3中有这种缩放的原理)

沿着HHH特征值较大的方向(如λi≫α\lambda_i\gg\alphaλiα)正则化的影响较小。而λi≪α\lambda_i\ll\alphaλiα的分量将会收缩到几乎为零。这种效应如图7.1所示:

在这里插入图片描述

只有在显著减小目标函数方向上的参数会保留得相对完好。在无助于目标函数减小的方向(对应 Hessian 矩阵较小的特征值)上改变参数不会显著增加梯度。这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。

目前为止,我们讨论了权重衰减对优化一个抽象通用的二次代价函数的影响。这些影响具体是怎么和机器学习关联的呢?我们可以研究线性回归,它的真实代价函数是二次的,因此我们可以使用相同的方法分析。再次应用分析,我们会在这种情况下得到相同的结果,但这次我们使用训练数据的术语表述。线性回归的代价函数是平方误差之和:

(Xw−y)T(Xw−y)(7.14)(Xw-y)^T(Xw-y)\quad\quad\quad\quad(7.14)(Xwy)T(Xwy)(7.14)

我们添加L2L^2L2正则项后,目标函数变为:

(Xw−y)T(Xw−y)+12αwTw(7.15)(Xw-y)^T(Xw-y)+\frac{1}{2}\alpha w^Tw\quad\quad\quad\quad(7.15)(Xwy)T(Xwy)+21αwTw(7.15)

这将普通方程的解从(?):

w=(XTX)−1XTyw=(X^TX)^{-1}X^Tyw=(XTX)1XTy

变为:

w=(XTX+αI)−1XTy(7.17)w=(X^TX+\alpha I)^{-1}X^Ty\quad\quad\quad\quad\quad(7.17)w=(XTX+αI)1XTy(7.17)

式 (7.16) 中的矩阵XTXX^TXXTX与协方差矩阵1mXTX\frac{1}{m}X^TXm1XTX成正比。L2L^2L2正则项将这个矩阵替换为式 (7.17) 中的(XTX+αI)−1(X^TX+\alpha I)^{-1}(XTX+αI)1这个新矩阵与原来的是一样的,不同的仅仅是在对角加了α\alphaα。这个矩阵的对角项对应每个输入特征的方差。我们可以看到,L2L^2L2正则化能让学习算法 ‘‘感知’’ 到具有较高方差的输入xxx,因此与输出目标的协方差较小(相对增加方差)的特征的权重将会收缩。(?)

1.2 L1L^1L1参数正则化

对模型参数wwwL1L^1L1正则化被定义为:

Ω(θ)=∥w∥1=∑i∣wi∣(7.18)\Omega(\theta)=\Vert w\Vert_1=\sum\limits_{i}|w_i|\quad\quad\quad\quad(7.18)Ω(θ)=w1=iwi(7.18)

即各个参数的绝对值之和。接着我们将讨论L1L^1L1正则化对简单线性回归模型的影响,与分析L2L^2L2正则化时一样不考虑偏置参数。我们尤其感兴趣的是找出L1L^1L1L2L^2L2正则化之间的差异。与L2L^2L2权重衰减类似,我们也可以通过缩放惩罚项Ω\OmegaΩ的正超参数α\alphaα来控制L1L^1L1权重衰减的强度。因此,正则化的目标函数 J~(w;X,y)\tilde{J}(w;X,y)J~(w;X,y)如下所示:

J~(w;W,y)=α∥w∥1+J(w;X,y)(7.19)\tilde{J}(w;W,y)=\alpha\Vert w\Vert_1+J(w;X,y)\quad\quad\quad\quad\quad(7.19)J~(w;W,y)=αw1+J(w;X,y)(7.19)

对应的梯度(实际上是次梯度)(?):

∇wJ~(w;X,y)=αsign(w)+∇wJ(w;X,y)(7.20)\nabla_w\tilde{J}(w;X,y)=\alpha sign(w)+\nabla_wJ(w;X,y)\quad\quad\quad\quad(7.20)wJ~(w;X,y)=αsign(w)+wJ(w;X,y)(7.20)

其中sign(w)sign(w)sign(w)只是简单地取www各个元素的正负号。

观察式 (7.20) ,我们立刻发现L1L^1L1的正则化效果与L2L^2L2大不一样。具体来说,我们可以看到正则化对梯度的影响不再是线性地缩放每个wiw_iwi;而是添加了一项与sign(wi)sign(w_i)sign(wi) 同号的常数。使用这种形式的梯度之后,我们不一定能得到J(X,y;w)J(X,y;w)J(X,y;w) 二次近似的直接算术解(L2L^2L2正则化时可以)。

简单线性模型具有二次代价函数,我们可以通过泰勒级数表示。或者我们可以设想,这是逼近更复杂模型的代价函数的截断泰勒级数。在这个设定下,梯度由下式给出

∇wJ^(w)=H(w=w∗)(7.21)\nabla_w\hat{J}(w)=H(w=w^*)\quad\quad\quad\quad\quad(7.21)wJ^(w)=H(w=w)(7.21)

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值