如何在Keras神经网络中获得训练和开发错误?

问题描述 投票:0回答:1

为了理解模型是过度拟合还是欠拟合,我应该如何获得这些值?例如,当train_error= 0.1dev_error=0.25时,模型过度拟合是可以理解的。但是我不知道我的模型提供的结果中哪些表明了所提到的错误。损耗值是表示该度量还是(1-精度)度量?

这是我模型的训练结果的一部分:

Epoch 152/250
100253/100253 [==============================] - 12s 118us/step - loss: 
0.5306 - acc: 0.8568 - val_loss: 1.1438 - val_acc: 0.7550
python machine-learning keras neural-network evaluation
1个回答
1
投票
  1. 术语错误损失是同义词

  2. Keras表示训练损失(分别为准确性)为lossacc);验证损失和准确性分别表示为val_lossval_acc

  3. [train_error= 0.1dev_error=0.25,或loss: 0.5306val_loss: 1.1438,如此处,not表示过度拟合;这只是generalization gap,即训练和验证集之间的预期表现差距。引用最近的blog post by Google AI

    理解泛化的一个重要概念是泛化差距,即模型在训练数据上的性能与在从相同分布中得出的未见数据上的性能之间的差异。

过度拟合的特征签名是您的验证损失开始增加,而训练损失则继续减少,即:

enter image description here

注意上述曲线中的曲线之间的gap(意为双关语)(改编自Wikipedia entry on overfitting)。

取决于上下文,人们可能更愿意监视metric而不是下面的注释中正确指出的损失,但这是另一次讨论-希望您在这里有这个想法...

© www.soinside.com 2019 - 2024. All rights reserved.