论文导读《On Large-Batch Training for

2018-07-19  本文已影响0人  _从前从前_

前言

在最近的图片分类项目中,出现了一个违背自己直觉的现象:batch size越大,最后的结果反而越差。一直认为,batch size越大,梯度每次更新的方向越准确, 收敛速度应该越快,并且精度越高。百思不得其解的情况下,找到了这篇论文,也算是解答了自己的部分疑惑。
On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima

详细解读

本来是想自己操刀写的,毕竟论文看了两天,但是写的时候百度了一下发现CSDN上有大神分享了自己的解读,我也就直接搬运了,毕竟项目紧张。

这篇文章探究了深度学习中一个普遍存在的问题——使用大的batchsize训练网络会导致网络的泛化性能下降(文中称之为Generalization Gap)。文中给出了Generalization Gap现象的解释:大的batchsize训练使得目标函数倾向于收敛到sharp minima(类似于local minima),sharp minima导致了网络的泛化性能下降,同时文中给出了直观的数据支持。而小的batchsize则倾向于收敛到一个flat minima,这个现象支持了大家普遍认为的一个观点:小的batchsize存在固有噪声,这些噪声影响了梯度的变化。
[CSDN大神对论文的解读]

(https://blog.csdn.net/zhangboshen/article/details/72853121)

总结一下几个点吧。

1、关于mini-batch-size SGD及其变体

主要优点:

主要缺点:

2、LB(Large batch size)为何不如SB(Small batch size)的猜测

首先,LB与SB方法在训练的时候实际上得到的损失值是差不多的,这个现象的可能原因有下面几点,论文讨论的是第三点和第四点:

3、作者的观点

4、作者提出的解决方法

这里只介绍两种可以提升测试精度的,一种依旧处于sharpness,一种减轻了sharpness。

5、作者提出的问题

(a) 是否有人能够证明大batch的训练方法在神经网络的优化过程中严格收敛到sharp minima?
(b) 优化过程的sharp和flat两种minimum的密度如何?
(c) 是否有人能够设计出一种适合采用大的batch用来训练的CNN网络结构?
(d) 能够找到一种合适的初始化方法使得大batch的方法能够收敛到flat minimum上面去?
(e) 能够从一个算法的机制上面去找到一个算法,使得大batch方法远离sharp minima?

个人总结

自己的英语水平很捉急,看论文的过程很痛苦,推导的过程也很痛苦,但是耐下性子整个做下来了收获还是颇丰。希望自己今后遇到了问题不仅可以百度谷歌,更多的是去自己查阅论文动手解决自己的疑惑。项目很忙,但是还是希望自己能多多总结,记录自己成长的轨迹,东西都是学了忘忘了翻阅,自己写下来了,之后来翻阅自己写的东西捡起来也就快了。

上一篇下一篇

猜你喜欢

热点阅读