2019-12-26 19:21:03

作者:Preetum Nakkiran,Gal Kaplun,Yamini Bansal,Tristan Yang,Boaz Barak,Ilya Sutskever

编译:ronghuaiyang

导读

深度学习中的双下降现象,可能大家也遇到过,但是没有深究,OpenAI这里给出了他们的解答。

我们展示了 CNN,ResNet 以及 transformers 中的双下降现象,随着模型的尺寸,数据集的大小以及训练时间的增加,performance 先提升,然后变差,然后再次提升。这种效果通常可以通过仔细的正则化来避免。虽然这种行为似乎是相当普遍的,但我们还没有完全理解它为什么会发生,并把对这种现象的进一步研究作为一个重要的研究方向。

论文:https://arxiv.org/abs/1912.02292

包括 CNNs、ResNets、transformer 在内的许多现代深度学习模型,在不使用 early stopping 或正则化时,都表现出之前观察到的双下降现象。峰值发生在一个可以预见的“特殊的时刻”,此时模型刚好可以去拟合训练集。当我们增加神经网络参数的数量,刚开始的时候,测试误差减少,然后会增加,而且,模型开始能够拟合训练集,进行了第二次下降。

传统统计学家认为“模型越大越糟”的传统观点,以及“模型越大越好”的现代机器学习范式,都没有得到支持。我们发现双下降也发生在训练过程中。令人惊讶的是,我们发现这些现象会导致数据越多效果越差,此时在更大的训练集上训练一个深层网络的效果实际上更差。

模型的双下降

  1. 在一段时间内,模型越大效果越差。

模型的双下降现象会导致对更多数据的训练效果越差。在上面的图中,测试误差的峰值出现在插值阈值附近,此时模型刚好足够大到能拟合训练集。

在我们观察到的所有情况下,影响插值阈值的变化(如改变优化算法、训练样本数量或标签噪声量)也会相应地影响测试误差峰值的位置。在添加标签噪声的情况下,双下降现象最为突出,如果没有它,峰值会更小,很容易被忽略。添加标签噪声会放大这种普遍的行为,让我们可以很容易地进行研究。

样本的非单调性

  1. 在一段时间内,样本越多效果越差。

上面的图显示了在没有添加标签噪声的情况下,在语言翻译任务训练的 transformers。正如预期的那样,增加样本数量会使曲线向下移动,从而降低测试误差。然而,由于更多的样本需要更大的模型来拟合,增加样本的数量也会使插值阈值(以及测试误差的峰值)向右移动。对于中等大小的模型(红色箭头),这两个效果结合在一起,我们可以看到在 4.5 倍的样本上进行训练实际上会影响测试性能。

训练 epoch 的双下降

  1. 在一段时间内,训练时间越长,过拟合情况就越严重。

上面的图显示了测试和训练误差与模型大小和优化步骤数量的关系。对于给定数量的优化步骤(固定 y 坐标),测试和训练误差表现为随着模型的大小出现了双下降。对于给定的模型尺寸(固定的 x 坐标),随着训练的进行,测试和训练误差不断地减小、增大、再减小,我们把这种现象称为 epoch-wise 的双下降。

一般情况下,当模型刚好能够拟合训练集时,会出现测试误差的峰值

我们的直觉是,对于插值阈值处的模型,实际上只有一个模型正好拟合了数据集,而强迫它拟合即使是稍微有一点噪声或错误的标签也会破坏它的全局结构。也就是说,没有既能在插值阈值处拟合训练集又能在测试集上表现良好的“好模型”。然而,在参数化的情况下,有许多模型可以拟合训练集,并且存在这样的好模型。此外,随机梯度下降法(SGD)的隐式偏差导致了这样好模型出现,其原因我们还不清楚。

我们把对深层神经网络的双下降机制仍的充分认识作为一个重要的开放性问题。

英文原文:https://openai.com/blog/deep-double-descent/

深度学习中的双下降现象相关推荐

  1. 深度学习中的梯度下降优化算法综述

    1 简介 梯度下降算法是最常用的神经网络优化算法.常见的深度学习库也都包含了多种算法进行梯度下降的优化.但是,一般情况下,大家都是把梯度下降系列算法当作是一个用于进行优化的黑盒子,不了解它们的优势和劣 ...

  2. 关于深度学习中的梯度下降,了解一下

    原文 一篇让你很容易理解什么是梯度下降的博客 0 什么是梯度下降 梯度下降法的基本思想可以类比为一个下山的过程.假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷 ...

  3. nfa确定化 dfa最小化_深度学习中的优化:梯度下降,确定全局最优值或与之接近的局部最优值...

    深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器. 一般而言,神经网络的整体性能取决于几个因素.通常最受关注的是网络架构,但这只是众多重要元素之一.还有一个常常 ...

  4. 万字长文带你看尽深度学习中的各种卷积网络

    来源:AI科技评论 摘要:深度学习中的各种卷积网络大家知多少? 深度学习中的各种卷积网络大家知多少?对于那些听说过却又对它们没有特别清晰的认识的小伙伴们,这篇文章非常值得一读.Kunlun Bai 是 ...

  5. 万字长文带你看尽深度学习中的12种卷积网络

    转自 | AI科技评论 作者 | Kunlun Bai 深度学习中的各种卷积网络大家知多少?对于那些听说过却又对它们没有特别清晰的认识的小伙伴们,Kunlun Bai 这篇文章非常值得一读.Kunlu ...

  6. 【翻译】为深度学习购买哪种GPU: 我在深度学习中使用GPU的经验和建议

    文章目录 概述 GPU是如何工作的? 对深度学习处理速度最重要的GPU规格 张量核心 没有张量核心的矩阵乘法 使用张量核心的矩阵乘法 带有张量核心和异步拷贝的矩阵乘法(RTX 30/RTX 40)和T ...

  7. 深度学习中的归一化方法简介(BN、LN、IN、GN)

    文章目录 1. 协方差偏移 1.1 协方差偏移的概念 1.2 协方差偏移的影响 2. 归一化的通用框架与基本思想 3. 常见的归一化方法 3.1 Batch Nomalization 3.1.1 什么 ...

  8. 深度学习中的优化算法与实现

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 GiantPandaCV导语:这篇文章的内容主要是参考 沐神的mxnet/gluon视频中,Aston ...

  9. 详解深度学习中的Normalization,不只是BN(1)

    " 深度神经网络模型训练之难众所周知,其中一个重要的现象就是 Internal Covariate Shift. Batch Normalization 大法自 2015 年由Google ...

最新文章

  1. mask rcnn网络结构笔记
  2. 敏捷测试2015新看点
  3. ​Golang 并发编程指南
  4. c语言模拟试题快速排序,快速排序(东软喜欢考类似的算法填空题,又如堆排序的算法等)...
  5. Flutter Icons 与 CupertinoIcons 的不一样的体验
  6. 谷歌中国开发者大会,感悟,激动
  7. c语言二维数组错误语法,关于c语言动态分配二维数组free的错误求dalao看看怎么回事谢谢啊~~~~...
  8. laravel 分页使用
  9. java 柱状图 宽度_Java 创建Excel图表
  10. SQL Server 去除节假日天数,获取实际工作日天数
  11. 计算机专业教师技能比赛,青年教师展风采,技能比赛促提升
  12. 织梦cms里面文章里面的HTML,dede源码在其它页面调用单页文章内容并过滤HTML代码的方法...
  13. 若依的框架怎么样_若依后台管理系统初识
  14. 出入库条码扫描软件有哪些
  15. SpringBoot初试错误合集
  16. java定义一个eat方法_小黄鸭系列java基础知识 | java中的方法
  17. 可以一键去除水印的工具哪个好
  18. mysql基础架构(一条update语句如何执行)
  19. 【区块链与密码学】第9-7讲:群签名在区块链中的应用 I
  20. 1.41亿老人遭受过虐待,厌老憎老为何成了时代病?

热门文章

  1. 模型评估指标micro avg、macro avg和weighted avg的计算方式及区别
  2. EJB-Java服务器端构件模型使用入门(2)
  3. ios手机连接远程服务器,04-iOS逆向工程使用SSH通过USB远程登录越狱iPhone
  4. centos php 局域网访问,CentOS8安装搭建php环境
  5. 智源博士后合作导师专访 | 曾毅:面向可持续发展的人工智能
  6. App Store内购机制
  7. 掀起网络狂欢效应的六条金科玉律
  8. Web设计离不开的4项基本原则
  9. 用DCGAN训练并生成自己的图像集(含tensorflow代码)
  10. 多分类任务的混淆矩阵