如何在 Keras 神经网络中获得训练和开发错误?
How to get train and dev error in Keras neural net?
为了了解我的模型是过拟合还是欠拟合,我应该如何获取这些值?
例如,当train_error= 0.1
和dev_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
术语错误和损失是同义词
Keras表示训练损失(分别为准确率)为loss
(acc
);验证损失和准确性分别表示为 val_loss
和 val_acc
。
这里的train_error= 0.1
和dev_error=0.25
,或者loss: 0.5306
和val_loss: 1.1438
,是不是不是过度拟合;这只是 泛化差距,即训练集和验证集之间的预期性能差距。引用最近的 blog post by Google AI:
An important concept for understanding generalization is the generalization gap, i.e., the difference between a model’s performance on training data and its performance on unseen data drawn from the same distribution.
过度拟合的迹象特征是当你的验证损失开始增加,而你的训练损失继续减少时,即:
请注意上图中曲线之间的 间隙(双关语)(改编自 Wikipedia entry on overfitting)。
根据上下文,人们可能更愿意监控 指标 而不是下面评论中正确指出的损失,但这是另一个讨论 - 希望你得到这里的想法...
为了了解我的模型是过拟合还是欠拟合,我应该如何获取这些值?
例如,当train_error= 0.1
和dev_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
术语错误和损失是同义词
Keras表示训练损失(分别为准确率)为
loss
(acc
);验证损失和准确性分别表示为val_loss
和val_acc
。
这里的train_error= 0.1
和dev_error=0.25
,或者loss: 0.5306
和val_loss: 1.1438
,是不是不是过度拟合;这只是 泛化差距,即训练集和验证集之间的预期性能差距。引用最近的 blog post by Google AI:An important concept for understanding generalization is the generalization gap, i.e., the difference between a model’s performance on training data and its performance on unseen data drawn from the same distribution.
过度拟合的迹象特征是当你的验证损失开始增加,而你的训练损失继续减少时,即:
请注意上图中曲线之间的 间隙(双关语)(改编自 Wikipedia entry on overfitting)。
根据上下文,人们可能更愿意监控 指标 而不是下面评论中正确指出的损失,但这是另一个讨论 - 希望你得到这里的想法...