在新数据中,深度学习系统的执行(泛化)能力如何?它的性能如何?要建立AI系统的可信度和可靠性,就必须对算法的泛化能力进行估计。我们可以信任人工智能吗?AI会不会像人类酗酒一样肆无忌惮?AI一旦启动,会毁灭世界吗?统计学习理论的重点是什么?人工智能系统必须安全可靠,一旦人工智能被激活,算法就能按预期执行。确保AI算法表现良好是提高其采用率和信任度的必经之路[5]。此外,决策者在欧盟委员会发布的《可信赖AI的伦理准则》(《ETHICS GUIDELINES FOR TRUSTWORTHY AI》)中明确规定了解算法的泛化能力。然而,模型泛化(泛化理论)的研究领域仍然投入不足。目前,继续工作的唯一标准方法是进行数据拆分、验证和测试集。然而,当算法的泛化能力无法量化时,对测试(保留)集进行估计是明智的;这个过程很棘手,有数据泄漏的风险,并且需要额外的独立性假设(独立性验证参数是从holdout集中单独选择的),但可能会与p-hacking[20]等实践相混淆。什么是泛化?数据是从潜在的未知分布D生成的,这是上述工作的关键假设。统计学习并不直接访问分布,而是假设给定一个训练样本S,其中S的每个元素都是由D生成的,并且独立同分布。学习算法从函数空间(假设类)H中选择一个函数(假设h),其中H={f(x,α)},其中α是参数向量。然后,假设h的泛化误差可以定义为从分布D中选择的样本x的预期误差与经验损失(给定样本S的损失)之间的差异[4,11]。我们的任务是设置泛化错误的上限,看看泛化错误会发生多严重。传统方法:模型能力在传统的泛化理论中,根据假设类H的复杂度(能力)建立泛化能力模型。简单来说,一个类的“能力”取决于可以被处理的数据集的数量。很适合那个班级。类的容量越大,类越灵活,但也越容易过拟合。[..]容量控制使用更灵活的模型来获得良好的拟合,而非常灵活但过度拟合的模型被丢弃[8]。如何定义假设类H的复杂性?传统的泛化理论概念包括VC维度、Rademacher复杂度和PAC-Bayes边界。VC维数和死神经元VC(Vapnik-Chervonenkis)维数是一种通过评价函数弯曲程度来衡量函数类复杂度的方法。H类的VC维数是H类最多可以打散的样本点数。如果一组样本点可以被函数打散,那么无论给一组样本点分配什么样的二进制标签,都可以完美地分离出这一类样本。[5]图1.参数数量急剧增加,但测试误差并没有急剧增加[1]Zhang等人的实验。[7]表明在真实数据中训练的深度网络的真正“参数复杂度”目前是未知的,而20多年来Bartlett之前的VC计算(#nodes*#layers)只是一个粗略的上限[2].死亡神经元的实验数据表明,当网络足够大并使用非线性激活函数ReLU时,许多权重为零,这可能并不令人惊讶[13]。那么如何估计模型的VC维呢?PAClearnabilityandRademachercomplexityPAC(probablyapproximatelycorrect)可学习性的定义很简单,即存在这样一种算法,对于每个分布D和?,δ>0,找到概率为1的“?-最优”假设-δ。对每个分布的算法的需求如此强烈,以至于Rademacher复杂度被定义为特定但未知的分布D.Rademacher复杂度的粗略推导基于[23]简而言之,Rademacher复杂度衡量假设类H适应随机的能力±1个二进制标签。与VC维度相反,Rademacher复杂度取决于分布,可用于任何类别的实值函数(不??仅是离散值函数)。就像Bartlett的VC维度计算一样,Rademacher复杂性缺乏有效的深度学习泛化界限。事实上,实验测试表明,许多神经网络完美地拟合了具有任意标签的训练集,因此我们也期望对应模型H的Rademacher复杂度是完美的。当然,这只是Rademacher复杂性的一个微不足道的上限,在现实世界的设置中不会产生有用的泛化界限[7]。也就是说,理论研究还没有取得有效成果,只能从“炼金术”或者一些最佳实践中寻找解决办法。实践表明,对于像Rademacher这样的复杂学习架构,真正降低其复杂性的唯一方法是使用训练分类器并通过holdout集检测缺失的泛化。事实上,世界上每个修行者都已经在不知不觉中这样做了。Zhang等人的研究[7]得出的结论目前在该领域是无与伦比的,得到了??认可。新方法如今的机器学习模型相对复杂,很难用经典的泛化理论来计算,更不用说指导学习系统的设计了[2]。泛化理论的经典方法只是描述性的,换句话说,如果泛化没有发生,可以通过利用复杂性度量(VC维度和Rademacher)来证明,但没有规范原则来指导实践[2]。此外,实验测试表明,具有近乎无限容量的假设类可能在实践中运作良好。这不仅适用于深度学习模型,也适用于其他机器学习方法,例如一些具有无限VC维度的核(例如:径向基函数)的SVM。更简单的线性模型甚至可以欺骗我们,过参数化线性模型的假设空间可以记住任何训练数据,并且随着参数的范数变得任意大,即使参数与真实参数任意远离[12],空间可以将任何训练和测试误差降低到接近于零(包括零),深度学习非常重视传统的泛化理论方法,即使过参数化很高,或者容量很大(随机标记的数据是零训练误差)[1],深度网络的一个主要困难仍然是缺乏过度拟合。目前,正在重新审视复杂性的总体思路。在深度学习方面,也出现了许多新颖的泛化方法。基于范数的容量度量计算容量度量的一种方法是通过间距归一化权重矩阵的范数度量来查看容量度量。数据样本的输出类距离是模型分配给正确类的值减去所有其他类的最大值的差值。图2注意路径范数,从网络输入到输出的所有可能路径的总和,通过每层中的单个神经元[14]基于范数的度量不完全依赖于模型中的参数数量,因此可能能够更好地表现其能力潜力[14]。基于范数的度量可以解释深度神经网络(DNN)的泛化,因为就复杂度而言,在随机标签上训练的模型总是高于在真实标签上训练的模型,因此后者的泛化能力更有利[14]。图3VGG网络(卷积神经网络架构)在CIFAR10数据上的不同复杂度度量在所有实验中,学习网络的训练误差为零。上图表明这些度量可以解释这种泛化,因为使用随机标签学习的模型的复杂性总是高于使用真实标签学习的模型的复杂性。此外,随着训练集规模的增加[22],两者复杂度之间的差距也越来越大。与此相关的另一个容量度量是网络的Lipschitz常数。Lipschitz常数是权重矩阵的谱范数的乘积。谱范数是矩阵的最大奇异值:矩阵可以拉伸向量[9]。Lipschitz常数与超额风险(测试误差减去训练误差)有关。然而,尽管风险过大,但该措施会随着时间的推移而增长[4];它的增长被Lipschitz常数的间距所抵消,重复的偏移使增长正常化(见图4)。图4AlexNet在cifar10上用SGD训练[4]压缩方法泛化的基本定理表明,如果训练集有m个样本,那么定义为训练数据和测试数据误差之差的泛化误差为sqrt(N'/m),其中N'是网络有效参数的数量[或复杂性度量][23,24]。取一个有N个可训练参数的矩阵C,尝试将其压缩成另一个参数更少(N")且训练误差与C大致相同的C'。根据广义基本定理,只要训练样本数大于N”,则C'(压缩网!)可以很好地泛化[23,24]。压缩方法非常有吸引力。一方面,可以确定DNN的泛化界限。另一方面,可以获得广泛的实践和操作优势:在生产中使用相对较小的(经过训练的)模型有很多好处,计算速度更快,功耗更低(在移动和嵌入式应用程序中很重要)),以及消耗更少的内存。最近的工作为“彩票假设”提供了经验证据,其中随机初始化的密集神经网络包含一个子网络(中奖彩票),该子网络被初始化用于隔离训练。经过训练的子网络可以匹配原始网络的测试精度,最多实现相同的迭代次数[16]。采用识别中奖彩票的培训策略转化为a)更快的学习b)更高的测试准确性和c)...;)除了“彩票方法”之外,还有许多其他有趣的压缩网络的方法。一个非常有吸引力的想法是受TensorNetworks的启发:“张量列车”的概念显示了DNN的全连接层的权重矩阵,显示了已经很有希望的实证结果[17]。尽管这种压缩通常需要重新训练压缩网络,但[25]提供了网络压缩方法的综述,这些方法未被基于[23,24]提供的基本定理和压缩的泛化理论的方法所考虑。.结论为了保证深度学习算法的可靠性,必须导出有效(紧)的泛化边界。对于这个问题,传统的方法(VC维,Rademacher)未能给出答案,新的方法还有待研究。
