仅当验证得到改善时,我才能更新keras神经网络的权重吗?

时间:2019-09-01 15:08:37

标签: validation tensorflow keras neural-network backpropagation

我正在训练喀拉拉邦的神经网络,并且达到了经典的极限-我的训练精度会随着时期的增加而提高,但我的验证准确性会在9个时期后下降(参见图)。

enter image description here

我想知道是否可以通过执行以下操作来避免降低验证准确性:如果该时期导致验证准确性的提高,则使keras网络仅在每个时期之后接受权重的更改,否则重置为状态在时代之前?我认为验证开始出现很大的分歧,因为在每个时期> 9之后,神经网络的权重都偏离了与验证数据的相似性。

那么,我的建议是一种好习惯吗,我可以在keras中实现它吗(是否有回调或选项允许我仅在验证得到改善时才更新网络)?

侧面问题:我的建议是否违反了“不使用验证数据进行培训”的原则?因为我隐式地将神经网络的性能作为验证数据的函数。

1 个答案:

答案 0 :(得分:0)

验证集的目的是让您了解模型通过使用训练数据进行学习而实现的可概括性。您没有验证数据集。如果您的验证数据是训练数据的随机样本,那么最好的选择就是修改您的体系结构。

简而言之,如果您希望基于验证数据来训练模型,则在训练集上训练模型,然后获取结果模型,然后在验证数据上训练它(即使验证数据成为训练数据) )。显然,这不符合验证集的要求。