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

标签 tensorflow deep-learning cross-validation

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

最佳答案

Cross-validation是机器学习中防止过度拟合的通用技术。在深度学习模型上做这件事和在线性回归上做这件事没有区别。所有 ML 模型的想法都是一样的。您在问题中描述的简历背后的基本思想是正确的。

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

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

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

关于tensorflow - 深度神经网络中的交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475682/

相关文章:

python - CNN(Python Keras)的训练过程

c++ - 如何使用 C++ 更改 tensorflow 中的 per_process_gpu_memory_fraction?

python - 使用(常量)参数保存/加载 Keras 模型

R:smooth.spline LOOCV-错误取决于数据点的顺序?

python - 使用 coco 数据格式 json 文件进行交叉验证

python - 如何将 RNN 输出反馈到 TensorFlow 中的输入

python - Tensorflow 自动编码器成本不会降低?

python - 如何使用单个 GPU 在 tensorflow python 中同时运行多个模型?

machine-learning - 为什么keras中没有指定DNN的预训练?

python - "Invalid Index to Scalar Variable"- 使用 Scikit Learn 时 "accuracy_score"