深度学习-minibatch
鉴于自己对minibatch一直以来的误解,说明一下minbatch的具体做法。
batch是一次运行所有数据集,只更新一次梯度下降,m过大,计算依然很慢。
minibatch是一次运行一个minibatch,更新一次梯度,整个数据集,会更新多次,通常来说,运行更快。 原因可能是w的维数小,参数数量不多。
如下图所示: 右边的图J{t}可能会上升,因为训练的样本不一样,之间会产生噪音误差,但是总体趋势是下降的。
batch size的选择:
如果是整个训练集,他会不断的收敛到最小,参数过多,反向传播时间过长
batch size =1,随机梯度下降,不一定会收敛,同时没有用到向量的并行化。
minibatch:最小化这一批的成本函数,不断更新不同层的w值。执行速度更快,计算效率更高。