ModelCube(modelcube.cn)是博雅数智自主研发的一站式人工智能科研平台。为全国高校和科研机构的大数据和人工智能科研团队提供一站式科研服务。基于MLOps的实践和企业核心技术,实现了科研场景中全类型数据管理与标注,实验环境快速获取与灵活定制,模型的全生命周期管理,科研成果的管理与发布,以及 AI驱动的论文检索和学习等功能。
1 泛化的定义
在机器学习中,泛化是指模型对于在训练时未曾见过的新数据样本的预测性能。泛化的好坏是衡量一个模型在实际应用中的关键因素,因为模型的最终目的是对未知数据进行准确预测或分类。泛化的核心原理在于模型从训练数据中学到了数据的一般性质和规律,而不是简单地记住了训练样本。这使得模型能够适应新的、未见过的数据,并对其进行有效的预测。泛化的实现需要避免过度拟合(Overfitting)训练数据,即模型过于复杂以至于在新数据上表现不佳。机器学习的目的是得到良好的泛化,但是无法控制泛化,只能基于训练数据调节模型。在训练模型时,常常使用训练集来拟合模型,验证集来调整模型的超参数,最终通过测试集来评估模型的泛化性能。一个成功的机器学习模型应该能够泛化到各种不同的情况,而不仅仅是在训练时见过的情境中表现良好。机器学习的目的当然是得到良好的泛化,但其无法控制泛化,只能基于训练数据调节模型。
对泛化能力可以从以下六个方面来理解:
泛化能力最直接的定义是训练数据和真实数据间的差异,训练模型的目地是要模型在完全陌生的数据上进行测试;
泛化能力还可以看成模型的稀疏性。正如奥卡姆剃刀原则指出的,面对不同的解释时,最简单的解释是最好的解释。在机器学习中,具有泛化能力的模型中应该有很多参数是接近0的。而在深度学习中,则是待优化的矩阵应该对稀疏性有偏好性。
泛化能力的第三种解释是生成模型中的高保真能力。具有泛化能力的模型应在其每个抽象层次具有重构特征的能力。
第四种解释是模型能够有效的忽视琐碎的特征,或者说在无关的变化下都能找到相同的特征。
泛化能力还可以看成模型的信息压缩能力。
信息瓶颈(information bottleneck)指在深度学习中的信息处理过程中,如何有效地从输入数据中提取特征,并将这些特征用于训练模型的过程中。如果信息瓶颈处理不当,可能会导致模型性能降低或过拟合。在实践中,信息瓶颈是通过对输入数据进行压缩,去除冗余和非关键信息,保留关键信息来实现的。这些信息可以用于训练深度学习模型,从而提高模型的性能。 理解泛化能力的最后一种角度是风险最小化。
从博弈论的角度来看,泛化能力强的模型能尽可能降低自己在真实环境中遇到意外的风险,因此会在内部产生对未知特征的预警机制,并提前做好应对预案。这是一种很抽象的也不那么精确的解释,但随着技术的进步,人们会找出在该解释下进行模型泛化能力的量化评价方法。
2 常见名词解释
2.1 数据集分类
根据训练过程,数据集可以分为:
训练集:实际训练算法的数据集,用来计算梯度或者Jacobian矩阵,并确定每次迭代中网络权值的更新
验证集:用于跟踪模型学习效果的数据集,是一个指示器,用来表明训练数据点之间所形成的网络函数发生了什么,并且验证集上的误差值在整个训练过程中都将被监测
测试集:用于产生最终结果的数据集
为了让测试集能有效反映模型的泛化能力,需要注意以下两点:
第一,测试集绝不能以任何形式用于训练模型,即使是用于从一组备选模型中挑选表现好的模型,测试集只能在所有的训练和模型选择完成后使用。
第二、测试集必须代表模型使用中涉及的所有情形,但当输入空间是高维或者形状复杂时,难以保证测试集的完整性与代表性。
2.2 泛化能力分类
根据泛化能力强弱,泛化能力可以分为:
欠拟合:模型不能在训练集上获得足够低的误差
拟合:测试误差与训练误差差距较小
过拟合:训练误差和测试误差之间的差距太大
在机器学习中,可以用偏差Bias、方差Variance衡量欠拟合、拟合和过拟合。
偏差Bias:
偏差Bias衡量模型拟合训练数据的能力,训练数据不一定是整个训练集,而是只用于训练它的那一部分数据,例如:mini-batch。偏差Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,偏差Bias 越小,拟合能力越强,但可能产生过拟合;反之,拟合能力越弱,但可能产生欠拟合。
方差Variance:
方差Variance描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,模型的稳定程度越差。方差Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。方差Variance越小,模型的泛化的能力越强;反之,模型的泛化的能力越弱。
过拟合overfitting:
过拟合在训练数据上表现良好,在未知数据上表现差,即对于训练数据拟合程度过当的情况。当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,即称发生过拟合。这意味着训练数据中的噪音或者随机波动也被当做概念被模型学习了。而问题就在于这些概念不适用于新的数据,从而导致模型泛化性能的变差。过拟合更有可能在无参数非线性模型中发生,因为学习目标函数的过程是易变的具有弹性的。例如,决策树就是一种无参数机器学习算法,非常有弹性并且容易受过拟合训练数据的影响。这种问题可以通过对学习后的树进行剪枝来解决,这种方法就是为了移除一些其学习到的细节。
欠拟合underfitting:
欠拟合模型在训练和预测时表现都不好,即模型的学习能力不够,不能很好的捕捉到数据特征。欠拟合通常不被讨论,因为给定一个评估模型表现的指标的情况下,欠拟合很容易被发现。矫正方法是继续学习并且试着更换算法。而只有模型在训练数据集和测试数据集得分都比较高的情况下,才认为模型对数据拟合的程度刚刚好,同时泛化的表现也会更出色
2.3 误差分类
误差可以分为:
经验误差、期望误差、结构误差
误差:模型的实际预测输出与样本的真实输出之间的差异。
经验误差(Empirical Error):模型在训练集上的误差。经验误差是局部的,是可求的。
期望误差(Expected Error):对训练集中的所有样本点损失函数的平均最小化。期望误差是全局的,是理想化的,不可求的。
结构误差:只考虑经验风险的话,会出现过拟合的现象。这时候就引出了结构误差,是对经验误差和期望误差的折中,在经验误差后面加一个正则化项(惩罚项)。
2.4 模型的容量(capacity)
模型的容量通常指模型中可学习参数的个数(或模型复杂度)。
训练刚开始的时候,模型还在学习过程中,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。这个时候,模型还没有学习到知识,处于欠拟合状态。
随着训练的进行,训练误差和测试误差都下降。随着模型的进一步训练,在训练集上表现的越来越好,终于在突破一个点之后,训练集的误差继续下降,而测试集的误差上升了,此时模型的方差较大,就进入了过拟合区间。它通常发生在模型过于复杂的情况下,如参数过多等,会使得模型的预测性能变弱,并且增加数据的波动性。虽然模型在训练时的效果可以表现的很完美,基本上记住了数据的全部特点,但这种模型在未知数据的表现能力会大打折扣,因为简单的模型泛化能力通常都是很弱的。
因此,所使用的模型应该具有足够多的参数,以防欠拟合,即模型应避免记忆资源不足。在容量过大与容量不足之间要找到一个折中,即最优容量。
3 泛化方法总结
3.1 Understanding deep learning requires rethinking generalization
虽然深度人工神经网络规模巨大,但在训练和测试性能之间取得了极小的差异。传统观点认为,小的泛化误差要么源于模型的特性,要么归因于训练过程中使用的正则化技术。然而,通过广泛的系统实验,揭示了这些传统方法无法解释为何大型神经网络在实际中能够良好地推广的现象。具体而言,我们的实验揭示了用随机梯度方法训练的先进卷积网络(用于图像分类)很容易适应于训练数据的随机标记。这种现象不受显式正则化的影响,即使我们用完全非结构化的随机噪声替代真实图像,同样会发生。我们的理论结构支持了这些实验结果,表明只要参数数量超过数据点数量,简单的深度神经网络已经具备完美的有限样本表达能力。
Understanding deep learning requires rethinking generalization[1]. Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals. ICLR 2017.
3.2 Sharp Minima Can Generalize For Deep Nets
尽管深度学习架构具有严重的过拟合倾向,但它们往往能够相对较好地推广到未见过的数据,这使得它们能够在实践中进行部署。然而,解释这种情况的原因仍然是研究的一个开放领域。目前有一个越来越受欢迎的假设,例如Hochreiter & Schmidhuber(1997); Keskar等人(2017),认为随机梯度下降方法发现的损失函数最小值的平坦性导致了良好的推广。本文认为,大多数平坦概念对于深度模型来说是有问题的,并且不能直接用来解释推广。具体来说,当关注带有整流器单元的深度网络时,我们可以利用这些架构固有的对称性所诱导的参数空间的特殊几何形状,构建对应于任意更尖锐最小值的等效模型。或者,根据平坦的定义,对于给定的最小值是一样的。此外,如果我们允许重新参数化一个函数,那么可以极大地改变其参数的几何形状,而不会影响其推广特性。
Sharp Minima Can Generalize For Deep Nets[2]. Laurent Dinh, Razvan Pascanu, Samy Bengio, Yoshua Bengio. ICML 2017.
3.3 An Empirical Model of Large-Batch Training
在越来越多的领域中,已经证明可以使用相对较大的批量来训练深度学习模型,而不会牺牲数据效率。然而,这种大规模数据并行性的限制似乎因域而异,从ImageNet中的数万批到玩Dota 2游戏的强化学习代理中的数百万批。据我们所知,对于为什么这些批量大小的限制不同,或者我们如何在新的领域中选择正确的批量大小,概念上的理解是有限的。在本文中,我们证明了一种简单易测量的统计数据,称为梯度噪声尺度,可以预测许多领域和应用程序的最大有用批量,包括许多有监督学习数据集(MNIST、SVHN、CIFAR10、ImageNet、Billion Word)、强化学习领域(Atari和Dota),甚至生成模型训练(SVHN上的自动编码器)。我们发现,在训练过程中,噪声规模随着损失的减少而增加,并且主要通过提高模型性能来决定模型大小。我们经验推导的理论还描述了计算效率和时间效率之间的权衡取舍。
An Empirical Model of Large-Batch Training[3]. Sam McCandlish, Jared Kaplan, Dario Amodei, OpenAI Dota Team. CoRR 2018.
3.4 Deep learning generalizes because the parameter-function map is biased towards simple functions
深度神经网络(DNNs)即使在强烈过参数化的情况下也表现出了惊人的泛化能力,而无需显式正则化,这出乎经典学习理论的预测,它反而会预测DNNs会严重过拟合。尽管有许多提议试图通过某种隐式正则化来解释这种成功,但对于DNNs为何不会强烈过拟合的根本原因仍然没有共识。本文提供了一个新的解释。通过应用最近从算法信息论(AIT)中推导出的一种非常通用的概率复杂度上界,我们认为许多DNN的参数函数图应该呈指数偏向于简单函数。为了支持这种强烈的简单性倾向,我们在模拟DNN中使用布尔函数的模型,以及在应用于CIFAR10和MNIST的更大全连接和卷积网络中提供了明确的证据。考虑到许多实际问题中的目标函数被期望具有高度结构化,这种内在的简单性偏差有助于解释为何深度网络在真实世界问题上能够很好地泛化。此外,这项工作促使了一种新的PAC-Bayes方法,其中先验是在DNN输入-输出函数空间上进行的,而不是在传统的参数空间上。通过假设训练算法在零误差区域内对参数进行近似一致的采样,我们可以利用PAC-Bayes定理来保证产生高似然训练集的目标函数具有很好的期望泛化性能。通过利用最近发现的DNN和高斯过程之间的关联来估计边际似然,我们提供了相对严格的泛化PAC-Bayes误差界,该误差界与真实数据集(如MNIST和CIFAR10)上的真实误差以及包括卷积和全连接网络在内的不同架构的真实误差都有很好的相关性。
Deep learning generalizes because the parameter-function map is biased towards simple functions[4]. Guillermo Valle-Perez, Chico Q. Camargo, Ard A. Louis. ICLR 2019.
Understanding deep learning requires rethinking generalization: http://modelcube.cn/paper/detail/2518602
[2]Sharp Minima Can Generalize For Deep Nets: http://modelcube.cn/paper/detail/2541864
[3]An Empirical Model of Large-Batch Training: http://modelcube.cn/paper/detail/91
[4]Deep learning generalizes because the parameter-function map is biased towards simple functions: http://modelcube.cn/paper/detail/2517945
阅读原文,了解更多信息:ModelCube一站式人工智能科研平台
http://modelcube.cn/paper/reading-list-detail/34