2017-06-10 38 views
0

如何在深层神经网络中进行交叉验证?我知道要执行交叉验证来训练除了一个以外的所有折叠,并在排除的折叠上测试它。然后做这个k倍的时间,并平均每个倍数的accuries。你如何为每次迭代做到这一点。你是否每次更新参数?或者你为每次迭代执行k-fold交叉验证?或者是每个训练都是在所有褶皱上进行,但是有一次迭代被认为是一次迭代?深层神经网络中的交叉验证

+1

您可以像其他任何ML模型一样进行K-Fold Cross Validation,您只需要训练K模型。这与迭代无关。 –

+0

这是什么意思?因为我们每次迭代更新参数的权利?那么交叉验证是否被认为是一次迭代? – Chaine

+1

不,更新参数与交叉验证无关! –

回答

2

Cross-validation是ML中防止过拟合的一般技术。在深度学习模型上进行并在线性回归上做这件事没有区别。这个想法对于所有ML模型都是一样的。你在问题中描述的简历背后的基本理念是正确的。

但问题你如何做到这一点每次迭代没有任何意义。 CV算法没有涉及训练时的迭代。你训练了你的模型,然后才评估它。

你是否在每一次更新参数?。你训练相同的模型k次,而且很可能每次你有不同的参数。


在DL中不需要CV的答案是错误的。 CV的基本思想是更好地估计模型在有限数据集上的表现。所以如果你的数据集很小,训练k个模型的能力会给你一个更好的估计(缩小的是你花费了k倍多的时间)。如果你有100毫升的例子,最有可能有5%的测试/验证集已经给你一个很好的估计。

+0

44k样本是否足够?我的意思是,迭代意味着更新参数。因此,如果在每次更新中更新参数,那么这不会被视为迭代? – Chaine

+0

@Chaine * 44k样本是否足够?*除了你以外,没有人可以回答这个问题。 –

+0

我的意思是,如果使用holdout而不是交叉验证就足够了 – Chaine