正文
所以,要是我们对“为什么神经网络表现(泛化)这么好?”给出的回答是:“我们真的不知道!”——事情就有些尴尬了。
故事从一个熟悉的地方开始——CIFAR 10(含有 5 万幅训练图像,分为 10 个类,1 万幅验证图像)和 ILSVRC(ImageNet)2012(1,281,167 训练数据,5 万幅验证图像,1000 个类别)数据集和 Inception 网络架构的变体。
使用训练数据训练网络,然后在“训练数据集”上错误为 0,这没什么好奇怪的。这充分说明了过拟合——记住训练样本,而不是学习对特征进行真正的预测。我们可以使用正则化技术应对过拟合,设计出泛化性能更好的网络。这个话题我们稍后再说。
仍然使用相同的训练数据,但这次将标签打乱(使标签和图像中的内容不再具有真正的对应关系)。使用这些标签随机的数据训练网络,会得到什么?训练错误还是 0!
“在这种情况下,实例和分类标签之间不再有任何关系。因此,学习是不可能发生的。直觉告诉我们,这种不可能会在训练过程中很清楚地表现出来,比如训练不收敛,或者收敛速度大幅减慢。让我们感到意外的是,有多个标准架构的训练过程的好些属性,在很大程度上都没有受这种标签转换的影响。”
正如作者所言,“深度神经网络很容易拟合随机标签”。从第一个实验中可以看出以下 3 个关键点:
-
神经网络的有效容量足以记住整个数据集;
-
对标签随机的数据进行优化很容易。事实上,与标签正确的训练过程相比,随机标签的训练时间也只增加一个小的常数因子;
-
将标签打乱仅仅是做了一个数据转换,其他所有关于学习问题的属性都没有改变。
不过,如果你把使用随机标签训练的网络在测试数据集上跑一遍,结果当然不会好,因为网络实际上并没有从数据集中学到什么。用专业一点的话说,就是网络的泛化误差很高。
综上可得:
“……通过将标签随机化,我们可以强制模型不受改变、保持同样大小、超参数或优化器的情况下,大幅提升网络的泛化误差。我们在 CIFAR 10 和 ImageNet 分类基准上训练了好几种不同标准架构,证实了这一点。”
换句话说:
模型本身、模型大小、超参数和优化器都不能解释当前最好的神经网络的泛化性能
。因为在其他条件都不变的情况下,唯独泛化误差产生大幅变动,只能得出这一个答案。
不仅仅打乱标签,把图像本身也打乱,会发生什么呢?或者,干脆用随机噪声代替真实图像??
论文给出的图中,将这一实验标记为“高斯”实验,因为作者为每幅图像生成随机像素的方法,是使用了匹配原始图像数据集均值和方差的高斯分布。