深度学习(六 批次和动量)

  1. batch

在实际训练过程中,会将数据集分为多个batch,每个batch训练完成后的g都会对参数进行更新,当一个周期所有batch数据训练完成后,在下一个周期开始前,会将数据打乱重新分割batch再进行计算。(这里涉及到批量梯度下降)

当使用更小的batch时,能使用数据集进行更多次的参数更新,但是每一次的识别更为不准确一些,如果只是用一个大的batch,参数更新的方向更准确,但是得到的最终参数可能不如小batch好,但batch越小越好吗?

在实际验证中,大batchsize可能会得到更好的结果
可能的解释1:small batch在得到local minima时,仍会被下一个batch更新
可能的解释2:由于traning和testing的loss差异,minima在平缓区域的值更可靠,在陡峭峡谷中的minima值不可靠,而small batch更倾向于得到一条平缓的loss曲线
在训练准确率一致的情况下,batchsize更小的model在测试数据中表现更好

2.momentum

动量的概念
一般情形参数更新
加入动量后的参数更新

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注