正则化

1. 定义

在机器学习中,许多策略被显式设计来减少测试误差(可能会增大训练误差为代价),这些策略被统称为正则化。常用的正则化方法简介如下表:

正则化方法 简介
正则化项 通过在经验损失上加上模型参数向量的罚项来防止模型过拟合,常用的有 L1L_1L2L_2 范数。
Dropout 通过随机 Mask 掉隐藏层的神经元,使得训练过程中实际训练了一堆的子网络,而最终测试用的整个网络相当于是很多子网络的集成,增加了模型的泛化性。
标签平滑 标签平滑是通过将传统的 one-hot 编码的 0,10, 1 硬标签软化,即用软标签 yf,yty_f, y_t 替代硬标签(0<yf<yt<10 \lt y_f \lt y_t \lt 1),从而防止模型过度自信而导致模型过拟合。
早停 在模型训练开始过拟合的时候(即测试误差开始不降反增),中止模型训练。

2. 正则化项

正则化项(也称罚项)常常加在经验风险上,一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。用公式化描述如下:

minfF1Ni=1NL(yi,f(xi))+λJ(f)(1)\min_{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i)) + \lambda J(f) \tag{1}

其中,第一项是经验风验,第二项是正则化项,λ0\lambda \geq 0 为调整两者之间关系的函数。正则化项可以取不同的形式,比如,回归问题中,损失函数是平方损失,则正则化项可以是:

  • 参数向量的 L2L_2 范数:L(w)=1Ni=1N(f(xi;w)yi)2+λ2w2L(\boldsymbol{w}) = \frac{1}{N} \sum_{i=1}^N (f(x_i; \boldsymbol{w}) - y_i)^2 + \frac{\lambda}{2} \Vert \boldsymbol{w} \Vert_2
  • 参数向量的 L1L_1 范数:L(w)=1Ni=1N(f(xi;w)yi)2+λw1L(\boldsymbol{w}) = \frac{1}{N} \sum_{i=1}^N (f(x_i; \boldsymbol{w}) - y_i)^2 + \lambda \Vert \boldsymbol{w} \Vert_1

正则化的作用是选择经验风险与模型复杂度同时较小的模型。

3. Dropout

Dropout 的思想是在训练过程中,按照设定的伯努利分布,随机移除部分隐藏层的神经元,即暂时 Mask 掉一些输出。假设某一隐藏层的输出为 y\boldsymbol{y},则 Dropout 后的输出为:

y^=δy(2)\hat{\boldsymbol{y}} = \boldsymbol{\delta} \odot \boldsymbol{y} \tag{2}

其中,δ\boldsymbol{\delta} 为采样向量,其中符从伯努利分布 XB(1,p)X \sim B(1, p)pp 是设定的 Dropout 率;\odot 为按元素乘积。此是 δ\boldsymbol{\delta} 就相当于覆盖在 y\boldsymbol{y} 的 Mask 向量。在测试过程中,则使用完整的网络模型,但是模型的参数需要乘以 pp(不然测试时相当于突然多出了 pp 比例神经元的输出值)。

Dropout 有效的原因在于,在每次 mini-batch 的训练过程中,随机 Mask 掉 pp 比例的神经元相当于每次都训练了不同的网络,最终测试的网络相当于是一系列网络的集成,因此泛化性会更好。

4. 标签平滑

在分类问题中,一般都是使用 one-hot 编码的标签向量,即设定标签向量中目标类别概率为 11,非目标类别概率为 00。并且,一般都是使用交叉熵损失函数,即先将输出过一遍 Softmax 函数,然后使用交叉熵函数 H(y,p)=iKyilogpiH(\boldsymbol{y}, \boldsymbol{p}) = -\sum_{i}^K y_i\log{p_i} 计算损失。其中,p\boldsymbol{p} 是模型输出取 Softmax 后的结果。但这样存在一个问题,使用 Softmax 后,如果要求输出向量中目标类别概率尽可能接近 11,则那一项就要趋于 ++\infty,即实际模型需要对分类概率过度自信,而这会导致模型过拟合。为此,标签平滑的正则化方法被提出。其主要结合了均匀分布,用平滑后的标签向量 y^i\hat{y}_i 来替代原来的 one-hot 标签向量 yhoty_{hot}

y^i=yhot(1α)+αK(3)\hat{y}_i = y_{hot} (1 - \alpha) + \frac{\alpha}{K} \tag{3}

其中,KK 为多分类的类别总数,α\alpha 是一个较小的超参数(一般取 0.10.1)。使用标签平滑后的分布就相当于在真实分布中加入了噪声,避免模型对于正确标签过度自信,从而避免模型出现过拟合,提高了模型的泛化能力。有关标签平滑的更详细实验分析参见论文:When Does Label Smoothing Help?

5. 早停

另一种最简单的正则化方法是,在模型训练开始过拟合的时候(即测试误差开始不降反增),中止模型训练。这种早停的策略,有一些文章给出了一些实验分析。比如,Deep Image Prior 这篇文章就提出,神经网络可能本身就是先学习到图像的语义特征,然后才过分地学习图像细节导致过拟合。

附录


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!