Keskar N S, Mudigere D, Nocedal J, et al. On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima[J]. arXiv: Learning, 2016.

作者代码

@article{keskar2016on,

title={On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima},

author={Keskar, Nitish Shirish and Mudigere, Dheevatsa and Nocedal, Jorge and Smelyanskiy, Mikhail and Tang, Ping Tak Peter},

journal={arXiv: Learning},

year={2016}}

本文主要阐述了一种现象, 就是在我们训练网络的时候, 小的batch_size会比大的batch_size效果更好(表现在准确率上).

主要内容

因为作者主要是进行实验论证的, 所以就介绍一下结果, 我们用LB表示大的batch_size, SB表示小的batch_size.



作者认为, LB会导致参数尖化, 而SB会导致平坦的解, 个人感觉这种就是一个灵敏度的问题. 作者也说, LB会导致\(\nabla^2 f(x)\)呈现某个特征值特别大(绝对值), 其余特征值很小的情况, 而SB的\(\nabla^2 f(x)\)的特征值分布往往比较均匀.

注: 这里的\(x\)指的是网络的参数而非样本.

记LB训练后所对应的解为\(x^*_l\), 而SB训练后所对应的解为\(x^*_s\), 作者沿着俩个点的连续探索其landscape,

\[f(ax^*_l+(1-a)x_s^*), \quad a \in [-1,2],
\]

其结果如下



显然, 在\(\alpha=1\)处(即\(x=x_l^*\))左右的未知变化特别大, 这也反应了尖的特性.

一些解决办法

  1. data augmentation, 效果显著
  2. conservative training, 即采用proximal下降
\[\tag{5}
x_{k+1} = \argmin_x \frac{1}{|B_k|} \sum_{i \in B_k} f_i(x) + \frac{\lambda}{2} \|x - x_k\|_2^2,
\]

其中\(f_i\)表示输入为第\(i\)个样本.

3. robust training, 即利用原样本和对抗样本进行训练, 但是效果不是很明显(有可能是Goodfellow的机制不对? 新的是不需要利用原样本的).

ON LARGE BATCH TRAINING FOR DEEP LEARNING: GENERALIZATION GAP AND SHARP MINIMA的更多相关文章

  1. 16 On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima 1609.04836v1

    Nitish Shirish Keskar, Dheevatsa Mudigere, Jorge Nocedal, Mikhail Smelyanskiy, Ping Tak Peter Tang N ...

  2. Deep Learning中的Large Batch Training相关理论与实践

    背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在分布式训练时,提高计算通信占比是提高计算加速比的有效手段,当网络通信优化到一 ...

  3. [Converge] Feature Selection in training of Deep Learning

    特征相关性对于DL的影响 链接:https://www.zhihu.com/question/47908908/answer/110987483 经验一:  1. 输入特征最好不相关.如果某些维输入的 ...

  4. Spectral Norm Regularization for Improving the Generalizability of Deep Learning论文笔记

    Spectral Norm Regularization for Improving the Generalizability of Deep Learning论文笔记 2018年12月03日 00: ...

  5. Deep Learning in a Nutshell: History and Training

    Deep Learning in a Nutshell: History and Training This series of blog posts aims to provide an intui ...

  6. [C3] Andrew Ng - Neural Networks and Deep Learning

    About this Course If you want to break into cutting-edge AI, this course will help you do so. Deep l ...

  7. (转)分布式深度学习系统构建 简介 Distributed Deep Learning

    HOME ABOUT CONTACT SUBSCRIBE VIA RSS   DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...

  8. A Full Hardware Guide to Deep Learning

    A Full Hardware Guide to Deep Learning Deep Learning is very computationally intensive, so you will ...

  9. A Full Hardware Guide to Deep Learning深度学习电脑配置

     https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博 ...

随机推荐

  1. linux 常用查看命令

    linux 常用查看命令 目录 linux 常用查看命令 linux 查看内存/进程-ps/top linux 查看磁盘存储-df linux 查看io读写-iotop linux 查看端口占用-ne ...

  2. Swift alert 倒计时

    let title: String = "您的开奖时间为" let time: String = "2017-10-23 12:23:18" let count ...

  3. Android 极光推送集成

    集成Jpush 1.用Android Studio创建一个Demo 2.创建激光推送开发者账号,要创建极光推送开发者帐号,请访问极光推送官方网站https://www.jiguang.cn/push ...

  4. springboot整合jetty

    1.jetty介绍 通常我们进行Java Web项目开发,必须要选择一种服务器来部署并运行Java应用程序,Tomcat和Jetty作为目前全球范围内最著名的两款开源servlet容器,该怎么选呢. ...

  5. SpringBoot中使用JUnit4(入门篇)

    添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  6. spring boot @EnableWebMvc禁用springMvc自动配置原理。

    说明: 在spring boot中如果定义了自己的java配置文件,并且在文件上使用了@EnableWebMvc 注解,那么sprig boot 的默认配置就会失效.如默认的静态文件配置路径:&quo ...

  7. 1、Spring简介及IOC入门案例

    一.Spring框架介绍 1.介绍 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务 ...

  8. Python openpyxl的使用

    import openpyxl from openpyxl.styles import Font, colors, Alignment wb = openpyxl.load_workbook('C:\ ...

  9. ciscn_2019_s_4***(栈迁移)

    这是十分经典的栈迁移题目 拿到题目例行检查 32位程序开启了nx保护 进入ida,发现了很明显的system 我们进入main函数查看vul 可以看到溢出的部分不够我们rop所以这道题通过栈迁移去做 ...

  10. Position定位详解

    Position CSS position属性用于指定一个元素在文档中的定位方式.top,right,bottom 和 left 属性则决定了该元素的最终位置. 在分析position元素定位之前,先 ...