0
本文作者: 奕欣 | 2017-04-26 14:39 | 专题:ICLR 2017 |
雷锋网 AI 科技评论按:ICLR 2017 上,争议最大的 best paper 莫过于这篇名为《Understanding Deep Learning Requires Rethinking Generalization》(《理解深度学习,需要重新思考泛化问题》)的论文。作者名单可谓群星荟萃,分别为 MIT 博士生张驰原,谷歌大脑团队、深度学习三巨头 Yoshua Bengio 的亲兄弟 Samy Bengio、谷歌大脑团队 Modiz Hardt、加州伯克利大学的 Benjamin Racht,以及谷歌 DeepMind 的 Oriol Vinyals。
虽然关于这篇论文的讨论很多,但张驰原在发给雷锋网的邮件中表示,他没有计划对论文进行公开解读或接受访谈。因此在 ICLR 的现场,张驰原的现场演讲便成为了为数不多的了解论文思路的方式。雷锋网对他的演讲全文进行听译及整理,未经许可不得转载。
演讲视频:
以下为演讲实录:
谢谢。今天我想谈谈理解泛化在通用深度学习上的表现。和我一同合作的研究者包括 Samy Bengio、Modiz Hardt、Benjamin Racht 和 Oriol Vinyals。
接下来,我们将谈谈泛化。如果你想让系统获得一个好的训练表现,那么通常会根据你手头所拥有的数据量选择合适的模型复杂度。
因此,一般而言你不会选择一个太简单的模型,因为可能容易导致欠拟合的问题,无法涵盖有趣的模式;当然,你也不愿选择一个太复杂的模型(雷锋网按:或者说过参数化的模型),因为这样一来,非常容易导致泛化误差,即过拟合问题。
不过,过参数化的模型在一些领域的应用其实非常流行,也很成功。举个例子,当我们看着这幅图上的紫色小点时,包括我以及在座的各位来宾都很难猜出这是什么。但如果我给出所需要的背景图示,那么你会很快知道这是「水蛇星座」(A Water Snake)。也就是说,当我们试图理解星象结构和图案时,我们会运用丰富的想象力和创造力脑补出星座的画面。通过星星所形成的点的各种组合,我们能够创造出一幅美丽的图画。
当然,过参数化在深度学习中运用得很多,大家也非常熟悉,比如在计算机视觉领域非常典型的 CNN、LeNet、Inception Network,还有 152 层的 Deep Residual Network 等网络。
我们接下来回到这张图讨论偏差-方差问题(bias-variance),你会看到,实际上深度学习在位于坐标轴的右边很远的地方。我认为非常奇怪的地方在于,我们在测试过程中有着非常高的方差,但在实践中,深度学习的性能与泛化表现却非常好。
更奇怪的地方是,如果你将参数数量(parameter count)与训练样本的数量(number of Training Samples)之比(p/n)进行比较,你会发现,当这个数字增加时,神经网络的错误实际上有时会下降。从图表中我们看到,MLP 1*512 网络大概是绿毛虫的级别,p/n 为 24,如果达到 50% 的错误率,可能效果并不理想。如果采用了像 Alexnet 这样更大的模型(像比卡丘一样),p/n 接近 30,错误率就相对下降了。如果用更大的 Inception 甚至是 Wide Resnet(达到卡比兽和大岩蛇的规模),就能获得非常高的准确度。
这个结果仿佛告诉我们,测量参数数量并不能有效地测量模型的复杂度,当然,结构也是我们需要考虑的内容,但测量参数数量显然并不明智。那么,我们如何测量模型的有效复杂度?
为了实现这一点,我想介绍一下随机化检验。首先我要说明的是,我们发现深度神经网络非常容易拟合随机标签。
那么随机化检验是什么?即一系列设计用来测量拟合随机噪声情况的实验,数据集并不总是涵盖有意义的样本,因此你可以用此来检验模型的能力。此处我们采用随机标签来考量,首先我们采用 CIFAR 10 及 ImageNet 上已经标注好的数据集,随后,我们通过掷骰子的方式对数据集随机排序,并给它赋予一个新的标签名字。也就是说,每个图像集都标记为不同的名字,比如同为「花」内容的数据集,可能会有不同的名字,如「鸟」和「狗」。
随后,我们通过谷歌搜到一些成功的模型和开源应用,随即我们将张量先后 flow 进原始的数据集和随机标签的数据集里,随后对数据进行比较。
从图表中我们可以发现,横坐标左边是没有标签噪声的 CIFAR 10 数据集,右边为全是随机标签噪声的数据集。我们可以发现,不论标签是否加入了随机噪声,训练数据的准确度都是 100%,但测试准确度就会逐渐下降到 10%,这就形成了一个泛化鸿沟(generalization gap)。在其它条件不变的情况下(同样的结构、同样的算法、同样的 p/n),泛化误差依然会随之变大。
那么这又回到了我们一开始所说的结论:深度神经网络非常容易拟合随机标签。由此引申的一点是,不论你给出任意的训练数据集,神经网络都会有效地记住整个数据集,不论我们需要它学些什么,或是掺入了怎样的噪声。
我想提的另一点是,我们并不是想提出一个普适于任何情况的论点,我们并不是在说,任何神经网络都能够完美拟合随机噪声。因为确实存在一些网络在面对随机标签时呈现无法拟合,或者说过拟合的情况。我们想说明的点是,确实有一些成功的模型,一方面能够适应 CIFAR 或 ImageNet 等自然数据集,Inception 及 Alexnet 等网络在 ImageNet 等很多数据集同样呈现相似的结果。但它们无法呈现不同的泛化误差,而这也是引起泛化讨论的一个原因。
我们接下来要说的是正则化(regularizers)问题。我们都知道,正则化是为了限制假设空间,这里可以用一只胖胖的猫来类比大的假设空间,而被塞进更小容器里的小猫就是正则化的模型。当你向神经网络加入了正则化矩阵,实际上你也缩小了假设空间。因此,被缩小的假设空间也无法很好地拟合随机标签。
我们做出了一些尝试,对神经网络采用了一些常用的正则化方法,包括以下三种:
数据增强:涉及特定域的转化
权重衰减:非常流行的正则化方法
随机遮挡:因 LeCun 而发扬光大
我们采用对比的方式,一组用正则化拟合,一组不采用。得到两个结果:
一个是,训练数据在准确度上并没有变化;
第二个是没有正则化与正则化的测试准确率并没有太大差异。在 CIFAR-10 及 ImageNet 上的结果呈现相似的结果。
如果我们采用随机化检验的方式,并予以正则化,在不同的网络下是否还能拟合随机噪声?答案是肯定的,在大部分的案例下,神经网络确实能够拟合随机噪声。在这个实验中,我们发现 Alexnet 不能 converge,但就像我们之前说的一样,我们并不是为了提出通用的论断。
而且不可否认的是,如果你持续增加泛化的权重,终究会无法拟合随机标签,就更不要说自然标签了。这样一来,我们又陷入了欠拟合的状态。对吧?
很遗憾的是,正则化在我们的通常理解中,是一种能够限制模型或增强数据的方法。而如今,在重新思考正则化之后,它可能更像是「任何会损害训练过程的东西」。这可能会导致,比如,提前停止(early stopping)获得所谓的全局最小值,或让随机梯度下降(SGD)产生不必要的梯度噪音(gradient noice)。
而在采用 SGD 拟合随机标签时,真实标签与随机标签的平均 loss 一开始呈现非常大的差距,但到接近 1500 steps 时,两者会趋向一致。而如果采用的是混合像素、随机像素甚至是高斯像素的图片,它们最终都会趋于损失最小化(0),并获得全局最小值。
因此,我们论文中提及的隐式泛化基本上并没有改变图像,实际上所用的模型也有着它强大的有效能力(effective capacity),而采用偏差-方差理解泛化能力看上去很难。
对于深度学习而言,优化问题并不难。优化的难点与泛化的难点并不相同,因此学习泛化很可能需要从另一个角度思考,且并不容易,它们两者并不能混为一谈。
据此,我们团队的结论是:
提出了一个简单的实验框架,以理解深度学习模型的有效表达能力。
成功的深度网络能够碾压性地拟合训练集。
要解释过参数化深度模型的泛化问题,我们需要提出其他的方式,来衡量模型/算法/数据集的复杂度。
以上便是张驰原团队的演讲全文,更多 ICLR 2017 的文章,敬请前往专题页面了解。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。
本专题其他文章