我目前使用的是过去 100 次迭代的平均损失,但这会导致像损失这样的伪影,即使当前迭代具有平均损失,因为 100 次迭代前的损失是一个很大的异常值。
我考虑过使用不同的间隔长度,但我想知道最后几次迭代的平均值是否真的是绘制损失的正确方法。
有没有常见的替代品?也许使用平均衰减权重?可视化损失的最佳实践是什么?
我目前使用的是过去 100 次迭代的平均损失,但这会导致像损失这样的伪影,即使当前迭代具有平均损失,因为 100 次迭代前的损失是一个很大的异常值。
我考虑过使用不同的间隔长度,但我想知道最后几次迭代的平均值是否真的是绘制损失的正确方法。
有没有常见的替代品?也许使用平均衰减权重?可视化损失的最佳实践是什么?
您可以使用指数移动平均法。此方法在 tensorbaord 中用作平滑损失曲线图的一种方法。
算法如下:
但是这样做有一个小问题。如您所见,S_t 是用起始值初始化的,这使得起始曲线不准确。
绿色曲线是算法的理想曲线,而紫色曲线是预测曲线。曲线在开始时不正确。为了解决这个问题,添加了一个校正因子,从而使算法如下:
这引入了 WeightedCount,它随着时间的推移减少到 0。
指数移动平均线也用于深度学习的其他领域,最值得注意的是一些优化算法。在 Adam、RMSProp 和其他类似的优化器中使用它来平滑梯度,使损失最小的路径成为更直接和直接的路径。