如何从 train/val 损失和精度曲线中选择最佳模型?
How to choose the best model from train/val loss and accuracy curves?
在深度学习中我们应该根据train/val损失和准确率来选择最好的模型,但是我怎么知道哪个点是最好的呢?
它是否只取决于 val 准确性而不考虑其他指标?
还有两个相关问题:
最佳 train/val 损失和准确度曲线是什么样子的?
如果train loss在减少,train accuracy在增加,但是训练很长时间后val loss在增加,而val accuracy停止增加,怎么办?
看起来像这样:
- train accuracy
- train loss
- val accuracy
- val loss
首先,您需要根据 development/validation 数据集上的结果选择模型。所以用val accuracy和val loss来判断模型的性能。
在某种程度上,较高的 val 准确性通常与较低的 val 损失相关。那是因为你的loss是用来衡量预测结果和ground-truth之间的差异的。
不同的问题用不同的指标来衡量,就像我们在机器翻译中经常使用BLEU分数一样,你需要阅读一些关于你的研究领域的论文才能知道哪个指标受欢迎。
train loss减少和val loss增加是模型训练中很正常的现象,这通常意味着你的模型过拟合了。它学习了太多只出现在训练数据集中而不是整个数据集中的特征。
关于过拟合的处理,有early-stopping、drop layers等很多方法,你可以google。
在深度学习中我们应该根据train/val损失和准确率来选择最好的模型,但是我怎么知道哪个点是最好的呢?
它是否只取决于 val 准确性而不考虑其他指标?
还有两个相关问题:
最佳 train/val 损失和准确度曲线是什么样子的?
如果train loss在减少,train accuracy在增加,但是训练很长时间后val loss在增加,而val accuracy停止增加,怎么办?
看起来像这样:
- train accuracy
- train loss
- val accuracy
- val loss
首先,您需要根据 development/validation 数据集上的结果选择模型。所以用val accuracy和val loss来判断模型的性能。
在某种程度上,较高的 val 准确性通常与较低的 val 损失相关。那是因为你的loss是用来衡量预测结果和ground-truth之间的差异的。
不同的问题用不同的指标来衡量,就像我们在机器翻译中经常使用BLEU分数一样,你需要阅读一些关于你的研究领域的论文才能知道哪个指标受欢迎。
train loss减少和val loss增加是模型训练中很正常的现象,这通常意味着你的模型过拟合了。它学习了太多只出现在训练数据集中而不是整个数据集中的特征。
关于过拟合的处理,有early-stopping、drop layers等很多方法,你可以google。