美文网首页
ON LARGE BATCH TRAINING FOR DEEP

ON LARGE BATCH TRAINING FOR DEEP

作者: 馒头and花卷 | 来源:发表于2020-05-24 20:24 被阅读0次

    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会导致呈现某个特征值特别大(绝对值), 其余特征值很小的情况, 而SB的的特征值分布往往比较均匀.

    注: 这里的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

          本文链接:https://www.haomeiwen.com/subject/wqtsahtx.html