矩阵计算的理论与方法_预测神经网络预测准确性的普遍理论

Heavy-Tailed Universality Predicts Trends in Test Accuracies for Very Large Pre-Trained Deep Neural Networks 是今年1月24日在Arxiv上post的一篇论文。作者还有针对这个话题的一系列偏理论的文章,本篇是其中最实用的一篇

85f9f2c1b5408d401ad0d42d1ce070ec.png

这篇文章对神经网络的泛化能力建立了一个大一统性质的理论,不仅能够解释为何神经网络中的各种正则化手段有效,还能够用一个指标预测一个训练好的网络的泛化能力,这篇文章中有很多在我看来高深的数学,其中很多我觉得较难理解,因此这里只概述我理解的部分,写下这篇论文笔记,更多的是像行家请教。

初学深度学习的时候,我被各种各样的正则化方法搞的很迷茫。传统的机器学习中就是增加L1或者L2正则项,到了深度学习,减少batch size,dropout,early stopping等很多看似完全不同的方法,都被称为正则化,似乎所有能够增加模型泛华能力的都是正则化方法。 有了这么多的正则化方法,对于有监督学习,使用同一数据训练的两个DNN,训练时用到了不同的超参数,不同的优化方法与正则方法,我们除了让模型在真实数据上跑一下,没有方法提前估计模型的泛化能力。如果能够通过对模型本身的分析,就能评估出模型相对的泛化能力,那在对模型进行fine-tune(微调)的时候,就能够起到指导。

验证该理论的是数据来自真实世界中的神经网络,通过比较针对ImageNet数据集上的50个预训练过的DNN,在不改变模型的损失函数与网络结构,不需要重新训练模型,甚至不需要导入测试数据时,通过计算网络中每一层权重矩阵的Frobenius norm的指数平均值,发现该平均值和模型的预测准确性具有相关性,从而能通过上述指数,预测模型的泛化能力。用于验证的模型涵盖了15个不同的网络结构,例如VGG16,ResNet等,这说明了该方法对各类模型都适用。

41e9c2799e196df768906406910f7410.png

这里展示了预训练的不同VGG和带批量正则化的VGG网络的表现,这里的横轴是该网络的预测准确性,纵轴是作者文中定义的评估模型范化能力的指标,左边的图是之前的方法,右边的是本文新提出的指标。可以看出这里拟合的很好,而且是接近线性的拟合。

71fd072ff73f4817af8ce9ec91e5b591.png

上面反映的是不同的ResNet上的情况,除了部分离群点,文中提出指标也反映了模型相对的好坏。更多网络结构下的对比情况如下所示;

9afb7d5a01b8da1e381ab56a45692f7a.png

该作者还提供了一个pytorch及Keras下的package,名为WeightWatcher,可以用一行代码,将训练好的模型当作参数传入,就可以计算出上述指标。笔者试用了,挺方便的。

https://github.com/CalculatedContent/WeightWatcher

09d6bcf240a28944fdadf9dfc98cddd6.png

接下来要解释这背后的数学原理了,首先对每层网络的权重矩阵W,构建相关矩阵X

0f629a406024673ab665de0c9af1e7e1.png

对X计算矩阵的秩,将该矩阵的秩写成一系列秩的加权,将其称为Empirical Spectral Density (ESD)

5b72ec8b9c4b348ab6b6d32ef4bc127f.png

之后作者指出可以用一个由随机数生成的矩阵的秩进行幂律运算,来拟合这个分布,这里引入了random matrix theory62aa7b4aae64ad5b95947587f8871bd3.png

而这里的alpha则代表了幂律分布的尾巴有多长,对于ImageNet中的7500个权重矩阵,下图代表了不同矩阵最佳拟合的alpha落在不同区间的次数,图中70-80%的案例,图中的alpha都落在了2-4之间,也有少数极大的情况。

a59b35ef77d025d789a59d56f2f4c2b2.png

而上文中出现的用来预测模型预测精度的纵轴eb64de3eed156ce6dec542143642a239.png,就是所有层的加群平均, 不同深度的层数对应的权重由式中的beta控制,87200c6feb66a69945bceb0504f47f74.png

之后文章指出,正则化不管怎么去做,都是要避免权重矩阵的秩被过度长尾(heavy tailed)的随机矩阵拟合,也就是说上文中每一层都需要alpha值越小,网络在该层过拟合的风险越低。权重矩阵的秩呈现过度长尾的幂律分布,可以直观的想象成对于某些像素点赋予高的不合比例的权重,而这意味着该层网络的观察野受到了局限,对高权重位点的变化及其敏感,而这会使得模型更容易过拟合。因此将网络中每层的权重矩阵的alpha做权重衰减的加和,就可以用来评估模型是否过拟合。

总结一下,本文提出的衡量模型相对泛化能力的普适性方法,利用了已有的成熟模型,发现规律,并将其用在指导新模型的训练,该方法可以用在迁移学习和模型微调中。这篇文章的数学我对其只看懂了皮毛,有一些问题,文中也没有给出解答,第一是对于非CNN系列的网络结构,例如capsule network,图卷积网络GCN等,该文的方法是否适用,第二是对于autoencoder系列的模型,如果以重构误差作为横轴,能否也通过文中的指标评价模型的泛化能力,第三点是该方法用在图像切割上,是不是也会有较好的效果,第四个问题是该方法在NLP任务中是否适用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值