Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

小舟、陈萍编辑

模型泛化不必随机训练,全批量GD媲美SGD,网友:计算成本负担不起

泛化一定需要随机训练吗?

近来机器学习模型呈现出一种向大模型发展的趋势,模型参数越来越多,但依然具有很好的泛化性能。一些研究者认为泛化性能得益于随机梯度下降算法(SGD)所带来的随机噪声。但最近一篇 ICLR 2022 的投稿《Stochastic Training is Not Necessary for Generalization》通过大量实验证实全批量的梯度下降算法(GD)可以达到与 SGD 不相上下的测试准确率,且随机噪声所带来的隐式正则化效应可以由显式的正则化替代。



论文地址:https://arxiv.org/pdf/2109.14119.pdf

该论文随即在社区内引发了一些讨论,有人质疑论文的含金量,觉得个例不具代表性:


也有人表示这篇论文就像一篇调查报告,提出的观点和证明过程并无新意:

图源:知乎用户 @Summer Clover

虽然内容有些争议,但从标题上看,这篇论文应该包含大量论证,下面我们就来看下论文的具体内容。

随机训练对泛化并不是必需的

随机梯度下降算法 (SGD) 是深度神经网络优化的支柱,至少可以追溯 1998 年 LeCun 等人的研究。随机梯度下降算法成功的一个核心原因是它对大型数据集的高效——损失函数梯度的嘈杂估计通常足以改进神经网络参数,并且在整个训练集上可以比全梯度更快地进行计算。

人们普遍认为,随机梯度下降 (SGD) 的隐式正则化神经网络泛化性能的基础。然而该研究证明非随机全批量训练可以在 CIFAR-10 上实现与 SGD 相当的强大性能。基于此,该研究使用调整后的超参数,并表明 SGD 的隐式正则化可以完全被显式正则化取代。研究者认为这说明:严重依赖随机采样来解释泛化的理论是不完整的,因为在没有随机采样的情况下仍然可以得到很好的泛化性能。并进一步说明:深度学习可以在没有随机性的情况下取得成功。此外,研究者还表示,全批量训练存在感知难度主要是因为:优化特性和机器学习社区为小批量训练调整优化器和超参数所花费的时间和精力不成比例。

具有随机数据增强的全批量 GD

SGD 相对于 GD 有两个主要优势:首先,SGD 的优化过程在稳定性和超出临界批量大小的收敛速度方面表现出质的飞跃。其次,有研究表明,小批量上由步长较大的 SGD 引起的隐式偏差可以用等式(5)和等式(7)中导出的显式正则化代替。




该研究对假设进行了实证研究,试图建立训练,使得在没有来自小批量的梯度噪声的情况下也能实现强泛化,核心目标是实现全批量性能。因此该研究在 CIFAR-10 上训练了一个用于图像分类的 ResNet 模型进行实验。

对于基线 SGD ,该研究使用随机梯度下降进行训练、批大小为 128 、 Nesterov 动量为 0.9、权重衰减为 0.0005。

小批量 SGD 的验证准确率达到了 95.70%(±0.05)。小批量 SGD 提供了一个强大的基线,在很大程度上是独立于小批量处理的。如下表 1 所示,在有替换采样时也达到相同的准确率 95.70%。在这两种情况下,随机小批量处理引起的梯度噪声都会导致很强的泛化。

然后,该研究将同样的设置用于全批量梯度下降。用全批量替换小批量,并累积所有小批量梯度。为了排除批归一化带来的影响,该研究仍然在批大小为 128 的情况下计算批归一化,在整个训练过程中将数据点分配给保持固定的一些块,使得批归一化不会引入随机性。与其他大批量训练的研究一致,在这些设置下应用全批量梯度下降的验证准确率仅为 75.42%(±00.13),SGD 和 GD 之间的准确率差距约为 20%。 

该研究注意到,通过注入简单形式的梯度噪声不容易弥补这一差距,如下表 1 所示。接下来的实验该研究努力缩小了全批量和小批量训练之间的差距。


由于全批量训练不稳定,因此该研究在超过 400 step(每一个 step 是一个 epoch)的情况下将学习率从 0.0 提升到 0.4 以保持稳定,然后在 3000 step 的情况下通过余弦退火衰减到 0.1。

实验表明在对训练设置进行了一些修改后,全批量梯度下降性能提高到了 87.36%(±1.23),比基线提高了 12%,但仍与 SGD 的性能相去甚远。表 2 中总结了验证分数:


该研究用显式正则化来弥补这种差距,并再次增加了初始学习率。在第 400 次迭代时将学习率增加到 0.8,然后在 3000 step 内衰减到 0.2。在没有正则化因子的情况下,使用该学习率和 clipping 操作进行训练,准确率为 93.75%(±0.13)。当加入正则化因子时,增大学习率的方法显著提高了性能,最终与 SGD 性能相当。

总体而言,该研究发现经过所有修改后,全批量(带有随机数据增强)和 SGD 的性能相当,验证准确率显著超过 95%。

 
该研究还评估了一系列具有完全相同超参数的视觉模型。ResNet-50、ResNet-152 和 DenseNet-121 的结果见表 3,该研究发现所提方法也同样适用于这些模型。


非随机设置下的全批量梯度下降

如果全批量实验能够捕捉小批量 SGD 的影响,那么随机数据增强又会给梯度噪声带来什么影响?研究者又进行了以下实验。

无数据增强:如果不使用任何数据增强方法,并且重复之前的实验,那么经过 clipping 和正则化的 GD 验证准确率为 89.17%,显著优于默认超参数的 SGD(84.32%(±1.12)),并且与新调整超参数的 SGD(90.07%(±0.48)) 性能相当,如下表 4 所示。


为了相同的设置下分析 GD 和 SGD,探究数据增强(不含随机性)的影响,该研究使用固定增强的 CIFAR-10 数据集替换随机数据增强,即在训练前为每个数据点采样 N 个随机数据进行数据增强。这些样本在训练期间保持固定,也不会被重新采样,从而产生放大 N 倍的 CIFAR-10 数据集。 

最后,该研究得出结论:在没有小批量、shuffling 以及数据增强产生的梯度噪声后,模型也完全可以在没有随机性的情况下达到 95% 以上的验证准确率。这表明,通过数据增强引入的噪声可能不会影响泛化,并且也不是泛化所必需的。

引发讨论

这篇论文在社区内引发了大家的讨论,有人从实验的角度分析了一下论文的价值。

该论文把 ResNet18 用 SGD 在 CIFAR-10 训练 300 个 epoch 作为基线,并在结果部分展示了每一个 trick 分别提升了多少准确率


但是这几个 trick 太常见了,反而让人质疑真的如此有效吗?有网友指出「train longer」这个 trick 应该只在 CIFAR-10 上这么有效,而 gradient clipping 在其他数据集上甚至可能无效。

图源:知乎用户 @Summer Clover

看来论文中的改进可能是个例,难以代表一般情况。不过,他也在评论中指出 SGD 近似正则化是个很有效的 trick,具备很好的理论基础,但是计算成本可能会翻倍:

图源:知乎用户 @Summer Clover

还有网友指出,这篇论文的研究结果实际用途很有限,因为全批量设置的成本太高了,不是普通开发者负担得起的。相比之下,SGD 训练鲁棒性强,泛化性更好,也更省一次迭代的计算资源。

看来该论文进行了一些理论和实验验证,但正如网友提议的:能否在其他数据集上进行更多的实验来验证其结论?


对此,你怎么看?

参考链接:
https://www.zhihu.com/question/494388033?utm_source=wechat_session&utm_medium=social&utm_oi=56560353017856&utm_content=group3_supplementQuestions&utm_campaign=shareopn
https://www.reddit.com/r/MachineLearning/comments/pziubx/r_stochastic_training_is_not_necessary_for/
理论随机梯度下降
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

动量技术

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

知乎机构

知乎,中文互联网综合性内容平台,自 2010 年成立以来,知乎凭借认真、专业、友善的社区氛围,独特的产品机制,以及结构化、易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类,在诸多领域具有关键影响力的内容平台。知乎将AI广泛应用与社区,构建了人、内容之间的多元连接,提升了社区的运转效率和用户体验。知乎通过内容生产、分发,社区治理等领域的AI应用,也创造了独有的技术优势和社区AI创新样本。

zhihu.com
推荐文章
暂无评论
暂无评论~