我应该使用损失或准确性作为早期停止指标吗?

时间:2016-05-10 14:36:42

标签: neural-network deep-learning keras autoencoder

我正在学习和试验神经网络,并希望得到更有经验的人对以下问题的意见:

当我在Keras中训练一个Autoencoder('mean_squared_error'损失函数和SGD优化器)时,验证损失逐渐减少。并且验证准确性正在提高。到目前为止一切都很好。

然而,过了一段时间,损失不断减少,但准确性突然回落到低得多的低水平。

  • 这是'正常'还是预期的行为,准确度上升得非常快并保持高位以突然回落?
  • 即使验证损失仍在减少,我是否应该以最大准确度停止训练?换句话说,使用val_acc或val_loss作为指标来监控提前停止?

见图片:

损失:(绿色= val,蓝色=火车] enter image description here

准确度:(绿色= val,蓝色=火车] enter image description here

更新: 下面的评论指出了我正确的方向,我想我现在更了解它。如果有人能确认以下是正确的,那就太好了:

  • 精确度指标衡量y_pred == Y_true的百分比,因此只对分类有意义。

  • 我的数据是真实和二元功能的组合。精度图上升非常陡然然后回落,而损失继续减少的原因是因为大约5000年左右,网络可能正确地预测了+/- 50%的二进制特征。当训练继续时,在12000年左右,实际和二元特征的预测一起得到改善,因此损失减少,但单独预测二元特征的确不太正确。因此,精度下降,而损失减少。

1 个答案:

答案 0 :(得分:1)

如果您在询问是否使用损失或准确性......那么这就是答案

如果预测是实时的或数据是连续的而不是离散的,那么使用MSE(均方误差),因为这些值是实时的。

但是在离散值的情况下(即)分类或聚类使用准确性,因为给出的值仅为0或1。所以,这里MSE的概念不适用,而是使用准确度=没有错误值/总值* 100.