【新智元导读】一场或许有关深度学习本质的争论正在火热进行中。去年底,MIT、DeepMind 和谷歌大脑合著的论文《理解深度学习需要重新思考泛化》引发热论。论文指出,经典统计学习理论和正则化策略不能解释小的泛化误差为何发生,神经网络实现高性能泛化的真正原因是“能够记忆数据”。但最近,Bengio 实验室的一篇 ICLR-17 论文提出了反对观点,认为神经网络并不通过记忆学习。更好的泛化理论能让我们设计出比 dropout、bachnorm,l2 等更好的正则化方法,从而带来更好的深度学习。神经网络的泛化能力究竟从何而来?请在文末留下你的看法。
Bengio 实验室日前发表了一篇论文,这篇论文将作为 ICLR 2017 一场研讨会的主题:
“深度网络不通过记忆学习”。
为什么今天要说这篇论文?
因为它的观点与另一篇 ICLR 论文、与此前谷歌大脑的《理解深度学习需要重新思考泛化》相互矛盾。那篇论文由 MIT 的 Chiyuan Zhang 为第一作者,合著人当中不乏大牛的名字,比如谷歌大脑的 Samy Bengio(是的,他就是我们常说的那个 Bengio 的弟弟,头图中左边的那位——看图你还不觉得他们两人是兄弟?),以及之前在谷歌大脑工作,现在是 DeepMind 研究员的 Oriol Vinyals。
值得一提的是,《理解深度学习需要重新思考泛化》那篇文章发布后,在学界激起了热烈的讨论和广泛的关注——根据 Twitter 上的讨论,这篇论文的 ICLR 得分相当之高。
有人更是将其称为“势必颠覆我们对深度学习理解”的文章。
在“重新思考泛化”那篇文章里,研究人员通过实验发现:
实际上,作者引入了两个新的定义——关于“显式”和“隐含”正则化来讨论深度学习。现在,针对这两种正则化,Bengio 实验室的论文提出了完全相反观点。
两篇重磅论文,究竟谁对谁错——或者,深度神经网络强大泛化能力的真正原因是什么?
让我们先从MIT、谷歌大脑与 DeepMind 合作的《要理解深度神经网络需要重新思考泛化》看起。
谷歌重磅论文:理解深度学习,需要重新思考泛化问题
提要
尽管体积巨大,成功的深度人工神经网络在训练和测试性能之间可以展现出非常小的差异。过去一般将其归功于泛化误差小,无论是对模型谱系的特点还是对于训练中使用的正则技术来说。
通过广泛的系统的实验,我们展示了传统方法无法解释为什么大规模神经网络在实践中泛化表现好。 具体来说,我们的实验证明了用随机梯度方法训练的、用于图像分类的最先进的卷积网络很容易拟合训练数据的随机标记。这种现象本质上不受显式正则化影响,即使我们通过完全非结构化随机噪声来替换真实图像,也会发生这种现象。我们用一个理论结构证实了这些实验结果,表明只要参数的数量超过实践中通常的数据点的数量,简单的depth 2神经网络就已经具有完美的有限样本表达率(finite sample expressivity)。
我们通过与传统模型进行比较来解释我们的实验结果。
1. 概述
深度人工神经网络通常具有比它们被训练的样本数量多得多的可训练模型参数。 尽管如此,这些模型中的一部分仍显示出非常小的生成误差,即“训练误差”和“测试误差”之间的差异。 同时,得到泛化不好的自然模型架构也肯定很容易 。 那么,是什么造成了泛化好与不好之间的差别? 对这个问题的解答不仅有助于使神经网络更易于理解,而且还可以引导更富原则和更可靠的模型架构设计。
为了回答这样的问题,统计学习理论已经提出了能够控制泛化误差的许多不同的复杂性度量方法(complexity measures)。 包括VC dimension (Vapnik, 1998), Rademacher complexity (Bartlett & Mendelson, 2003), and uniform stability (Mukherjee et al., 2002; Bousquet & Elisseeff, 2002; Poggio et al., 2004)。 此外,当参数的数量巨大时,理论表明需要某种形式的正则化以确保小的泛化误差。 如果伴有early stopping的情况,正则化也可以是隐含的。
我们的贡献
在这项工作中,通过论证它不能区分具有完全不同泛化性能的神经网络,我们质疑了对于泛化的传统认识 。
随机化测试。 我们方法的核心是众所周知的非参数统计的随机化测试的变体(Edgington&Onghena,2007)。 在第一组实验中,我们在数据的副本上训练若干标准架构,其中真实标签被随机标签替代。 我们的核心发现可以概括为:
深层神经网络容易拟合随机标签。
更准确地说,当对真实数据的完全随机标记进行训练时,神经网络实现0训练误差。 当然,测试误差并不比随机概率好,因为训练标签和测试标签之间没有相关性。 换句话说,通过单独使标签随机化,我们可以迫使模型的泛化显著地提升,而不改变模型、大小、超参数或优化器。 我们对在CIFAR10和ImageNet分类基准上训练的几个不同的标准架构确证了这一事实。 简而言之,从统计学习角度来看,这一观察有着深刻的影响:
在这第一组实验上,我们还用完全随机的像素(例如高斯噪声)来替换真实图像,并观察到卷积神经网络继续拟合具有零训练误差的数据。这表明,无论它们的结构怎样,卷积神经网络可以拟合随机噪声。我们还进一步改变随机化的量,平滑地添加在无噪声和完全噪声的情况之间。这导致一系列intermediate learning problems,在标签中仍然存在某些程度的信号。随着噪声水平的提高,我们观察到泛化误差的稳步恶化 。这表明神经网络能够捕获数据中的剩余信号,同时使用强力拟合噪声部分。
我们将在下面进一步详细讨论这些观察结果如何排除所有VC维度、Rademacher复杂性和均匀稳定性这些现有神经网络泛化性能的可能解释。
显式正则化的作用。 如果模型架构本身不是一个足够的正则化矩阵,它仍然能够展示出显式正则化在多大程度上有帮助。 我们论证了,正则化的显式形式,如权重削减、丢失和数据增加,都不能充分解释神经网络的泛化误差。 换句话说:
显式正则化可以提高泛化性能,但是既不必要也不足以控制泛化误差。
有限样本表达率。 我们用理论结果补充了我们的实证观察结果,表明一般大规模的神经网络可以表示训练数据的任何标记。 更正式地,我们展示了一个非常简单的双层ReLU网络,其中p = 2n + d个参数,可以表示d维中任何大小为n的样本的任何标记。 由于此前Livni et al。 (2014)使用多得多的参数,即O(dn),实现了类似的结果。 虽然我们的depth 2网络不可避免地具有大的宽度,但是我们仍然可以得到深度k网络,其中每层仅具有O(n / k)个参数。
虽然先前的表达率结果集中在神经网络可以在整个域起到什么作用,这次我们重点关注了和有限样本相关的神经网络的表达率。 与现有的对函数空间的深度层别作用认识相反(Delalleau&Bengio,2011; Eldan&Shamir,2016; Telgarsky,2016; Cohen&Shashua,2016),我们的结果表明,即使depth 2网络的线性大小已经可以表示训练数据的任何标签。
隐式正则化的作用。虽然显式正则化函数(如 dropout 和 weight-decay)对于泛化可能不是必需的,但是肯定不是所有拟合训练数据的模型都很好地泛化。 事实上,在神经网络中,我们几乎总是选择我们的模型作为随机梯度下降运行的输出。 诉诸线性模型,我们分析SGD如何作为隐式正则化函数。 对于线性模型,SGD总是收敛到具有小范数的解。 因此,算法本身隐性地使解正则化。 事实上,我们论证了,对于小数据集,即使无正则化的Gaussian kernel method也可以很好地泛化 。虽然这不解释为什么某些架构比其他架构更好地泛化,但它确实表明需要更多的研究来了解从使用SGD训练的模型中继承的属性是什么。
2.关于论证
必要的背景知识:
Ademacher complexity:数据集(X_1,... X_n)上某个假设类H的复杂度度量。 平均来说,这一complexity测量了假设类H在数据中拟合所有可能的标签的机会。在下面的randomization 部分,我们将使用这种 complextiy 证明这种 complexity 不足以解释大型模型的成功。
均匀稳定性:一种显示特定模型对替换单个数据样本的敏感程度的度量。 重要的是要注意,这只是模型的属性,而不是数据本身的属性。
随机化:
第一个概念是“深层神经网络轻松拟合随机标签”。基本上,我们可以使任何组的输入拟合任何组的输出,并实现0训练错误。 这使我们得出结论,一个足够大的DNN可以简单地使用暴力记忆来拟合数据。
即使在数据中具有各种级别的随机性,该模型仍然能够拟合。随着随机化中的噪声量的增加,泛化(测试误差 - 训练误差)开始增加。这意味着模型正在学习识别什么信号应保留在数据中,并使用记忆来拟合噪声。
我们使用数据测试了几个级别的随机性,而网络总是能够在训练期间完全拟合。 然而,随着更多的随机性插入,目标函数花费了更长的时间。 这主要是由于反向传播的大误差导致了通过梯度的大规模参数更新。
图1:CIFAR10上随机标记和随机像素的拟合。(a)显示了不同实验设置下的training loss随着训练步骤恶化的情况;(b)显示了不同的label corruption ratio相应的收敛时间;(C)显示了不同的label corruptions下的测试误差(因为训练误差0,所以这同样也是泛化误差)
在这些实验中需要注意的一点是,这只是一个数据变化。 本文使用这个随机化实验来排除泛化成功的可能原因,如 Rademacher complexity 和 uniform stability。
我们可以排除complexity度量,如Rademacher,因为我们的模型完全拟合训练数据(因此,R(H)= 1)。 我们不能再使用均匀的收敛边界作为解释低泛化误差的理由。 我们也不能使用稳定性度量,因为这种改变是针对数据而不是任何模型参数。
正则化:
第二个概念是“显式正则化可以提高泛化性能,但是既不必要也不足以控制泛化误差”。 本文将正则化技术概括为有助于泛化的调整参数,但对于低测试错误不是必需的。 思考正则化的作用的一个好方法是考虑整个假说空间。 通过使用regulizer,我们实质上将可能的假设空间减小到较小的子集。
本文尝试了三种类型的显式正则化:data augmentation, weight decay and dropout。 作者发现,data augmentation和weight decay有助于减少测试误差,但即使没有使用,模型仍然能够很好地泛化。(注意:与weight decay相比,data augmentation被发现是相当有帮助的,也就是说,数据是最好的regularizer)。
表2显示了Imagenet面对真实标签和随机标签时各自的性能
作者尝试了各种形式的隐式正则化,例如early stopping和批量标准化。 对于这两种技术,泛化误差在不使用该技术的情况下只有少量减少。 这使得作者可以得出结论,“regularizer不可能是泛化的根本原因”。
图2:隐式正则化对泛化性能的影响。aug 是data augmentation, wd 是weight decay,BN是batch normalization。(a)其他regularizer缺失时,early stopping 可以潜在地提高泛化;(b)CIFAR10上,early stopping 基本没有帮助,但batch normalization稳定了训练进程,提高了泛化。
有限样本表达率
文章找到了证据证明 “存在具有 ReLU 激活和 2n + d 个权重的两层神经网络,其可以表示d维中的大小为n的样本的任何函数”的定理。 这真正展示了对任何数据集来说神经网络的强力(brute-force)能力。
3.结论
机器学习的传统观基于简约(parsimony)。 在几乎任何公式中,学习都归结为从数据中提取低复杂度的模式。 暴力记忆通常不被认为是一种有效的学习形式。 同时,可能纯粹的记忆在某种程度上是一个有效的解决自然任务中问题的策略。
我们的结果挑战了传统的对机器学习的认识,展示了许多成功的神经网络容易拥有纯粹记忆的有效能力。这使我们相信,这些模型在处理它们用来训练解决的问题时可能很好地利用了大量的记忆。很可能传统意义上的学习仍然部分地发生,但它似乎与大量的记忆密切相关。因此,传统方法不太适合推理为什么这些模型能够很好的泛化。
我们认为理解神经网络需要重新思考泛化。 我们希望我们的论文是一个开始,通过质疑传统观点,指向未解决的难题。
Bengio 实验室观点:深度网络不通过记忆学习
摘要
我们使用经验验证法论证,深度神经网络(DNN)尽管有着过度表达的模型架构(overly-expressive model architectures),但不会通过“记忆”训练数据实现其良好的性能。实际上,深度神经网络学习的是一种简单的、切合有限数据样本的可用假设。为了支持这一观点,我们确立神经网络在学习噪声与自然数据集时存在定性的差异,显示出:(1)需要更多的容量拟合噪声;(2)随机标记的收敛时间更长,但随机输入的收敛时间更短;(3)在实际数据样本上训练的 DNN 学习的函数,比用噪声数据训练的更简单,这种简单的评估标准是收敛时损失函数的锐度。最后,我们证明对于适当调整的显式正则化(如 dropout),可以降低 DNN 在噪声数据集上的训练性能,而不影响对实际数据的泛化。
1. 引言
泛化(generalization)测量的是在给定数据集上训练过的模型在此前没有见过的数据上运行的能力,这些未见过的数据与训练数据有着相同的底层分布。传统的泛化观点认为,容量足够大(比如参数的数量大于训练样本的数量)的模型,在表达上足以“记住”每个样本,因而对于训练集是过拟合的,导致在验证时或者说在测试集上泛化较差。但与此观点相反,深度神经网络(DNN)通常含有比训练样本更多的参数,但却展现出良好的泛化性能。Zhang 等人最近的工作(2017,译注:即上面介绍的谷歌论文)发现,传统方法不能解释 DNN 的这种性质。他们展示了 DNN 能够适应随机噪声,并得出结论认为,部分原因是深度网络能够通过“大规模记忆”进行学习。我们认为并非如此,并通过展示学习随机噪声和学习数据之间的不同支持我们的观点。
“记住”一个训练集是什么意思?一种解释是,对于每个训练样本,DNN 都能实现完美的分类精度(即训练误差接近 0)。这看上去是那么回事,但并不完全——直观地讲,“记住”数据的算法应该在某种程度上仅限于训练集,就像查找表一样。而这又引出了另一种解释;零训练误差和随机泛化误差。通过这个定义,DNN 并不会记忆。
然而,这个定义不涉及学习的过程——还是直观地讲,我们可能不会“信任”使用泛化误差测量得出的结果,因为我们会认为如果算法像一个查找表那样学习(这个查找表恰好具有良好的泛化性能),我们仍然会认为信息是“记住”的,而不是学会的。这又使我们得出了对记忆的第三个、模糊的定义:不是在学习模式。我们猜,这实际上是大多数人使用术语“暴力记忆”、“纯粹记忆”或“大规模记忆”时,想要表达的意思。
但是,我们表明即便使用这种定义,DNN 仍然不会“记忆”真实数据。模型的理论容量要成为有效容量,受两大因素的限制:数据集大小和训练时间(更新)。我们表明,在有效容量固定的情况下,深度网络对于随机数据和真实数据,所学到的假设是不同的——真实数据的会更简单。
2. 试验和讨论
在试验和讨论环节,研究人员用噪声(随机标签或i.i.d)替换数据集的一些部分。然后做高斯噪声输入(均值和方差匹配实际数据)。
第一个发现(见图1),随着更多的样本被噪声替代,DNN 需要更多的容量才能达到最高性能。这表明网络能够以更简单的模式,也即更少的参数解释真实数据。
降低数据集的容量或增加数据集的大小会减慢对实际数据和噪声的训练。然而,实验2(图2)表明,对于实际数据这一效果不太明显。
在分析正则化对学习的影响时,研究人员发现,与(Zhang 等人,2017)的发现不同,如果使用随机标签训练,正则化(如 dropout 和高斯噪声)能够限制训练精度。研究人员采用 Zhang 等人论文中建议的方法进行了测试(详见论文)。
3. 结论
我们对记忆经验探究表明,学习噪声与学习真实数据是不同的。在拥有相同有效容量的情况下,DNN 学习真实数据时会使用比学习噪声时更简单的假设。这揭示了 DNN 先验对于学习和泛化的重要性,并提供了有效地评估显式正则化的有趣方式(即通过阻碍记忆的能力)。
深度神经网络强大泛化能力的真正原因是什么?
欢迎留下你的分析。
参考资料