mini-batch和full-batch,及参数更新
一次epoch是指跑完全部的数据集。
在对模型参数进行更新学习的时候,有三种更新方式,mini-batch (部分增量更新)与 full-batch(全增量更新),以及一次选一个训练。
SGD随机梯度下降法对full-batch GD有了极大速度的提升。但有一个问题就是由于过于自由 导致训练的loss波动很大。那么如何可以兼顾经典GD的稳定下降同时又保有SGD的随机特性呢?于是小批量梯度下降法, mini-batch gradient descent 便被提了出来。其主要思想就是每次只拿总训练集的一小部分来训练,比如一共有5000个样本,每次拿100个样本来计算loss,更新参数。50次后完成整个样本集的训练,为一轮(epoch)。由于每次更新用了多个样本来计算loss,就使得loss的计算和参数的更新更加具有代表性。不像原始SGD很容易被某一个样本给带偏 。loss的下降更加稳定,同时小批量的计算,也减少了计算资源的占用。
mini-batch中,在每一个epoch计算完所有的样本后,计算下一代样本的时候,可以选择打乱所有样本顺序。
posted on 2017-09-28 11:10 MissSimple 阅读(2474) 评论(0) 编辑 收藏 举报