ON LARGE BATCH TRAINING FOR DEEP LEARNING: GENERALIZATION GAP AND SHARP MINIMA
@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,
\]
其结果如下
显然, 在\(\alpha=1\)处(即\(x=x_l^*\))左右的未知变化特别大, 这也反应了尖的特性.
一些解决办法
- data augmentation, 效果显著
- conservative training, 即采用proximal下降
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的机制不对? 新的是不需要利用原样本的).
最新文章
- MYSQL数据库忘记密码
- UIImagePickerController和UIAlertController结合使用
- 在Windows7 下调试CodeSmith 注意事项
- Node.js与Sails~Model数据模型
- Bootstrap源码分析之transition、affix
- JS快速获取图片宽高的方法
- (C#基础) byte[] 之初始化, 赋值,转换。(转)
- memcache的windows下的安装和简单使用
- [原创]AHA大会回顾
- SqlServer将表中数据复制到另一张表
- Linux守护进程详解(init.d和xinetd) [转]
- 用Access作为后台数据库支撑,书写一个C#写入记录的案例
- 《RHEL6.3权限的管理》
- Java IO3:字符流
- POJ 3186 Treats for the Cows 一个简单DP
- 简单的NHibernate学习笔记
- [Yii][RBAC]Yii中应用RBAC完全指南
- jQuery常用特效插件汇总
- ListCtrl控件着色
- api-gateway实践(01)服务网关 - 原型功能