AI TIME欢迎每一位AI爱好者的加入!
深度学习在诸多应用领域取得了巨大的成功,但是其背后的基础理论确相对有些滞后。与传统浅层学习模型不同,深度学习所得到的深度神经网络(DNNs)层次更为复杂,然而泛化性能却很好!在第二期AI Time PhD ICLR专题分享直播间,毕业于北京大学的刘锦龙博士,从全新的角度和大家探讨了这个问题!一起来看看这篇ICLR顶会焦点论文,是如何从梯度信噪比来理解深度学习的泛化性能为什么这么好吧!
一、深度学习的泛化能力问题
对传统的机器学习浅层模型(比如线性回归、SVM)而言,参数量越大,越容易过拟合,泛化性能也就越差。
相比之下,深度神经网络模型包含巨大的参数量, 通常比训练样本数目多得多,按照经典泛化理论,应该会出现严重的过拟合问题。
然而在实践中,在真实数据上训练的深度学习模型通常具有很好泛化性能。很多时候DNN模型越大,泛化效果可能会越好。传统的泛化理论无法解释其中机理!
二、两个定义
a)
One-Step Generalization Ratio
一步泛化比例 (OSGR):在梯度下降过程的每一步迭代中,测试集的loss下降和训练集的loss下降的期望值的比值。该指标用于刻画梯度下降法训练过程中的泛化性能。
一般测试集的loss下降比训练集的loss下降更慢,意味着每一步迭代中,这个比值应该小于1。OSGR越接近1,泛化性能越好,反之则越差。
上图分别为OSGR值为0、0~1以及1的情况。
OSGR=0时,training loss在下降,但test loss无变化;OSGR=1时,test loss和training loss的下降速度一致,说明没有generation gap,泛化性能为最为理想;然而OSGR大部分处于0~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回归模型验证了。因为是先理论推导,再实验验证,二者在初期能完美符合,所以我们有很强的信心不会因为任务的改变而改变。
整理:鸽鸽
审稿:刘锦龙
参考文章:
https://zhuanlan.zhihu.com/p/99516219
https://openreview.net/forum?id=HyevIJStwH
AI Time欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你,请将简历等信息发至[email protected]!
微信联系:AITIME_HY
AI Time是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。
更多资讯请扫码关注
(点击“阅读原文”下载本次报告ppt)
(直播回放:https://www.bilibili.com/video/BV1Lz4y197uH)