在深度学习中,累计不同批次的损失估计总体损失

在深度学习中,累计不同批次的损失估计总体损失

在深度学习训练模型的过程中,通常会通过计算不同批次间的损失和,当作模型在这个训练集上的总体损失,这种做法是否具有可行性呢?

  • 什么是总体损失?
    • 总体损失是计算模型在整个数据集上的损失,但是在训练时,可以计算每个批次上的损失并求和,以此观察模型的训练进度。
  • 训练的作用:前向传播计算损失函数值,为了尽量减少损失函数值,反向传播计算损失函数梯度,并用梯度更新模型参数。通过不断地迭代上面的步骤,让模型收敛到一个局部最优解。
  • 需要注意的是:同一个批次使用的是相同的模型参数,计算完一个批次之后,模型参数也会相应地更新,所以不同的批次之间使用的模型参数一般不同相同
  • 观察总体损失的意义:监控并指导模型的训练,我们的目标是让总体损失在训练过程中逐渐减小。
  • 所以在同一轮训练中,虽然不同批次之间会由于参数的变化,计算的损失差异可能比较大,而通过训练的目标可以知道,同一轮中越往后的批次,得到的损失理论上应该是越小的。所以累计的不同批次之间的损失当作总体损失,如果总体损失在训练期间不断减小,那么模型正在学习改进
  • 使用每一轮训练好的模型来计算总体损失是否可行?
    • 可行。但是会导致训练非常慢,因为需要在每一轮训练后,计算模型在整个训练集上的损失。
  • 可以使用最后一个批次的损失,来监控模型的训练进度吗?
    • 可以。这个损失通常称为**“当前批次损失”**,但是这个损失不一定能很好地反映整个训练的过程中模型的性能,所以更好的做法是同时监控“当前批次损失”和总体损失。

你可能感兴趣的:(深度学习,人工智能)