Nakkiran P, Kaplun G, Bansal Y, et al. Deep Double Descent: Where Bigger Models and More Data Hurt[J]. arXiv: Learning, 2019.

@article{nakkiran2019deep,

title={Deep Double Descent: Where Bigger Models and More Data Hurt},

author={Nakkiran, Preetum and Kaplun, Gal and Bansal, Yamini and Yang, Tristan and Barak, Boaz and Sutskever, Ilya},

journal={arXiv: Learning},

year={2019}}

本文介绍了深度学习中的二次下降(double descent)现象, 利用实验剖析其可能性.

主要内容



注意到, 在其他条件固定的情况下, 当网络的性能增加(这里指的是ResNet18的参数个数)时, 会出现一中损失率先下降在上升至一个peak再下降的过程.

而右图则向我们展示了, epochs并非越多越好, 如果我们能够即时停止训练, 很有可能就能避免二次下降的现象.

Effective Model Complexity(EMC)

在训练过程\(\mathcal{T}\), 关于数据分布\(\mathcal{D}\)与参数\(\epsilon\)下, Effective Model Complexity(EMC)定义为:

\[\mathrm{EMC}_{\mathcal{D}, \epsilon} (\mathcal{T}) := \max \{n | \mathbb{E}_{S \sim \mathcal{D}^n} [\mathrm{Error}_S(\mathcal{T}(S))] \le \epsilon\},
\]

其中\(\mathrm{Error}_S(M)\)为模型\(M\)在训练样本\(S\)上的平均误差.

作者认为, 一个模型\(M\), 训练样本为\(n\), \(\mathrm{EMC}\) 比\(n\)足够小, 或者足够大的时候, 提升\(\mathrm{EMC}\) (即提升模型的性能) 是能够降低测试误差(test error)的, 但是, 在\(n\)的附近\((n-\delta_1,n+\delta_2)\)时候, 模型的变化, 既有可能使得模型变好, 也有可能使得模型便坏.

label noise

显然, label noise越小越好( 作者认为label noise 会导致模型不易训练), 而且网络的EMC越大(这里指的是网络的参数个数), 对其抗性越好.

data augmentation

显然 data augmentation 能够增加对label noise的抗性.

下降方式

只能说, 下降方式是有较大影响的.

SGD vs Adam

Adam

SGD

SGD + Momentum

early-stopping

即如果我们能够及早停止训练(适中的epoches)能够避免二次下降的发生, 这一点在Fig 20中体现的淋漓尽致. 但是也并不绝对, 因为Fig 19提供了一个反例.





Epoches

显然, 适中的或者尽可能多的epoches是好的.

样本数量

对于小型的模型, 增加数据(超出其承受范围)反而会使得模型变差.



weight-decay

weight-decay 对提升EMC是起作用的.

DEEP DOUBLE DESCENT: WHERE BIGGER MODELS AND MORE DATA HURT的更多相关文章

  1. 论文阅读笔记六十四: Architectures for deep neural network based acoustic models defined over windowed speech waveforms(INTERSPEECH 2015)

    论文原址:https://pdfs.semanticscholar.org/eeb7/c037e6685923c76cafc0a14c5e4b00bcf475.pdf 摘要 本文研究了利用深度神经网络 ...

  2. 【Deep Learning】Hinton. Reducing the Dimensionality of Data with Neural Networks Reading Note

    2006年,机器学习泰斗.多伦多大学计算机系教授Geoffery Hinton在Science发表文章,提出基于深度信念网络(Deep Belief Networks, DBN)可使用非监督的逐层贪心 ...

  3. Google TensorFlow深度学习笔记

    Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...

  4. Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesian methods?

    Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesia ...

  5. Classifying plankton with deep neural networks

    Classifying plankton with deep neural networks The National Data Science Bowl, a data science compet ...

  6. How To Improve Deep Learning Performance

    如何提高深度学习性能 20 Tips, Tricks and Techniques That You Can Use ToFight Overfitting and Get Better Genera ...

  7. [C7] Andrew Ng - Sequence Models

    About this Course This course will teach you how to build models for natural language, audio, and ot ...

  8. (转) An overview of gradient descent optimization algorithms

    An overview of gradient descent optimization algorithms Table of contents: Gradient descent variants ...

  9. A Statistical View of Deep Learning (IV): Recurrent Nets and Dynamical Systems

    A Statistical View of Deep Learning (IV): Recurrent Nets and Dynamical Systems Recurrent neural netw ...

随机推荐

  1. redis入门到精通系列(二):redis操作的两个实践案例

    在前面一篇博客中我们已经学完了redis的五种数据类型操作,回顾一下,五种操作类型分别为:字符串类型(string).列表类型(list).散列类型(hash).集合类型(set).有序集合类型(so ...

  2. Java Jar包压缩、解压使用

    什么是jar包JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件. 如何打/解包使用jdk/bin/jar.exe工具,配置完环境 ...

  3. JDBC(3):PreparedStatement对象介绍

    一,PreparedStatement介绍 PreperedStatement是Statement的子类,它的实例对象可以通过Connection.preparedStatement()方法获得,相对 ...

  4. 查看IP访问量的shell脚本汇总

    第一部分,1,查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[ ...

  5. 【Github】如何下载csv文件/win10如何修改txt文件为csv文件

    csv文件:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号) 右键点击raw按钮,选择目标另存为,下载的是txt文件 win10如何 ...

  6. Python绘制柱状图

    1.1Python绘制柱状图对应代码如下所示 import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl. ...

  7. 『学了就忘』Linux系统管理 — 83、Linux中进程的查看(top命令)

    目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# ...

  8. Windows异常分发

    当有异常发生时,CPU会通过IDT表找到异常处理函数,即内核中的KiTrapXX系列函数,然后转去执行.但是,KiTrapXX函数通常只是对异常做简单的表征和描述,为了支持调试和软件自己定义的异常处理 ...

  9. PDF补丁丁将发布开放源代码的1.0版本

    近况 一个月前的今天,母亲永远离开了我. 想起四个月前,我送她了去住院.入院后,做了检查.检查结果没出,我的生日就到了.母亲很关心我的生日.在电话里,她祝我身体健康,又问媳妇有没有给我做生日餐桌的菜肴 ...

  10. ANTLR 语法设计

    下面学习如何编写语法. 如何定义语法规则 一种语言模式就是一种递归的语法结构. 我们需要从一系列有代表性的输入文件中归纳出一门语言的结构.在完成这样的归纳工作后,我们就可以正式使用ANTLR语法来表达 ...