这是一篇很好的评论论文:结果很容易理解,有点令人惊讶,但其中的含义发人深省。对于文中的问题,作者是这样回答的:如何区分泛化能力好的神经网络和差的神经网络?问题的答案是,具有良好泛化能力的神经网络不仅有助于提高网络的可解释性,还带来了更规则、更可靠的模型架构设计。所谓“良好的泛化能力”,作者对此的简单解释是“那些在训练集上表现良好的网络在测试集上也表现良好?”(与迁移学习不同,这涉及将训练迁移到过去的网络,应用于相关但不同的问题)。如果你仔细想想,这个问题几乎可以归结为为什么神经网络能像它们那样工作?泛化并不等同于只记住部分训练数据并将其重写回来,泛化实际上是开发一些可用于预测有意义的数据容量的东西。所以这可能有点烦人,但如果“为什么神经网络和其他模型一样好用”这个问题的答案是“我们真的不知道”,那就不会烦人了。随机标签的奇怪案例我们的故事从熟悉的地方开始——CIFAR10(50,000张训练图像,分为10个类别,另外10,000个验证图像),ILSVR2012(1,281,167个训练图像,50,000个验证图像图像,并且有1000个类别)和Inception网络架构的变体。用训练数据训练网络,你当然不会对在训练集上实现零错误感到惊讶。这是过度拟合训练而不是学习真实预测特征的明显例子。我们使用正则化等技术来防止过拟合,使模型获得更好的泛化能力。稍后将详细描述正则化。采用相同的训练数据,但这次使用随机标签(即标签与图像中的内容之间没有真正的对应关系)。使用这些随机标签训练网络,你会得到什么?零训练错误!在此示例中,实例和类标签之间没有关系。因此,学习是不可能的。这直观地表明这种不可能性应该在训练过程中表现出来,即错误不可能在训练后收敛或减少。令我们惊讶的是,多标准架构训练过程的几个属性在很大程度上不受这种标签转换的影响。正如作者总结的那样,“深度神经网络很容易适应这些随机标签”。以下是第一个实验的三个重要发现:神经网络的有效容量足以记住整个数据集。尽管针对随机标签进行优化仍然很容易,但实际上与使用真实标签进行训练相比,使用随机标签进行训练只需要稍长的常数时间。随机标记只不过是一种数据转换,保持学习问题的所有其他属性不变。如果你用随机标签训练网络,然后再看网络在测试集上的表现,表现显然不好,因为网络还没有学习到关于数据集的正确信息。这个问题的一个奇怪的描述是它有很高的泛化误差。综上所述,您可以看到,通过单独随机化标签,我们可以在不改变模型的大小、超参数或优化的情况下强制显着增加模型的泛化误差。这一事实是由我们在CIFA10和ImageNet分类基准上训练的几个不同基准确定的。或者换句话说,模型及其大小、超参数和优化器无法解释当前最先进的神经网络的泛化能力。这正是因为模型可以保持不变,但泛化能力的表现却可以千差万别。随机图像的奇怪情况如果我们不仅弄乱标签,而且弄乱图像本身,会发生什么?事实上,如果我们用随机噪声替换真实图像呢?在图中,这称为“高斯”实验,因为每个图像的随机像素是使用均值和方差与原始图像匹配的高斯分布生成的。事实证明,网络仍然可以训练到零错误,但比使用随机标签更快。关于为什么会发生这种情况的假设是随机像素比带有随机标签的原始图像更容易区分,因为原始图像中属于同一类的图像在类随机化后被学习为其他类。该团队试验了一系列变体,以在数据集中引入不同程度和种类的随机化:真实标签(未经任何修改的原始数据集)部分错误的标签(打乱一些标签)随机标签(打乱所有标签)混合像素(选择一个行像素并将其应用于所有图像)随机像素(对每个图像使用不同的排列)高斯(只是填充每个图像,如前所述)所有这一系列的方法,网络仍然可以很好地拟合训练数据。此外,我们进一步改变随机化的数量,平滑无噪声和全噪声插值。这导致了一系列中间学习问题,其中标签中存在特定信号。随着噪声的增加,我们发现泛化误差也增加了。这说明了神经网络在使用蛮力拟合部分噪声的同时捕获数据中剩余信号的能力。对我来说,最后一句话是关键。我们在模型中做出的某些选择清楚地显示了模型泛化能力的差异(否则所有架构都应该具有相同的泛化能力)。在数据中没有其他真实信号的情况下,世界上最具泛化能力的网络仍然需要审查。因此,我们可能需要一种方法来找出数据集中存在的真正泛化能力,以及给定模型架构捕获这种潜力的效率。一种简单的方法是在相同的数据上训练具有不同架构的模型(当然我们一直在这样做)。这仍然不能帮助我们解决最初的问题,但可以理解为什么有些模型比其他模型泛化得更好。用正则化来弥补?模型架构本身显然没有完全正则化(无法防止过拟合/内存),但是常用的正则化技术呢?下面我们展示了使用一些正则化技术,比如weightdecay,dropout,添加一些数据足以解释神经网络的泛化误差:采用正则化可能会提高模型的泛化能力,但是对于控制来说没有必要也不充分泛化误差。显式正则化似乎更像是一个有助于提高泛化能力的调整参数,但它的缺失并不意味着泛化错误。当然,并非所有适合训练数据的模型都能很好地泛化。本文分析的一个有趣方面是,我们仅通过使用梯度下降程序就获得了一定量的正则化:我们分析了SGD如何充当隐式正则化器。对于线性模型,SGD通常会收敛到一个小规模的解决方案。因此,算法本身隐式地规范了解决方案,虽然这并不能解释为什么某些架构比其他架构泛化得更好,但它表明需要更多的研究来理解SGD的内在属性。一个机器学习模型的有效容量考虑了样本大小为n的神经网络的情况,如果网络有一个参数p,p大于n,那么虽然一个简单的两层神经网络可以表示输入样本的任意函数.作者(在附录中)证明了以下定理:存在一个具有2n+d权重的双层神经网络,其ReLU激活函数可以表示大小为n*d的样本上的任何函数。那么这一切都偏离了我们什么地方呢?这种情况对统计学习提出了概念上的挑战,因为传统的模型复杂性度量难以解释大型人工神经网络的泛化能力。我们的任务就是在这个庞大的模型下进行,目前还没有找到简单准确的测量方法。从我们的实验中得出的另一种解释是,即使模型的泛化能力很差,也相对容易根据经验优化模型。这表明优化容易的经验原因肯定不同于真正的泛化原因。【本文为专栏机器心原创翻译,微信公众号“机器心(id:almosthuman2014)”】点此查看作者更多好文
