正则化(机器学习)

                     

贡献者: xzllxls; addis

预备知识 欠拟合,过度拟合范数、赋范空间

   正则化(Regularization)是机器学习中用于减少泛化误差(测试误差),从而缓解过度拟合的设计策略。当使用正则化策略减少泛化误差时,可能会增大训练误差。

   在深度学习中,很多正则化策略都是对估计进行正则化。估计的正则化会以偏差的增加换取方差的减少[1]。

   参数范数惩罚是最常用的正则化策略之一。传统机器学习方法就有很多使用,而在当今的深度学习中也应用广泛。参数范数惩罚的主要思想是给目标函数 $J$ 添加一个参数范数惩罚项 $\Omega( \boldsymbol{\mathbf{\theta}} )$,限制模型的学习能力,从而减少过度拟合的发生。设 $J'$ 为正则化后的目标函数,则有:

\begin{equation} J'( \boldsymbol{\mathbf{\theta}} ; \boldsymbol{\mathbf{X}} ,y)=J( \boldsymbol{\mathbf{\theta}} ; \boldsymbol{\mathbf{X}} ,y)+\alpha\Omega( \boldsymbol{\mathbf{\theta}} )~, \end{equation}
其中,$ \boldsymbol{\mathbf{\theta}} $ 表示的是模型参数,$ \boldsymbol{\mathbf{X}} $ 表示的是训练数据的特征,$y$ 表示的是标签,$\alpha\in[0,+\infty)$ 是权衡范数惩罚项 $\Omega$ 和标准目标函数 $J( \boldsymbol{\mathbf{X}} ; \boldsymbol{\mathbf{\theta}} )$ 相对贡献的超参数。将 $\alpha$ 设为 $0$ 表示没有正则化。

1. $L^2$ 参数正则化

   $L^2$ 参数正则化指的是用参数的 $2$ 范数作为惩罚项,即把公式 $(1)$ 中的 $\Omega( \boldsymbol{\mathbf{\theta}} )$ 写成参数的 $2$ 范数形式。数学表示是:$\Omega( \boldsymbol{\mathbf{\theta}} )=\frac{1}{2}|| \boldsymbol{\mathbf{w}} ||_2^2$. 在优化代价函数时,会使得 $\Omega( \boldsymbol{\mathbf{\theta}} )$ 有极小化的趋势,因此,该正则化策略会使得权值趋向于原点。 其实,可以采用更为一般的做法,将参数正则化为接近空间中任意特定点,令人惊讶的是这样也仍然有正则化效果,但是特定点越接近真实值结果越好[1]。

   采用了 $L_2$ 正则化策略的代价函数表示为:

\begin{equation} J'( \boldsymbol{\mathbf{\theta}} ; \boldsymbol{\mathbf{X}} ,y)=J( \boldsymbol{\mathbf{\theta}} ; \boldsymbol{\mathbf{X}} ,y)+\alpha\frac{1}{2}|| \boldsymbol{\mathbf{w}} ||_2^2~, \end{equation}
其中,$ \boldsymbol{\mathbf{\theta}} $ 表示的是模型参数,$ \boldsymbol{\mathbf{w}} $ 表示模型权重,$ \boldsymbol{\mathbf{X}} $ 表示的是训练数据的特征,$y$ 表示的是标签,$\alpha\in[0,+\infty)$ 是权衡范数惩罚项 $\Omega$ 和标准目标函数 $J( \boldsymbol{\mathbf{X}} ; \boldsymbol{\mathbf{\theta}} )$ 相对贡献的超参数。将 $\alpha$ 设为 $0$ 表示没有正则化。该公式是假设模型参数中没有偏置,因此 $ \boldsymbol{\mathbf{\theta}} $=$ \boldsymbol{\mathbf{w}} $。

   有的文献称 $L^2$ 正则化为岭回归

2. $L^1$ 参数正则化

   $L_1$ 参数正则化也是一种常用的参数范数惩罚策略.顾名思义,就是采用参数的 $1$ 范数作为惩罚项,即 $\Omega(\theta)=|| \boldsymbol{\mathbf{w}} ||_1=\sum_i| \boldsymbol{\mathbf{w}} _i|$.

   采用了 $L_1$ 正则化策略的代价函数表示为:

\begin{equation} J'( \boldsymbol{\mathbf{\theta}} ; \boldsymbol{\mathbf{X}} ,y)=J( \boldsymbol{\mathbf{\theta}} ; \boldsymbol{\mathbf{X}} ,y)+\alpha|| \boldsymbol{\mathbf{w}} ||_1~, \end{equation}
其中,$ \boldsymbol{\mathbf{\theta}} $ 表示的是模型参数,$ \boldsymbol{\mathbf{w}} $ 表示模型权重,$ \boldsymbol{\mathbf{X}} $ 表示的是训练数据的特征,$y$ 表示的是标签,$\alpha\in[0,+\infty)$ 是权衡范数惩罚项 $\Omega$ 和标准目标函数 $J( \boldsymbol{\mathbf{X}} ; \boldsymbol{\mathbf{\theta}} )$ 相对贡献的超参数。将 $\alpha$ 设为 $0$ 表示没有正则化。该公式是假设模型参数中没有偏置,因此 $ \boldsymbol{\mathbf{\theta}} $=$ \boldsymbol{\mathbf{w}} $。

3. 数据增强

   如果一个训练数据集拥有足够多的训练数据,那么可以较好地反应数据生成分布,由此训练出来的模型就具有良好的泛化能力。但实际应用中,往往缺少关键的数据。此时,就可以采用数据增强方法来训练模型。

   数据增强(Data augmentation)是对原始训练数据中的样本做一定规则的变换,从而生成新的训练数据样本。此方法也是一种常用的正则化方法,可以明显地增强模型的泛化能力,而且使用起来较为方便。

   一个典型的应用场景,就是图像分类任务。我们可以通过对原始训练数据中的图像做平移、旋转或缩放等仿射变换操作,以补充训练数据。例如,一个识别图像是猫或狗的对象识别问题。无论猫或狗在图像中是什么位置或什么角度,又或是什么大小,都不会改变它们的性质。因此,为了增强模型对各种情况下的分类准确性,可以采用上述数据增强的办法。

   向数据中添加噪音也是数据增强的一种办法。在分类任务中,显然,我们希望在数据中有少量噪音的情况下,模型也能够给出正确结果。如果只采用原始数据来训练模型,可能使得模型对噪音的鲁棒性不足。为了,提高鲁棒性,我们可以在训练时,向数据中添加一定的噪音。

4. 提前终止

   在模型训练时,经常会出现的一种情况是,随着训练轮数的增加,训练误差不断减少,测试误差一开始也减少,但到一定时间之后,又会增加。此时,模型已经出现过度拟合。

   其实,我们只要在测试误差最小的时候,停止训练,并返回模型即可。此策略就被称为提前终止(Early stopping)。

   参考文献:

  1. I. Goodfellow, Y. Bengio, A. Courville, and Y. Bengio, Deep learning, vol. 1, no. 2. MIT press Cambridge, 2016.

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利