社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【国君金工-学界纵横系列】重新思考深度学习的泛化能力

Allin君行 • 2 年前 • 100 次点击  
点击上方Allin君行 ,关注我们

陈奥林 从业证书编号  S0880516100001

刘昺轶 从业证书编号  S0880520050001

导读

深度学习模型下,过拟合并不是风险。正则化对泛化能力提升有限,也并非关键因素, 这与传统泛化理论的结论有所冲突。

摘要

何为泛化

从古至今,无论是科学家还是执政者,都试图从历史经验中总结规律并 希望运用至未来。在监督学习领域,这一概念通过传统统计基础被形式化。何为泛化能力?即我们通过样本数据抽取出的模型或规律运用在测试数据上,可以得到 相近的结论。


为何泛化

这一过程在测试深度学习模型能力中时常被运用,然而为何深度学习模 型能保证一定的泛化能力,却始终未得到确切的理论支持。传统机器学习理论认为泛化能力的核心在于模型复杂度,倾向于认为复 杂的模型会降低整体泛化能力。在量化及投资领域也是如此,如果样本内表现或结论趋于一致,研究员 或投资者倾向于使用更为简单的模型或逻辑,即遵循“奥卡姆剃刀”原 则。然而深度学习的出现却颠覆了这一经验常识,神经网络的复杂度已 远超数据本身,却依旧能获取更好的泛化能力。 


一些实验 

本文的工作偏向于实证,并未提出任何新颖的理论,而是通过一些数据 实验试图寻找影响神经网络泛化能力的因素。



01

核心结论


  1. 目前深度神经网络的有效容量足够记住所有训练数据;

  2. 即使是完全随机化的标签,神经网路依旧能完成优化收敛,只增加 了常数级别的训练时间。

  3. 通过单独随机化标签,我们可以在不改变模型、模型容量、超参数或 优化器的情况下强制模型的泛化误差大幅上升。

  4. 显式正则化可以一定程度上提高泛化性能,但对于泛化误差的控制 既不是必要的,也不是足够的。

  5. 即使线性大小,深度为2的神经网络已经可以表示所有的训练数据。

  6. 深度神经网络确实记住了大量的数据,它的泛化能力归因于:记忆+规律。即深度神经网络在暴力记忆的过程中或许优先学习到了规律, 这种规律的提取保证了一定的泛化能力。

02


实验实证


实验数据及模型

实验在两个图像分类数据集上运行,CIFAR10 数据集和ImageNet ILSVRC 2012数据集。我们在ImageNet上测试Inception V3架构,在CIFAR10上测试Inception、Alexnet和MLP的较小版本。


随机数据操作

True label:无污染,原始数据 

标签污染: 

Partially corrupted labels:对每个样本的真实标签以一定概率替换为一个随机类别标签。

Random labels:所有样本的真实标签都替换为随机的类别标签。


样本污染: 

Shuffled pixels:随机选择一种像素顺序,以这个顺序重排所有训练和测试样本的像素。Random pixels:对每个样本各随机应用一种像素顺序。 

Gaussian:对每一个样本,用和原样本一样均值和方差的高斯分布随机生成随机的图片。

通过随机变换样本及标签,作者得到已下结论。 

从图 a 中我们可以发现,不管对数据进行如何操作(污染标签或是样本, 或是生成完全随机的样本),神经网络最后均能将训练误差降到 0,区别只是需要的轮数不同。通过图我们可以发现,无论什么网络模型,随着污染的加重,训练所需时间都随之增加。 

通过图c可以发现,无论什么网络模型,随着污染的加重,测试集的误差,即泛化误差都在增加。

综上所述,我们可以得到深度神经网络强大的拟合能力的结论,即使是完全随机的标签和数据,均能做到完美拟合。但是与此同时,当标签没有受到污染时,神经网络在完美拟合样本内集合时,仍然保持强大的泛化能力,这一点无法被传统的泛化能力理论所解释。传统泛化能力倾向于认为越复杂的模型越容易过拟合,深度神经网络可以做到完美拟合, 按照传统理论应该在样本外表现很差,然而并不是。


正则化

一般我们认为在模型参数比较多的时候,加入正则是一种比较好的防止 过拟合的方法。因为当模型比较复杂的时候,假设空间会变得巨大,而 正则帮助我们对假设空间进行了“剪枝”。作者通过实验及相关数学推导得出其并不是控制泛化误差的关键因素的结论。


显式正则化


Data augmentation

通过特定领域的转换增强训练集。对于图像数据,常用的变换包括随机裁剪、亮度、饱和度、色调和对比度的随机扰动。 


Weight decay 

相当于权重上的l2正则化;也相当于对欧几里得球的权重进行硬约束, 其半径由权重衰减量决定。 


Dropout 

以给定的丢弃概率随机屏蔽层输出的每个元素。在我们的实验中,只有ImageNet的Inception V3使用了dropout。


从下表中我们可以得到已下结论。 

  1. 显示正则化技术中,数据增广对于泛化能力的提升最为有效。

  2. 即使不加任何正则化技术,神经网络在测试集的表现下降很少。

  3. 对于泛化误差提升最为明显的是神经网络的自身结构。


隐式正则化


Early stop

早期停止被证明可以隐式地对一些凸学习问题进行正则化。


Batch normalization

批量归一化是一种对每个小批量中的层响应进行归一化的算子。它已被许多现代神经网络架构广泛采用,例如 Inception 和 Residual Networks。尽管没有明确设计用于正则化,但通常发现批量标准化可以提高泛化性 能。


如下图所示,早停对于泛化能力得影响视数据集而定,某些数据集上, 早停不能提供任何得泛化能力提升。批量标准化可以帮助神经网络训练收敛得更为平滑,但是对于最终泛化能力的提升十分有限。



实验结果较多,但文章最后的结论前面已经提及,虽然这些正则方法确 实能提高网络的泛化能力,但是正则方法并不是网络有较好泛化能力的 关键,因为网络去掉这些正则方法,也能取得一个还不错的结果;同时,网络依靠正则化提高的泛化能力,可能还不如换另一种网络结构提高得多。


优化方法

尽管出于许多原因,深度神经网络仍然很神秘,但我们在本节中注意到, 理解线性模型的泛化来源也不一定容易。事实上,利用线性模型的简单案例来看看是否有平行的见解可以帮助我们更好地理解神经网络是有 用的。假设我们考虑一个n个样本,考虑经验风险最小化问题。 

其中𝑥𝑖为 d 维的特征向量,当时𝑑 > 𝑛我们可以拟合任何标签,那么这样 一个模型是否能在没有正则方法的情况下有泛化能力呢?如果令𝑋是一个𝑛 ∗ 𝑑的样本矩阵,秩为𝑛,无论什么样的𝑦,等式  有无数种解。我们可以解这个线性系统得到上面经验风险最小问题的一 个全局最小。但是是否所有的解都有一样的泛化能力?是否有一个方法 能决定某个全局最小解比另一个泛化能力好?

对于线性问题来说,我们可以得到一系列解析解,然而神经网络即使针 对线性模型仍然采用梯度下降的方法,常用的优化器如 SGD,Adam。SGD 对参数的更新可以表示为

其中η是步长,𝑒是预测误差。所以如果偏置项为0的话,最后的解肯定可以以这个形式表示:

如果我们再完全拟合了标签𝑋 𝑤 = 𝑦,那么可以得到:  这个等式有唯一解。可以注意到,这个等式只依赖于样本之间的点积。当数据少于10w 时,这个线性系统可以在一个工作站上求解。非常令人惊讶的是,拟合训练标签准确地为凸模型产生了出色的性能这篇论文在 MNIST 数据集上求解  ,得到了1.2%的测试误差,如果对数据 进行小波变化,误差可以降到 0.6%。在CIFAR10上,使用了高斯核得到了 46%的测试误差。通过使用具有 32,000 个随机滤波器的随机卷积神经网络进行预处理,测试误差可以降到 17%,如果再加上l2正则化,则可以降到15%。作者得到的结论是正则化并不能显著地降低测试误差,而是一些其他手段。


03


总结


全文的核心结论在第二章已经提及,另外作者认为对过参数化模型记忆 的深入分析也将我们对过拟合的直觉从传统的U形风险曲线扩展到“双下降”风险曲线。具体来说,在模型容量大大超过训练集大小的过度参数化机制中,拟合所有训练示例,包括噪声示例,不一定与泛化矛盾。



详细报告请查看国泰君安金融工程专题报告《重新思考深度学习的泛化能力》

特别声明:

法律声明:

本订阅号不是国泰君安证券研究报告发布平台。本订阅号所载内容均来自于国泰君安证券研究所已正式发布的研究报告,如需了解详细的证券研究信息,请具体参见国泰君安证券研究所发布的完整报告。本订阅号推送的信息仅限完整报告发布当日有效,发布日后推送的信息受限于相关因素的更新而不再准确或者失效的,本订阅号不承担更新推送信息或另行通知义务,后续更新信息以国泰君安证券研究所正式发布的研究报告为准。

根据《证券期货投资者适当性管理办法》,本订阅号所载内容仅面向国泰君安证券客户中的专业投资者。因本资料暂时无法设置访问限制,若您并非国泰君安证券客户中的专业投资者,为控制投资风险,还请取消关注,请勿订阅、接收或使用本订阅号中的任何信息。如有不便,敬请谅解。

市场有风险,投资需谨慎。在任何情况下,本订阅号中信息或所表述的意见均不构成对任何人的投资建议。在决定投资前,如有需要,投资者务必向专业人士咨询并谨慎决策。国泰君安证券及本订阅号运营团队不对任何人因使用本订阅号所载任何内容所引致的任何损失负任何责任。

本订阅号所载内容版权仅为国泰君安证券所有。订阅人对本订阅号发布的所有内容(包括文字、影像等)进行复制、转载的,需明确注明出处,且不得对本订阅号所载内容进行任何有悖原意的引用、删节和修改。



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130390
 
100 次点击