深度神经网络 (DNN) 是近年来机器学习研究进展的基础,也是在图像识别、图像分割、机器翻译等诸多领域能够取得突破性进展的重要原因。

尽管 DNN 无处不在,研究人员仍在尝试全面了解深度神经网络的基本原理。例如,传统理论(如 VC 维和 Rademacher 复杂度)认为:在处理未知数据时,过参数化函数 (over-parameterized functions) 的泛化能力较差;但在近期研究中却发现,大规模过参数化的函数(参数比数据点多出几个数量级)却拥有出色的泛化能力,更深层次地地理解泛化对于理论的落地和DNN理论的实现从而改进模型是很有必要的。

注:近期研究 链接

https://arxiv.org/pdf/1611.03530.pdf

在理解泛化之前,我们需了解 Generalization Gap(泛化性能差异)这一重要概念。泛化性能差异即模型针对相同分布的训练数据和未知数据所表现出的性能差异。在致力获得更好的 DNN 泛化边界(即泛化性能差异的上限)的过程中,研究人员取得了重大进展。但是,这类边界通常仍会大大高估真实的泛化性能差异水平,并且无法解释部分模型为何具有出色的泛化能力。

另一方面,研究人员基于支持向量机 (support-vector machines) 等浅层模型对边缘 (notion) 概念(即数据点与决策边界之间的距离)进行了大量研究,最终发现此概念与模型针对未知数据所表现出的泛化能力密切相关。基于此项发现,研究人员已将使用边缘研究泛化性能差异的方法拓展至 DNN 领域,从而使泛化性能差异的理论上限得到了高度优化,但此方式并未能显著提高泛化模型的预测能力。

注:理论上限 链接

https://papers.nips.cc/paper/7204-spectrally-normalized-margin-bounds-for-neural-networks



DRN双重回归神经网络 dnn神经网络回归_泛化

支持向量机决策边界示例。w∙x-b=0 定义的超平面是此线性分类器的“决策边界”,即在该线性分类器下,超平面上的每个点 x 在任一类中的可能性相等。

在 ICLR 2019 论文《使用边缘分布预测深度网络的泛化性能差异》(Predicting the Generalization Gap in Deep Networks with Margin Distributions) 中,我们提议在各层网络上使用标准化的边缘分布 (Normalized Margin Distribution) 来预测泛化性能差异。

我们通过实践研究了边缘分布与泛化之间的关系,最终发现在对距离进行适当标准化 (Normalization) 后,边缘分布的一些基本数据可以准确预测泛化性能差异。此外,我们还通过 GitHub 代码库将所有模型作为数据集公开发布,以便您进行泛化研究。



DRN双重回归神经网络 dnn神经网络回归_dnn回归预测_02

每张图均对应一个基于 CIFAR-10 训练的卷积神经网络(分类准确率各不相同)。三个模型各有差异,从左至右,泛化能力逐渐增强。其中,x 轴表示 4 个层的神经网络标准化边缘分布,y 轴表示此分布的概率密度。标准化的边缘分布与测试准确率密切相关,这表明我们可以将此类分布用作预测网络 Generalization Gap(泛化性能差异)的指标。如需了解这些神经网络的更多详情,请参阅我们的论文。

边缘分布作为泛化性能差异的预测指标

如果边缘分布统计数据可以真实预测泛化性能差异,那么简单的预测方案应能建立起二者的关系。

因此,我们选择使用线性回归作为预测指标。我们发现,在对边缘分布统计数据进行对数转换后,转换后的数据与 泛化性能差异之间几乎完全呈线性关系(参见下图)。事实上,相较于其他现有的泛化测量方法,我们提出的方案可提供更准确的预测。这表明,边缘分布可能包含与深度模型泛化性能差异相关的重要信息。



DRN双重回归神经网络 dnn神经网络回归_dnn回归预测_03

基于 CIFAR-100 和 ResNet-32 得出的 Generalization Gap 预测值(x 轴)与实际值(y 轴)关系图。数据点的分布趋近于贴近对角线,这表明该对数线性模型的预测值非常符合实际的 Generalization Gap 水平。

深度模型泛化数据集

除论文之外,我们还介绍了深度模型泛化 (DEMOGEN) 数据集。该数据集包含 756 个经过训练的深度模型,以及这些深度模型在 CIFAR-10 和 CIFAR-100 数据集上的训练与及测试表现。这些模型均为 CNN(所用架构类似于“网络中的网络”(Network-in-Network))和 ResNet-32 的变体,它们采用当下流行的各类正则化技术和超参数设置,因而也产生了广泛的泛化行为。

例如,基于 CIFAR-10 训练的 CNN 模型的测试准确率在 60% 至 90.5% 之间,泛化性能差异率则介于 1% 至 35% 之间。如需了解数据集详情,请查看我们的论文或 GitHub 代码库。发布数据集时,我们还为其添加了许多实用程序,以便您能够轻松加载模型,并重现论文中所展示的结果。 

我们希望本次研究和 DEMOGEN 数据集能为社区提供便利工具,让社区成员无需重新训练大量模型,即可研究深度学习领域的泛化问题而提供便利工具。同时,我们也希望本次研究成果能够提供助力,以帮助我们日后对隐藏层中的泛化性能差异预测指标和边缘分布进行更加深入的研究。