作者 | 刘锦龙
编辑 | Camel
刘锦龙,2015年博士毕业于北京大学理论物理专业,现任快手科技 Y-Tech AI实验室深度学习研究员。负责人脸landmark、人脸生成等技术开发。
本文介绍我最近的一个工作,《Understanding Why Neural Networks Generalize Well Through GSNR ofParameters》,该文已入选 ICLR2020 spotlight representation.
1
深度学习的泛化能力问题
深度学习在诸多领域取得了巨大的成功,但是深度学习背后的基础理论确相对有些滞后。其中一个重要的问题就是深度学习模型的泛化问题。在这个工作中,我们提出了一个全新的角度来理解这个问题。
按照经典的机器学习泛化理论,模型参数量越大,模型的拟合能力越强,但是泛化也会更差。但是深度学习中并没有观察到这种trade-off的现象,通常深度学习的模型有着巨大的参数量, 通常比训练数据要多得多,按照经典泛化理论,这样的模型应该泛化会很差。实践中,在真实数据上训练的深度学习模型通常具有很好泛化性能,增大模型的参数量,并不会使得泛化变差。这个现象无法被经典的机器学习泛化理论解释。
2
GSNR越大,泛化性能越好
在本文中,我们认为深度学习的泛化能力和我们用来训练它的梯度下降这种优化方法是密切相关的。
首先,我们提出了一个刻画梯度下降法训练过程中泛化性能的一个量,称之为one-step generalization ratio(OSGR)
这个量反应了在一步迭代里面,测试集的loss下降\Delta L[D’]和训练集的loss下降\Delta L[D]的期望值的比值。我们假设训练集D和测试集D’大小都为n,服从同一个分布Z^n。通常统计上来说,测试集的loss下降速度小于训练集的loss下降速度,OSGR对应的应该小于1,最终整个训练结束时,测试集的loss的整体下降会小于训练集loss的整体下降,产生了generalization gap。如果整个训练过程中,OSGR始终很大(接近于1),那么最终的generalizationgap就会很小,相应的,模型的最终泛化性能也会很好。所以OSGR是一个很好的可以刻画梯度下降法过程中模型泛化性能的量。
其次,我们定义了一个我们称之为参数的梯度信噪比(Gradient signal to noise ratio(GSNR))的量。它反映的是在梯度下降的过程中梯度的均值与梯度的方差之间的比值,注意这个均值和方差指的是梯度在所有样本逐个分别计算每个参数的梯度,最后对每个参数分别计算sample-wize的均值和方差。例如对参数\theta_j,它的梯度信噪比定义为
上面的的\tilde g 和\rho分别代表在所有sample上计算的梯度均值和梯度方差。定性的来说,GSNR反应了loss函数对于不同样本的梯度的一致性。如果所有样本的梯度完全一致且不为0,这样的话梯度均值不为0而方差为0,相应的GSNR为无穷大。
对于一般的梯度下降法,我们都是直接对所有的sample求均值,并用这个均值作为参数迭代方向。本文首次提出,除了梯度的均值,所有样本的梯度的分布与网络最终的泛化性能有密切的联系。
我们做了两个假设:1.学习率足够小。2.训练集的平均梯度和测试集的平均梯度服从同一个分布(这个地方的分布指的是我们的训练集和测试集都服从同一个分布Z^n)。通过这两个假设,我们可以推导得到OSGR和GSNR之间存在一个关系
这个关系表明,训练过程中GSNR越大,则OSGR越接近于1,最终模型的泛化性能越好。或者说,梯度下降法训练过程中不同的训练样本的梯度越趋于一致,最终模型的泛化性能越好。具体的推导过程大家可以参考文章。
值得注意的是我们用到的假设2通常只在训练初期成立,在训练后期,因为过拟合的发生,训练集和测试集的平均梯度不再符合同一个分布。但是由此推导得到的19式或22式(见paper),我们可以在实际的训练过程中来验证他们。
上图是在mnist上的试验。可以看出,在训练初期,试验数据可以很好的和19式相吻合。但是,随着训练的进行,19式的左边和右边不再相等,这正是因为我们推导用到的假设2不再成立。尽管如此,19式的左边和右边依然有着很强的正相关,只要这个正相关成立,那么我们的结论(GSNR越大,OSGR越大,最终泛化越好)依然成立。在Cifar和一个toy model上的试验也有同样的结论。
3
深度学习模型训练过程中GSNR会在初期有一个上升过程以及背后的原因
到目前为止,我们通过分析和实验得到了一个结论:在梯度下降法训练过程中,GSNR越大,OSGR越大,最终泛化越好。但是这个和深度学习还没有关系,这个结论适用于任何梯度下降法训练的模型。
在paper的后面的章节中,我们发现了一个现象:对于浅层的模型,例如线性回归,GSNR在训练的过程中会一直下降。其原因是因为模型收敛的过程中,GSNR的分子,梯度的均值越来越小。但是对于深度学习,我们总能在训练初期观察到一个GSNR迅速上升的过程,在上升之后,深度学习模型的GSNR才会随着收敛缓慢下降。这个现象使得深度学习模型在梯度下降法的训练过程中,GSNR始终维持在一个较大的水平。根据我们前面的结论,GSNR越大,最终模型的泛化性能越好。这就解释了,为什么深度学习,尽管它的模型参数量很大,但是依然具有很好的泛化性能。
后面,我们进一步分析了,深度学习模型的GSNR会在训练初期快速上升的行为和它的特征学习能力是密切相关的。我们分别用实验和解析的方法来论证了这一点。
实验上,我们通过一个两层MLP模型,分别冻结和打开它的第一层参数,训练这个模型。显然,在冻结第一层参数的情况下,模型等价于线性回归。在这两种情况下,我们分别统计模型第二层的平均GSNR,发现在冻结的情况下,GSNR始终在下降,而在打开的情况下,GSNR会有一个明显的上升过程。
我们分析认为,在打开的情况下,模型第一层的参数能够学习到较好的特征,而模型第二层的和这些特征相乘的权重的梯度在不同的sample上会具有更好的一致性。即大部分sample都同时倾向于使这个权重增大或者减小,对应的此权重的GSNR也会较大。
解析的分析上,我们在全连接网络的情况下,通过推导阐述了一个有趣的机制,这个机制使得在模型训练的初期,模型大部分参数的平均梯度(GSNR的分子)会倾向于增大。具体大家可以参见文章。
4
总结
1. 我们在若干假设下证明了,对于梯度下降法,训练过程中GSNR越大,最终模型的泛化性能越好。
2. 对于深度学习模型,训练初期会存在一个GSNR快速上升的现象,这个现象使得深度学习具有很好的泛化性能。它和深度学习模型的特征学习能力密切相关,我们通过实验和解析分析论证了这一点。
文章的地址:https://openreview.net/forum?id=HyevIJStwH
今日份最佳雇主候选推荐
领取专属 10元无门槛券
私享最新 技术干货