K-fold 交叉验证 - 是否在每次折叠后初始化网络?
K-fold Cross-Validation - initialise network after each fold or not?
我基本上了解 k 折交叉验证的工作原理并已开始将其实施到我的 MATLAB 脚本中,但是我有两个问题。
将其用于 select 网络特征时(隐藏单元、权重衰减先验和无迭代)。我应该在每次 'fold' 后重新初始化权重,还是应该将我的下一次训练折叠输入到已经训练过的网络中(它的权重已经针对前一次折叠进行了优化)?
似乎做后者应该会产生较低的错误,因为前一叠数据将是下一叠数据的良好近似值,因此权重将比那些从高斯分布随机初始化的更接近。
此外,在使用 k 折验证验证网络并选择网络超参数等之后,我想开始使用该网络,我认为我应该停止使用 k 折验证并且只是使用所有可用数据训练一次?
非常感谢您的帮助。
是的,您应该在每次折叠后重新初始化权重,以便从 "blank" 网络开始。如果你不这样做,那么每个折叠都会 "leak" 相互重叠,这不是 K-Fold CV 应该做的。
找到最佳超参数后,是的,您可以使用所有可用数据对其进行训练。请记住保留一些 hold-out 测试数据以供最终测试。
我基本上了解 k 折交叉验证的工作原理并已开始将其实施到我的 MATLAB 脚本中,但是我有两个问题。
将其用于 select 网络特征时(隐藏单元、权重衰减先验和无迭代)。我应该在每次 'fold' 后重新初始化权重,还是应该将我的下一次训练折叠输入到已经训练过的网络中(它的权重已经针对前一次折叠进行了优化)?
似乎做后者应该会产生较低的错误,因为前一叠数据将是下一叠数据的良好近似值,因此权重将比那些从高斯分布随机初始化的更接近。
此外,在使用 k 折验证验证网络并选择网络超参数等之后,我想开始使用该网络,我认为我应该停止使用 k 折验证并且只是使用所有可用数据训练一次?
非常感谢您的帮助。
是的,您应该在每次折叠后重新初始化权重,以便从 "blank" 网络开始。如果你不这样做,那么每个折叠都会 "leak" 相互重叠,这不是 K-Fold CV 应该做的。
找到最佳超参数后,是的,您可以使用所有可用数据对其进行训练。请记住保留一些 hold-out 测试数据以供最终测试。