Batch and Momentum:
Batch:使用训练集中一小部分样本对模型权重进行一次反向传播对的参数更新,这一小部分样本被称为“一批数据”。
Epoch:使用训练的全部数据对模型进行一次完整训练,被称为“一代训练”。
Iteration:使用一个Batch数据为模型进程一次参数更新的过程,被称为“一次训练”。
我们每次计算的梯度和损失都是计算一个Batch中的梯度和损失。
batch设置的大小对模型训练有很大影响,根据需要选择自己的Batch。
Momentum梯度下降:首先在物理的世界里面,假设Error Surface是斜坡曲线,参数就是这个球,把球从高处放下,当球滚到local minima 或者 saddle point 时不一定会被卡住,可能由于惯性继续往前走。
**Gradient + momentum:**每次在移动参数时,不是只往Gradient的反方向来移动(一般的gradient descent移动方向是gradient的反方向),而是依靠 1. gradient的反方向 2. 前一步移动的方向。两者加起来的结果去调整我们的参数。