从梯度信噪比来理解深度学习泛化性能

作者: AITimer-鸽鸽

来源: AI TIME 论道

发布日期: 2020-06-02

本文探讨了深度学习泛化性能的问题,并通过梯度信噪比(GSNR)和一步泛化比例(OSGR)两个指标,揭示了深度学习模型在训练过程中泛化性能较好的原因。文章详细介绍了GSNR和OSGR的定义、相关性以及实验验证,并提出了深度学习模型在训练初期GSNR上升的现象是其泛化能力较好的关键。

深度学习在诸多应用领域取得了巨大的成功,但是其背后的基础理论确相对有些滞后。与传统浅层学习模型不同,深度学习所得的深度神经网络(DNNs)层次更为复杂,然而泛化性能却很好!在第二期 AI Time PhD ICLR 专题分享直播间,毕业于北京大学的刘锦龙博士,从全新的角度和大家探讨了这个问题!一起来看看这篇 ICLR 顶会焦点论文,是如何从梯度信噪比来理解深度学习的泛化性能为什么这么好吧!

深度学习的泛化能力问题对传统的机器学习浅层模型(比如线性回归、SVM)而言,参数量越大,越容易过拟合,泛化性能也就越差。相比之下,深度神经网络模型包含巨大的参数量,通常比训练样本数目多得多,按照经典泛化理论,应该会出现严重的过拟合问题。然而在实践中,在真实数据上训练的深度学习模型通常具有很好泛化性能。很多时候 DNN 模型越大,泛化效果可能会越好。传统的泛化理论无法解释其中机理!

AI Time 论道. AI Time 是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子。AI Time 旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,为大家打造一个知识分享的聚集地。

两个定义 a)One-Step Generalization Ratio 一步泛化比例 (OSGR):在梯度下降过程的每一步迭代中,测试集的 loss 下降和训练集的 loss 下降的期望值的比值。该指标用于刻画梯度下降法训练过程中的泛化性能。一般测试集的 loss 下降比训练集的 loss 下降更慢,意味着每一步迭代中,这个比值应该小于 1。OSGR 越接近 1,泛化性能越好,反之则越差。

b)Gradient Signal to Noise Ratio 参数的梯度信噪比 (GSNR):在所有样本逐个分别计算每个参数的梯度,对每个参数分别计算 sample-wize 的梯度均值和方差,得到梯度的均值的平方与梯度的方差之间的比值。该指标刻画了在梯度下降过程中不同 sample 的梯度的一致性。如果所有 sample 梯度一样,则方差为 0,梯度信噪比为无穷大。

因此 GSNR 值越大,各个 sample 的梯度方向的一致性越高。

结论:OSGR 与 GSNR 有关刘博士提出:梯度信噪比越大,一步泛化比例越接近于 1,即 Larger GSNR leads to better generalization。该结论基于两个假设:(1)Learning rate 足够小(接近于零)。(2)训练集的平均梯度和测试集的平均梯度服从同一分布。

(训练后期此条假设不成立,因为模型参数在训练后期会很好地拟合训练集,使得训练集的梯度和测试集的梯度不再服从同一分布。)

上式中,左边代表 OSGR,与右边的 GSNR 有关。

也就是说,如果训练过程中各个 sample 之间梯度方向趋于一致,则 test loss 和 training loss 的 gap 比较小,泛化性能比较好,测试集和训练集的下降速度就比较接近;如果不同 sample 的梯度方向相差很大,分布不一致,那么训练过程中 training loss 和 test loss 下降速度的比值会很小(接近与 0),泛化性能也就很差。

具体的结论推导过程可以参考文章。

由于等式左边可以通过定义计算,右边也可以统计均值、方差从而计算出来。因此我们可以通过实验验证该等式是否成立!上图是在 MNIST 上的试验。训练初期,比如 epoch=20 的时候,蓝线和红线重合,表示等式左边等于右边,但是训练后期会有很大偏差。

虽然后期左边不等于右边,但是左、右依然有很强的正相关性,相关系数在 0.9 以上,因此 Larger GSNR leads to better generalization 这个结论依然成立。

解释 DNN 的泛化性能:目前为止,刘博士的分析和实验得到了一个结论:在梯度下降法训练过程中,GSNR 越大,OSGR 越大,最终泛化越好。

但这个结论适用于任何梯度下降法训练的模型,如何用它解释 DNN 的泛化性能呢?如果我们将样本标签设置成随机(randomized),仍然可以在训练集上把 loss 下降到零,但由于这样的训练集已经不包含任何知识(标签全是错的),无法学到什么,所以没有任何泛化性能。实验结果中,黄线(random label)的 GSNR 始终很低。这符合我们的结论:GSNR 可以揭示模型的泛化能力。

图中蓝线显示,深度学习 GSNR 在训练初期会有明显上升过程。按理说,随着训练进行,梯度均值会越来越小,在收敛时接近于零,同时方差会越来越大,因此梯度信噪比 GSNR 应该不断下降才对。对于浅层的模型,确实如此。但 DNN 为什么有上升过程?答案:正是这个 GSNR 初期上升的过程使得 GSNR 在 DNN 的训练中始终保持在一个比较高的值,这就是深度学习泛化能力较好的原因!

刘博士展示了一个简单的对比实验,用一个两层 MLP 模型,分别冻结和打开它的第一层参数,训练这个模型。显然,在冻结第一层参数的情况下,模型等价于线性回归。在这两种情况下,分别统计模型第二层的平均 GSNR,发现在冻结的情况下,GSNR 始终在下降,而在打开的情况下,GSNR 会有一个明显的上升过程。这就清楚地表明了深度学习和浅层(linear regression)模型 GSNR 不同的表现。

分析认为,在打开的情况下,模型第一层的参数能够学习到较好的特征,而模型第二层的和这些特征相乘的权重的梯度在不同的 sample 上会具有更好的一致性。即大部分 sample 都同时倾向于使这个权重增大或者减小,对应的此权重的 GSNR 也会较大。

解析的分析上,刘博士在全连接网络的情况下,通过推导阐述了一个有趣的机制,这个机制使得在模型训练的初期,模型大部分参数的平均梯度(GSNR 的分子)会倾向于增大。

总结:1. 刘博士的团队在若干假设下证明了,对于梯度下降法,训练过程中 GSNR 越大,最终模型的泛化性能越好。2. 对于深度学习模型,训练初期会存在一个 GSNR 快速上升的现象,这个现象使得深度学习具有很好的泛化性能。它和深度学习模型的特征学习能力密切相关,可通过实验和解析分析论证这一点。

答疑互动:最后分享直播结束后,微信群里大家与嘉宾的部分互动。Random label 如何实现?

怎么去做 loss 呢?例如在 cifar10 上如何做 random label?每个样本随机分配一个标签,这样以后数据中就不包含知识。具体可以去看 2017 年 ICLR best paper: Rethinking Generalization.是否考虑过不同深度学习模型,比如 LSTM 或 CNN 等?原文用的数据集都是图像分类吗?

我们实验用的就是 CNN,我们的理论推导其实是一般性的推导,不依赖于模型结构。LSTM 的实验确实没做。原文用的数据集都是图像分类,详情参见文章。文章结论会受任务类型影响吗?不会,我们也用 toy 回归模型验证了。因为是先理论推导,再实验验证,二者在初期能完美符合,所以我们有很强的信心不会因为任务的改变而改变。

UUID: e713fe2d-496e-4214-abbf-c90af7ad03a8

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/学术头条公众号-pdf2txt/学术头条2020年-上/2020-06-02_ICLR2020Spotlight!从梯度信噪比来理解深度学习泛化性能AITIMEPhD.txt

是否为广告: 否

处理费用: 0.0067 元