K-fold交叉验证 - 每次折叠后是否初始化网络?

时间:2017-02-05 13:25:23

标签: matlab validation neural-network training-data

我主要理解k-fold交叉验证是如何工作的,并且已经开始在我的MATLAB脚本中实现它,但是我有两个问题。

当使用它来选择网络功能(隐藏单位,重量衰减之前和我的情况下没有迭代)。我应该在每次折叠之后重新确定权重,或者我应该将我的下一个训练折叠进入已经训练过的网络(它的权重是否已针对之前的折叠进行了优化)?

似乎做后者应该给出较低的误差,因为前一个数据折叠将是下一个的良好近似值,因此权重将比从高斯分布中随机初始化的权重更接近。

此外,使用k-fold验证和选择的网络超级参数等验证了网络,我想开始使用网络,我认为我应该停止使用k-fold验证并且只训练一次,使用所有可用的数据?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

是的,您应该在每次折叠后重新初始化权重,以便从“空白”网络开始。如果你不这样做,那么每个折叠都会“泄漏”到彼此之外,这不是K-Fold CV应该做的。

找到最佳超参数后,是的,您可以使用所有可用数据对其进行训练。请记住保留一些保留测试数据以进行最终测试。