我对ML和神经网络都是陌生的,并且一直在阅读'http://neuralnetworksanddeeplearning.com',它在第3章中解决了过度拟合问题。
作者在每个时期后在测试集上使用示例模型,因此他可以构建图以显示训练准确性和测试准确性(或成本变化)。
我目前正在编辑程序,以使我的NN在每2个时期后在测试集上运行,然后我将构造一个时期与测试准确性的关系图。我想这太频繁了,但我不确定...
作者指出,一旦测试准确性的变化停止增加,那么就会出现过度拟合(或者训练集的成本也停止增加)的情况。因此,我认为我将编写代码以检测何时达到测试准确度稳定状态,以便随后我可以自动切换训练集(完全新颖或与k折交叉验证不同的折叠倍数)-但是可能有更好的方法吗?
在此先感谢您的任何建议和指导:)
最佳答案
当测试/验证损失停止改善时,这称为早期停止。伊恩·古德费洛(Ian Goodfellow)等人的Deep Learning Book Chapter 7等在7.8节中说明模型正则化,包括提前停止。
Keras有一个回调来执行此检查并停止训练,并且恰当地命名为EarlyStopping。默认情况下,它将监视val_loss
并在停止改进时停止训练。