映射在数学上的意思


映射在数学上的意思

模型泛化能力是机器学习和深度学习中的重要考量。为了全面理解并讨论机器学习和深度学习中的泛化及正则化问题,我将推出一系列文章。这些文章将从多角度解读模型的泛化挑战,并从泛化角度阐释机器学习和深度学习中的多种方法,如范数惩罚、权重衰减、丢弃层和参数共享等。

本系列主要基于Ian Goodfellow的《深度学习》一书第七章,并结合其他文献及我个人经验。

一、引言

定义:正则化是所有用于降低算法泛化误差的方法的总称。泛化误差是模型在新、未见样本上的预测误差。我们的目标是在训练误差和泛化误差之间寻找平衡。

二、正则化方法

1. 范数惩罚:常用的有L1和L2正则化。它们在理论机制上有所不同,L1正则化按特征方向重要性进行“削砍”,L2则“缩水”参数分量。在深度学习中的实现方式包括权重衰减和硬约束(重投影)两种,各有优缺点。

2. L2正则化的特殊作用:解决欠定问题,通过调整协方差矩阵使其可逆。

3. Dropout层与batchnorm层:Dropout本质上是一种集成方法。当Dropout与batchnorm用于回归时存在弊端,同时使用时在理论上可能有冲突。

4. 深度学习的早期停止:减少过度拟合后的无意义训练。

三、详细讨论

1. L1正则化:从求解过程和最终解的结果来看,L1正则化是通过在每一次迭代时依据符号调整数值,使其趋近于0。在特征值分解后,L1正则化使低于一定阈值的参数全部清零,高于阈值的参数减少一部分,来精简参数并迫使参数稀疏。

2. L2正则化:它不仅以降低模型复杂度的方式降低overfitting,而且在特殊情况下,如线性回归中的欠定问题,通过增加特征值使协方差矩阵可逆,从而找到最大似然估计的解。

3. 实现方式:范数惩罚通常有两种实现方式,即权重衰减和硬约束(重投影)。两者各有优缺点,如权重衰减可能导致无差别的参数衰减造成死亡单元,而硬约束则可以在明确知道理想参数范围时使用。

四、其他考虑

1. Dropout和batchnorm虽然能有效促进泛化,但也有其弊端。如Dropout可能导致模型在训练时的不稳定性,而batchnorm在小型数据集上可能效果不佳。

2. Dropout和batchnorm在理论上可能存在冲突。Dropout是通过随机选择元进行训练,而batchnorm是对每个batch的数据进行标准化。在训练过程中,两者可能产生冲突,影响模型的稳定性。

▲ Dropout层的工作原理是通过对模型的某些部分进行随机遮盖,从而形成不同的子模型。训练过程实际上是在训练这些子模型的集合,类似于一个由多个子模型构成的ensemble model。这种策略解决了单一模型的不稳定性问题,降低了模型的variance。关于ensemble method的详细解释,我们稍后会专门探讨。

这种方式的实现并不完全等同于传统的ensemble method。为了使有dropout和关掉dropout(测试阶段)时的模型输出具有相同的期望值,我们在训练时会对参数或元的值进行适当调整。例如,当dropout率为0.5时,我们可以将元的输出放大2倍来弥补缺少一部分元所带来的输出损失。另一种方法是在测试时调整参数值。

这种调整虽然有效,但并不完美。当模型包含非线性的hidden unit时,输出期望只是对ensemble输出的一个近似。如果模型是完全线性的,那么输出的期望值会被证明与ensemble完全相等。Dropout的成功并不仅仅是因为训练过程中的随机性,而是由于其在结合多个子模型时产生的bagging效果,可以称之为“集体的智慧”。

研究表明,当dropout应用于线性回归时,它等价于一种weight decay,但每个输入特征的weight decay常数并不相同,这取决于特征的variance。对于其他线性模型也有类似的结论。对于深度模型,dropout并不等价于weight decay。

值得注意的是:

1. 模型需要足够大,以抵消dropout带来的模型容量降低;

2. 在大数据集上,所有的regularization方法可能都起不到太大作用,此时引入dropout可能会带来更多的弊端;

3. 当有标签的训练数据很少时,贝叶斯网络和半监督学习的表现可能会超过dropout。

实践中,我们经常看到dropout和batchnorm一起使用,特别是在深度网络中。尽管有研究表明这两种方法一起使用时可能会产生所谓的“variance shift”,导致测试阶段的不稳定,但在很多实际应用的模型中,它们的结合依然非常流行并且表现出色。关于这种冲突的具体结论还需要进一步的研究和验证。


映射在数学上的意思