显示训练曲线的标准差

数据挖掘 神经网络 统计数据 绘图
2022-02-17 14:07:40

我正在训练一个神经网络,我想在训练期间绘制不同指标(MSE……)的演变。为了了解不同训练之间的差异,我使用了几个模型并绘制了平均值和标准差。我的问题如下:我没有找到绘制这条曲线的好方法,也没有在互联网上找到任何好的解释。

让我们用 y 表示要显示的指标,x 是 epoch 的数量。在下图中,阴影区域给出了一个标准偏差。

这是我尝试过的以及为什么我认为它不起作用:

  1. 线性比例不是很好,因为度量跨越了不同的数量级。特别是,早期值远大于晚期值。例如,一种可能性是在第 5 个时期开始曲线,以删除早期的大值,但我更愿意显示所有内容。

    训练曲线:MSE,线性标度

  2. 鉴于前一点,对数刻度似乎更自然,但是与平均值的刻度相比,变化可能很大,具有相似的刻度。由于两个刻度之间的空间是几何分布的,曲线下方的一个标准偏差似乎比上方大得多。这往往会在图形上产生大的尖峰,甚至完全填满曲线下方的区域。

训练曲线:MSE,对数尺度

  1. 我试图显示相对标准偏差(由重新调整)。这是变量的适当标准偏差但是,我不想绘制 z 但实际上是 y 的对数刻度。尽管如此,我认为如果显示得更好,可以绘制相对标准偏差。但是,我不确定它所显示的内容是否真的很直观。更糟糕的问题是,对于较小的值,标准偏差显得非常大(因为我们除以 < 0 的数字)。log10ez=lny

训练曲线:MSE、对数刻度、相对偏差

训练曲线:学习率、对数尺度、相对偏差

  1. 最后,我尝试使用 symlog 标度,但我不确定它是否是一个好的解决方案:如果线性阈值很大,那么我发现它会使图形难以解释。如果它很小,我们会遇到与对数刻度相同的问题。下面是阈值为 0.01 的图。

训练曲线:MSE,symlog scale

结论:以对数刻度显示标准偏差的最佳方法是什么?

1个回答

一种选择是绘制更少的时期。20 个 epoch 之后没有有用的信息,因为在那之后训练和验证性能是相同的。