深度神经网络中的交叉验证

Cha*_*ine 7 cross-validation deep-learning tensorflow

如何在深度神经网络中进行交叉验证?我知道执行交叉验证将在所有折叠上训练它,除了一个折叠并在排除的折叠上测试它。然后对 k 次折叠执行此操作,并平均每次折叠的准确率。您如何为每次迭代执行此操作。您是否在每次折叠时更新参数?或者您对每次迭代执行 k 折交叉验证?或者对所有折叠的每次训练都被视为一次迭代?

Sal*_*ali 1

交叉验证是机器学习中防止过度拟合的通用技术。在深度学习模型上进行和在线性回归上进行没有区别。对于所有机器学习模型来说,这个想法都是一样的。您在问题中描述的简历背后的基本思想是正确的。

但是如何为每次迭代执行此操作的问题没有意义。CV 算法中没有任何内容与训练时的迭代相关。您训练了模型,然后才对其进行评估。

每次折叠时都会更新参数吗?。您训练相同的模型 k 次,很可能每次都会有不同的参数。


DL 中不需要 CV 的答案是错误的。CV 的基本思想是更好地估计模型在有限数据集上的表现。因此,如果您的数据集很小,训练 k 个模型的能力将为您提供更好的估计(缩小规模意味着您花费了大约 k 倍的时间)。如果您有 1 亿个示例,很可能拥有 5% 的测试/验证集已经可以给您一个很好的估计。