Press "Enter" to skip to content

线性代数及其应用——“早停止”与“L2正则”的关系

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

早停止

在机器学习算法中,有一大类是利用梯度下降法(Gradient Descent)降低损失函数(Loss Function),提升模型表现。对于非凸的(损失)函数来说,梯度下降法的迭代是一个永无止境的过程。实操中往往根据某些条件停止这个迭代过程,认为当时得到模型就是训练完成的、足够好的模型。停止迭代的判断标准很多、很灵活。我们列出其中(不限于)几种:

 

 

    1. 迭代(Epoch)数量达到预先设定;

 

    1. 训练集(或验证集)上的损失值低于预先设定的阈值;

 

    1. 发现训练集(或验证集)上的损失值开始上升;

 

    1. 训练集(或验证集)上的损失值一段时间以来不再下降;

 

    1. 梯度的模(长度)低于预先设定的阈值;

 

 

总而言之,以上标准都是“认为损失值不能再进一步下降了”。具体“手腕”很多,需要注意的地方也很多。比如 使用 Mini Batch 梯度下降方法时,如果 Batch Size 较小,则每一 Batch 上的损失值具有较大的随机性。如果采用上述方法 3 ,则最好不要发现一个 Batch 上的损失值上升就立即停止。最好观察过去一个时间窗口的平均损失(滑动平均)。总之,细碎之处很多,此处难以覆盖全部细节。在指导原则之下,相信读者能够明白。

 

早停止(Early Stopping),就是有意地更早停止迭代,这会起到正则化作用。至于为什幺?读完本文,读者会有更深刻的认识。具体实施时,怎幺算“早”,“早”是怎幺个标准,又是一些具体细碎的细节了。但是本文中,我们只研究为什幺减少迭代次数相当于正则化,它怎幺就能起到跟 L2 正则化相似的效果。

 

L2 正则化

 

L2 正则化的做法是,在原本的损失函数上新加一个惩罚项,即 L2 正则项:

 

 

是本来的损失函数。 是模型(所有)参数组成的向量。 是参数向量的模(长度)的平方。 是真正用梯度下降去优化(降低其值)的函数。它由两部分——原损失和 L2 正则项相加而得。我们有:

 

 

是 的第 个分量,即模型的第 个参数。模型有 个参数则 是 维向量。 是一个实数,称为正则化强度(Strengthen)。分母上的 没有实质作用,它使式子更简洁。 越大,L2 正则项在 中所占的比重越大,梯度下降法越倾向于降低 ,正则化越强。

 

L2 正则化越强的效果是让 的所有分量(所有参数)都更小,即 的模(长度)越小。为什幺这样就能降低模型自由度而缓解过拟合,那是另一个话题,本文不作讨论。本文我们主要关心“早停止”为什幺就跟 L2 正则化效果类似。

 

“早停止”与 L2 正则的关系

 

首先,让我们在数学上分析一下“早停止”。假如在梯度下降迭代中我们正朝一个局部极小点 进发。 是参数向量空间中的一个向量(点),它使损失函数达到局部极小。我们永远不知道 是否是损失函数的全局最小点,极有可能不是。但现在我们假设 就是能使我们满意的模型参数,现在我们离它已经很近了。既然很近了,我们就在 处对损失函数进行二阶泰勒展开,并用二阶泰勒展开(二次函数)代表 附近的损失函数本身:

 

 

为了简洁,我们用 代替 。 是损失函数在 处的梯度向量。第二项是梯度向量与当前位置与目标位置之差 的内积。因为目标点 是局部极小点,所以它必是个“驻点”, 处的梯度为零向量: 。所以第二项就没有了。于是梯度下降法要去优化的函数就近似是:

 

 

注意、我们忽略误差, 变 。 在 处的梯度是:

 

 

我们从一个初始参数 开始迭代。一般实践中,初始参数都非常小,我们可以认为 。 是损失函数 在 处的黑塞矩阵(Hessian Matrix)。为了简洁,我们省略了 的标记,就将黑塞矩阵简单记为 。根据梯度下降法的迭代公式,有:

 

 

表示第 步迭代更新后的参数向量。 是学习率(Learning Rate)。我们将上式等式两边都减去 ,稍作变形:

 

 

第 步迭代后的参数向量 与目标 之差等于第 步迭代后的参数向量 与目标之差左乘上矩阵 。递归一下,我们有:

 

 

是对称矩阵,我们可以对它进行谱分解:

 

 

是对角矩阵,对角线元素是 的 个(实)特征值。 是正交矩阵( ),它的 个行(Row)是 的标准正交的特征向量,依次对应的特征值是 的对角线元素。于是我们有:

 

 

注意, 个乘积项每个都左提出一个 ,右提出一个 ,中间的那些 和 都因为 而“湮灭”了。最后我们有

 

 

之前我们说了,我们选择的初始参数很小: ,所以有:

 

 

是对角矩阵,各个对角线元素是学习率 乘上黑塞矩阵 的各个特征值。因为 是极小点,所以黑塞矩阵 是正定的(Positive Definite)。它的特征值都是正数。如果学习率很小,则 是应对角线元素都小于 1 的对角矩阵。

 

当 时, ,即 。当 时, ,即 ,也就是 。这就是说当 趋近于无穷时, 趋近于目标 。这正是我们所期待的。

 

现在,我们再来看看 L2 正则化。L2 正则化要优化的损失函数是:

 

 

注意,我们直接用二阶泰勒展开取代了原来的(不包括正则项的)损失。这个损失 是一个二次函数(是凸的),我们可以解析地求它的全局最小点。 在 处的梯度是:

 

 

令该梯度为零向量,解得 的驻点:

 

 

施展老手腕,将黑塞矩阵分解 ,得到:

 

 

此推导过程将 和 分别提到括号左右外面,根据矩阵乘积的逆矩阵公式变化,右边的 与它右边 发生“碰撞湮灭”,最终得到等号右边的式子。我们看,如果正则化强度 ,则有:

 

 

正则化强度为零时,我们找到的使 最小的参数向量就是目标向量 ,即不带正则项的原损失函数的那个局部极小点。矩阵 是对角矩阵,它的第 个对角线元素是:

 

 

若正则化强度 非常大,乃至趋近于无穷,矩阵 趋近于零矩阵,这时使 达到最小值的点 。这很好理解,损失 中有一项是 。这一项的权重( )无穷大,那幺当然只有当这一项为零(即 )时, 才能最小。

 

最终我们看到,迭代步数 与 L2 正则化强度 是相关的,作用相反。迭代步数越多( 越大),相当于 L2 正则化强度 越小;迭代次数越少( 越小),相当于 L2 正则化强度 越大。结论就是:早停止,等价于施加 L2 正则。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注