美文网首页深度学习
训练神经网络中的Epoch和Iteration

训练神经网络中的Epoch和Iteration

作者: ThompsonHen | 来源:发表于2020-01-16 21:38 被阅读0次

    神经网络的训练中我们常常能遇到EpochIteration这两个不同的词。

    两个词都表示“轮次”的意思,显然这两个“轮次”的含义并不相同。

    在解释这两个词的不同之前,我们先引入三种梯度下降策略:
    1.Batch Grandient Descent(BGD,批梯度下降)
    2.Stochastic Gradient Descent(SGD,随机梯度下降)
    3.Mini-Batch Gradient Descent(MBGD,小批量梯度下降)

    BGD:每次迭代的时候用所有的样本来参与参数的更新。这种方法需要同时把所有的样本都加载进内存进行计算,这样无疑会导致内存的负载过大。

    SGD:每次迭代使用一个样本来对参数进行更新。这种方法虽然速度快,但单个样本的损失往往不能代表总体样本的损失情况,而且单个样本的损失往往容易受到噪声的影响,所以这种方法往往难以收敛。

    MBGD:是对上面两种策略的折中,相当于每次迭代使用 batch_size 个样本来对参数进行更新。若是batch_size选择合适,则每次迭代的损失既能表征总体的损失的情况,也能降低内存的负载压力,提升内存的利用率,也提升网络训练的速度。

    BatchSize:一次训练所选取的样本数。

    下面来比较IterationEpoch的不同:

    Iteration:使用一个batch_size数量的样本训练一次。一个Iteration,参数更新一次。

    Epoch:所有的样本都训练一次,即(total / batch_size)个Iteration的训练。一个Epoch,参数更新了(total / batch_size)次

    相关文章

      网友评论

        本文标题:训练神经网络中的Epoch和Iteration

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