###神经网络中的基本概念batch,epoch,iterations及对训练效果的影响
自己一直很迷糊,这几个关键词也是傻傻分不清楚,为了彻底搞明白,所以用文字记录:
-
batch:批,一次网络训练读入的数据大小,对于数据集太大时,为了平衡内存效率和内存容量寻找一个最佳平衡,采用分批训练,很明显,number of batches就是分了几批,batch_size就是每一批的大小,称批量数据样本数
所以就有:
1、batch_size 会影响到模型优化程度和训练速度
2、增大Batch_Size,一次读入的数据增大,所需内存容量增加,相对处理速度加快。
3、合适的batch_size,增加梯度下降方向的准确度,减小训练震荡,加快收敛 -
epoch: 时期,即所有训练样本(完整的数据集)通过了神经网络训练一次(一个正向传递和一个反向传递)
-
Iteration: 迭代,神经网络中通过多次迭代训练已达到最优结果。
1个iteration即迭代一次,即batch_size个样本训练一次(一个正向通过和一个反向通过),迭代的过程就是梯度下降的过程,每一次迭代的结果都会做为下一次迭代的初始值。 -
梯度下降
梯度的含义是代价函数的斜率,下降是代价函数的下降
实例:
注意:
1、number of batch = iterations
2、完成一个batch(或一次迭代) 权重更新一次
3、完成一个epoch则完成一次全数据集训练,更新batch次权重
4、训练的过程,即权重更新的过程。