可以使用测试集来估计训练集和测试集之间的性能差距,但是要避免过度拟合测试数据几乎是不可能的。 使用隔离的测试集可能会解决此问题,但这需要不断更新数据集,这是一项非常昂贵的尝试。
在这里,我们推导出了一种算法,用于估计不需要任何测试集的训练和测试之间的性能差距 。 具体来说,我们推导出了许多持久性拓扑度量,这些度量可确定何时DNN可以学习推广到看不见的样本。这样,即使我们无法访问这些样本,我们也可以计算出DNN的测试误差。
a)我们不使用任何测试样本在任何计算机视觉问题上计算任何深度神经网络(DNN)的测试性能1(顶部); 标记和未标记的样本都是没有必要的。 这与传统计算机视觉方法形成鲜明对比,传统计算机视觉方法使用选定的测试数据集(底部)来计算模型性能。 (b)我们的算法(x轴)针对训练与测试性能(y轴)之间的性能差距∆ρ给出的持久代数拓扑概要( The persistent algebraic topological summary)( λ^∗^ , µ^∗^ ) 。
我们提出的假设是,泛化误差是网络内部工作的函数,此处由网络的功能拓扑表示并通过拓扑概要进行描述。 我们建议对这个函数进行回归,并仅在训练数据上评估测试性能。
图1(b)展示了一个例子。 在此图中,x轴显示了DNN的持久拓扑度量的线性组合。 此图中的y轴是在多个计算机视觉问题上使用这些DNN时的性能差距∆ρ。 从该图中可以看出,我们提出的拓扑概要与DNN的性能差距之间存在线性关系。 这意味着了解我们的拓扑概要的价值与了解DNN在隔离的数据集上的性能一样好,但没有上述任何缺点--无需依赖独立的团队来收集,管理和更新测试集。
具体细节
计算两两神经元之间的相关性
一个DNN可以得到一个相关性矩阵,从而可以构造PH
基于此持久性图,我们将腔的生命定义为该图中的平均时间(即持久性)。公式地,
同样,我们将其中年定义为持久性的平均密度。 公式地,
最后,我们定义了从这些拓扑概要到训练误差与测试误差之间的差值的线性函数映射,
根据以上结果,我们可以估算出测试误差,而无需任何测试数据,即