深度学习-目标检测(一)

判定是否过拟合、欠拟合的一种方式

  • train loss 不断下降,test loss不断下降,说明网络仍在学习;
  • train loss 不断下降,test loss趋于不变,说明网络过拟合;
  • train loss 趋于不变,test loss不断下降,说明数据集100%有问题;
  • train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;
  • train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。

学习率

学习率(Learning rate)作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
学习率可以在训练的过程中动态改变,因此要想找到合适的学习率,要多尝试。其范围为0.0001—1。

batch_size,epoch,iteration之间的关系

深度学习,训练数据的时候,有个既简单又常见的技术点,需要我们弄清楚。

  • batch_size(一批次的大小):就是我们一次迭代使用的样本量,比如:4/816/32/64/128等。
  • epoch(轮次):一个轮次就是把所有的训练数据过一遍。
  • iteration(迭代次数):每跑完一个batch都要更新参数,这个过程叫一个iteration。

Batch Size大小对训练过程的影响

batch size越小,后期的loss震荡就越厉害,相对大一点的batch size能够防止loss震荡的情况发生。相应的,反传回去的梯度的变化也就越大,也就越不利于收敛。

batch size为1的时候,loss到后期会发生爆炸,这主要是lr(学习率)=0.02设置太大,所以某个异常值的出现会严重扰动到训练过程。这也是为什么对于较小的batchsize,要设置小lr的原因之一,避免异常值对结果造成的扰巨大扰动。而对于较大的batchsize,要设置大一点的lr的原因则是大batch每次迭代的梯度方向相对固定,大lr可以加速其收敛过程。
深度学习-目标检测(一)
参考文章

loss值下降过快,或者下降之后又上升的原因可能有:

  1. batch-size与alpha的大小不相适应
  2. 数据集数量少