作者|温暖的巨人
编辑|骆驼
这位2015年毕业于北京大学理论物理博士的暖暖巨人,目前是亚图快科技Y-Tech AI实验室的深度学习研究员。负责人脸地标、人脸生成等技术开发。
这篇文章介绍了我最近的作品,《Understanding Why Neural Networks Generalize Well Through GSNR ofParameters》,它被选为ICLR 2020年聚光灯演讲。
00-1010深度学习的概括
深度学习在很多领域都取得了巨大的成功,但是深度学习背后的基础理论却比较滞后。其中一个重要的问题是深度学习模型的泛化。在这项工作中,我们提出了一个新的角度来理解这个问题。
根据经典的机器学习泛化理论,模型参数越大,模型的拟合能力越强,但泛化能力越差。然而,在深度学习中没有观察到这种权衡现象。通常,深度学习的模型具有大量的参数,这些参数通常比训练数据多得多。根据经典概化理论,这样的模型应该是广义不良的。在实践中,基于真实数据训练的深度学习模型通常具有良好的泛化性能。增加模型的参数不会使泛化能力变差。这种现象不能用机器学习的经典泛化理论来解释。
2
GSNR越大,泛化性能越好。
本文认为深度学习的泛化能力与我们用来训练它的梯度下降优化方法密切相关。
首先,我们提出了一个描述梯度下降法训练的泛化性能的量,称为一步泛化比(OSGR)。
这个量反映了一步迭代中测试集的损失下降\L[D ‘]的期望值与训练集的损失下降\L[D]的比值。让我们假设训练集D和测试集D’都是N的大小,并且服从相同的Z ^ N分布,一般来说,测试集的损失下降率小于训练集的损失下降率,对应的OSGR应小于1。在整个训练结束时,测试集的损失总体下降会小于训练集的损失,从而产生泛化差距。如果在整个训练过程中OSGR始终很大(接近1),那么最终的泛化差距将非常小,相应地,模型的最终泛化性能将非常好。因此,OSGR是描述梯度下降法过程中模型泛化性能的一个很好的量。
其次,我们定义了一个称为梯度信噪比的参数。它反映了梯度下降过程中梯度均值与梯度方差的比值。注意,这个平均值和方差意味着梯度在所有样本中逐个计算每个参数的梯度,最后计算每个参数的样本wize的平均值和方差。例如,对于参数_ j,其梯度信噪比定义为
\上面的波浪号g和\rho分别代表对所有样本计算的梯度平均值和梯度方差。定性方面,GSNR反映了不同样本损失函数梯度的一致性。如果所有样本的梯度完全一致且不为零,那么平均梯度不为零,方差为零,对应的GSNR为无穷大。
对于一般的梯度下降法,我们直接对所有样本进行平均,并将这个平均值作为参数迭代方向。本文首次提出,除了梯度的均值之外,所有样本的梯度分布都与网络的最终泛化性能密切相关。
我们做了两个假设:1。学习率足够小。2.训练集的平均梯度和测试集的平均梯度服从相同的分布(这里的分布意味着我们的训练集和测试集都服从相同的分布z ^ n)。通过这两个假设,我们可以推断出OSGR和GSNR之间存在关系。
这种关系表明,GSNR越大,OSGR越接近1,最终模型的泛化性能越好。换句话说,梯度下降训练过程中不同训练样本的梯度越趋于一致,最终模型的泛化性能越好。具体推导过程可以参考文章。
值得注意的是,我们使用的假设2通常只在训练初期成立,但在训练后期,由于过拟合的发生,训练集和测试集的平均梯度不再符合同一分布。但由此导出的公式19或公式22(见论文)可以在实际训练过程中得到验证。
上图是在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