0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何理解泛化是深度学习领域尚未解决的基础问题

Tensorflowers 来源:TensorFlow 作者:Google Research 团队 2021-04-08 17:56 次阅读

如何理解泛化是深度学习领域尚未解决的基础问题之一。为什么使用有限训练数据集优化模型能使模型在预留测试集上取得良好表现?这一问题距今已有 50 多年的丰富历史,并在机器学习中得到广泛研究。如今有许多数学工具可以用来帮助研究人员了解某些模型的泛化能力。但遗憾的是,现有的大多数理论都无法应用到现代深度网络中,这些理论在现实环境中显得既空泛又不可预测。而理论和实践之间的差距 在过度参数化模型中尤为巨大,这类模型在理论上能够拟合训练集,但在实践中却不能做到。

丰富历史

数学工具

过度参数化

在《Deep Bootstrap 框架:拥有出色的在线学习能力即是拥有出色的泛化能力》(The Deep Bootstrap Framework: Good Online Learners are Good Offline Generalizers)(收录于 ICLR 2021)这篇论文中,我们提出了一个解决此问题的新框架,该框架能够将泛化与在线优化领域联系起来。在通常情况下,模型会在有限的样本集上进行训练,而这些样本会在多个训练周期中被重复使用。但就在线优化而言,模型可以访问无限的样本流,并且可以在处理样本流的同时进行迭代更新。在这项研究中,我们发现,能使用无限数据快速训练的模型,它们在有限数据上同样具有良好的泛化表现。二者之间的这种关联为设计实践提供了新思路,同时也为从理论角度理解泛化找到了方向。

《Deep Bootstrap 框架:拥有出色的在线学习能力即是拥有出色的泛化能力》

Deep Bootstrap 框架

Deep Bootstrap 框架的主要思路是将训练数据有限的现实情况与数据无限的“理想情况”进行比较。它们的定义如下:

现实情况(N、T):使用来自一个分布的 N 个训练样本训练模型;在 T 个小批量随机梯度下降 (SGD) 步骤中,照常在多个训练周期中重复使用这 N 个样本。这相当于针对经验损失(训练数据的损失)运行 SGD 算法,这是监督学习中的标准训练程序。

理想情况(T):在 T 个步骤中训练同一个模型,但在每个 SGD 步骤中使用来自分布的新样本。也就是说,我们运行相同的训练代码(相同的优化器、学习速率、批次大小等),但在每个训练周期中采用全新的训练样本集,而不是重复使用相同的样本。理想情况下,对于一个几乎达到无限的“训练集”而言,其训练误差和测试误差之间相差无几。

35bc07e2-984e-11eb-8b86-12bb97331649.gif

在 SGD 迭代期间 ResNet-18 架构理想情况及现实情况的测试软误差。可以看到,两种误差非常相近

一般而言,我们认为现实情况和理想情况不会有任何关联,因为在现实世界中用于模型处理的来自分布的示例数量是有限的,而在理想世界中模型处理的示例数量是无限的。但在实践中,我们发现现实情况模型和理想情况模型之间的测试误差非常相近。

为了将此观察结果量化,我们通过创建一个名为 CIFAR-5m 的数据集模拟了一种理想情况。我们使用 CIFAR-10 训练了一个生成模型,然后利用该模型生成约六百万个图像。选择生成这么多图像的目的是为了使此数据集对于模型而言具有“近乎无限性”,从而避免模型重复采样相同的数据。也就是说,在理想情况下,模型面对的是一组全新的样本。

CIFAR-5m

生成模型

下图给出了几种模型的测试误差,对比了它们在现实情况(如重复使用数据)和理想情况(使用“全新”数据)中使用 CIFAR-5m 数据训练的表现。蓝色实线展示了 ResNet 模型在现实情况下使用标准 CIFAR-10 超参数针对 50000 个样本训练 100 个周期的表现。蓝色虚线展示了同样的模型在理想情况下使用五百万个样本一次性训练完毕的表现。出人意料的是,现实情况和理想情况下的测试误差非常接近,在某种程度上模型并不会受到样本是重复使用还是全新的影响。

36cb59f8-984e-11eb-8b86-12bb97331649.png

现实情况下的模型使用 50000 个样本训练 100 个周期,理想情况下的模型使用五百万个样本训练一个周期。图中的线展示了测试误差以及 SGD 步骤的执行次数

这个结果也适用于其他架构,如多层感知架构(红线)、视觉 Transformer(绿线),以及许多其他架构、优化器、数据分布和样本大小设置。从这些实验中,我们得出了一个关于泛化的新观点,即能使用无限数据快速优化的模型,同样能使用有限数据进行良好的泛化。例如,ResNet 模型使用有限数据进行泛化的能力要优于 MLP 模型,其原因在于 ResNet 模型使用无限数据进行优化的速度更快。

多层感知

基于优化行为理解泛化

我们从中得出一个重要的观察结果,即直到现实情况开始收敛前,现实情况和理想情况下的模型在所有时刻的测试误差都非常接近(训练误差 《 1%)。因此,我们可以通过研究模型在理想情况下的行为来理解它们在现实情况下的表现。

也就是说,模型的泛化可以通过研究其在两种框架下的优化表现来理解:

1. 在线优化:其用于在理想情况下观察测试误差的减小速度

2. 离线优化:其用于在现实情况下观察训练误差的收敛速度

因此,研究泛化时,我们可以相应地研究上述两个方面,它们仅涉及优化问题,因此在概念上较为简单。通过这项观察,我们发现出色的模型和训练程序均符合两个条件:(1) 能在理想情况下快速优化;(2) 在现实情况下的优化速度较慢。

所有深度学习设计方案都能通过了解它们在这两方面的表现来进行评估。例如,一些改进,比如卷积、残差连接和预训练等,其主要作用是加速理想情况的优化,而另一些改进,比如正则化和数据增强等,其主要作用则是减慢现实情况的优化。

应用 Deep Bootstrap 框架

研究人员可以使用 Deep Bootstrap 框架来研究和指导深度学习设计方案。它所依循的原则是:每当我们做出影响现实情况泛化能力的更改时(架构、学习速率等),我们都应考虑它对以下两方面带来的影响:(1) 理想情况的测试误差优化(越快越好)以及 (2) 现实情况的训练误差优化(越慢越好)。

例如, 预训练在实践中通常用于促进小数据体系中的模型泛化。然而,人们对预训练发生作用的机理知之甚少。我们可以使用 Deep Bootstrap 框架,通过观察预训练对上述两方面形成的影响研究这个问题。我们发现,预训练的主要作用是促进理想情况的优化 (1),即使网络能够“快速学习”在线优化。预训练模型泛化能力的增强几乎总能带来其在理想情况下优化能力的提高。下图比较了使用 CIFAR-10 训练的视觉 Transformers (ViT) 在 ImageNet 上从零开始训练和预训练之间的差别。

ImageNet

372c0f96-984e-11eb-8b86-12bb97331649.png

预训练的作用:经过预训练的 ViT 在理想情况下的优化速度更快

我们还可以使用此框架研究数据增强。在理想情况下的数据增强相当于对每个新样本进行一次增强,而不是对同一个样本进行多次增强。此框架意味着好的数据增强均符合两个条件:(1) 不会严重损害理想情况的优化(即增强样本的分布不会过于“失范”),(2) 抑制现实情况的优化速度(以使现实世界花更多时间拟合其训练集)。

数据增强的主要作用通过第二条:延长现实情况的优化时间来实现。关于第一条,一些激进的数据增强 (混合/剪切) 可能会对理想情况造成不良影响,但这种影响与第二条相比不值一提。

结语

Deep Bootstrap 框架为理解深度学习的泛化和经验现象提供了一个新角度。我们非常期待能够在未来看到它被用于理解深度学习的其他方面。尤为有趣的是,泛化可以通过纯粹的优化方面的考量来描述, 这在理论上和许多主流方法相悖。至关重要的是,我们需同时考虑在线优化和离线优化,单独考虑二者中的任何一个都是不够的,它们共同决定了泛化能力。

主流方法

Deep Bootstrap 框架还揭晓了为什么深度学习对于许多设计方案都异常稳健,原因是许多中架构、损失函数、优化器、标准化和激活函数都具有良好的泛化能力。这个框架揭示了一个普适定律:基本上任何具有良好在线优化表现的设计方案,其都能在离线状态下有良好的泛化表现。

最后,现代神经网络既可能过参数化(如使用小型数据任务训练的大型网络),也可能欠参数化(如 OpenAI GPT-3、Google T5 或 Facebook ResNeXt WSL)。而 Deep Bootstrap 框架表明,在线优化是在这两种模式中取得成功的关键因素。

致谢

感谢我们的合著者 Behnam Neyshabur 对论文的巨大贡献以及对于博文的宝贵反馈。感谢 Boaz Barak、Chenyang Yuan 和 Chiyuan Zhang 对于博文及论文的有益评论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119920

原文标题:透过新视角理解深度学习中的泛化

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入
    发表于 04-23 17:18 65次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    GPU在深度学习中的应用与优势

    人工智能的飞速发展,深度学习作为其重要分支,正在推动着诸多领域的创新。在这个过程中,GPU扮演着不可或缺的角色。就像超级英雄电影中的主角一样,GPU在深度
    的头像 发表于 12-06 08:27 721次阅读
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中的应用与优势

    深度学习在人工智能中的 8 种常见应用

    深度学习简介深度学习是人工智能(AI)的一个分支,它教神经网络学习和推理。近年来,它解决复杂问题并在各个
    的头像 发表于 12-01 08:27 983次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>在人工智能中的 8 种常见应用

    深度学习技术与边缘学习技术的不同之处

    设计上的侧重点不同,它们之间存在着差异。本文将帮助您深入理解深度学习技术与边缘学习技术的不同之处,以便您能更有效地将它们应用于您的行业领域
    的头像 发表于 11-17 10:44 292次阅读

    一文详解机器学习深度学习的区别

    深度学习这几年特别火,就像5年前的大数据一样,不过深度学习其主要还是属于机器学习的范畴领域内,所
    发表于 09-06 12:48 1342次阅读
    一文详解机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的区别

    深度学习服务器怎么做 深度学习服务器diy 深度学习服务器主板用什么

    深度学习服务器怎么做 深度学习服务器diy 深度学习服务器主板用什么  随着人工智能的飞速发展,
    的头像 发表于 08-17 16:11 550次阅读

    深度学习框架和深度学习算法教程

    深度学习框架和深度学习算法教程 深度学习是机器学习
    的头像 发表于 08-17 16:11 724次阅读

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络来模拟人类的学习过程。由于其高度的精确性和精度,
    的头像 发表于 08-17 16:10 1174次阅读

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度学习框架是一种软件工具,它可以帮助开发者轻松快速
    的头像 发表于 08-17 16:03 1783次阅读

    什么是深度学习算法?深度学习算法的应用

    。 在深度学习中,使用了一些快速的算法,比如卷积神经网络以及深度神经网络,这些算法在大量数据处理和图像识别上面有着非常重要的作用。 深度学习
    的头像 发表于 08-17 16:03 1489次阅读

    深度学习是什么领域

    深度学习是什么领域  深度学习是机器学习的一种子集,由多层神经网络组成。它是一种自动
    的头像 发表于 08-17 16:02 1220次阅读

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法简介 深度学习算法是什么?深度学习算法有哪些?  作为一种现代化、前沿化的技术,
    的头像 发表于 08-17 16:02 6831次阅读

    深度学习的七种策略

    深度学习的七种策略 深度学习已经成为了人工智能领域的热门话题,它能够帮助人们更好地理解和处理自然
    的头像 发表于 08-17 16:02 1315次阅读

    深度学习基本概念

    深度学习基本概念  深度学习是人工智能(AI)领域的一个重要分支,它模仿人类神经系统的工作方式,使用大量数据训练神经网络,从而实现自动化的模
    的头像 发表于 08-17 16:02 1164次阅读

    傅里叶变换如何用于深度学习领域

    到另一个域的数学方法,它也可以应用于深度学习。 本文将讨论傅里叶变换,以及如何将其用于深度学习领域。 什么是傅里叶变换? 在数学中,变换技术
    的头像 发表于 06-14 10:01 791次阅读
    傅里叶变换如何用于<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>领域</b>