首页 文章

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

提问于
浏览
8

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

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

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

  • 它是'normal'或预期的行为,准确度上升非常快并保持高位突然下降?

  • 即使验证损失仍在减少,我是否应该以最大准确度停止训练?换句话说,使用val_acc或val_loss作为指标来监控提前停止?

看图像:

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

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

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

  • 精度度量衡量y_pred == Y_true的百分比,因此仅对分类有意义 .

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

1 回答

  • 1

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

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

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

相关问题