tensorflow - 批量梯度下降的交叉验证

标签 tensorflow machine-learning cross-validation gradient-descent

我有一个关于使用批量梯度下降和交叉验证的问题。

当使用批量梯度下降时,数据被分成多个批处理,用于训练模型和更新参数。 另一方面,交叉验证包括将训练数据分割为多个折叠,并使用某些折叠训练模型并使用其余折叠进行测试。

在同一训练过程中使用这两种技术有意义吗?

最佳答案

您正在将苹果与橙子混合在一起。无论您使用什么监督训练技术(无论是批量、小批量还是随机梯度下降),您仍然需要将数据分为训练集、验证集和测试集。 (顺便说一句,批量梯度下降技术上是指在整个数据集上计算梯度,您所指的称为小批量)。

使用 k 折交叉验证时,您只需不对数据的哪一部分用于训练、哪一部分用于验证进行硬编码即可。这些分割在 k 次循环的每次迭代中都会发生变化。

为了回答你的问题,是的,将批量梯度下降(或更确切地说小批量)与交叉验证结合起来是有意义的。你总是需要选择一些训练算法和一种将数据分成不同(训练、测试、验证)集的方法,并且这两个任务并不真正相互依赖(但当然,k 倍交叉验证会增加你的训练时间,因此如果您选择缓慢的训练算法,您最终可能会完成一项需要太多时间的任务)。

关于tensorflow - 批量梯度下降的交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60038639/

相关文章:

javascript - 从 Tensorflow.js 文本毒性检测模型返回 'predictions'

machine-learning - 使用 Vowpal Wabbit 忘记单个示例

python - ValueError : Error when checking target: expected dense_13 to have shape (None, 6) 但得到形状为 (6, 1) 的数组

r - `caret' 中的混淆矩阵和归一化互信息 (NMI) : Linear discriminant analysis, 朴素贝叶斯和分类树

python - 学习 : Get last split from timeSeriesSplit

python - 在 tensorflow 中,如何在不实际训练的情况下评估神经元网络

python - 类型错误 : minimize() missing 1 required positional argument: 'var_list'

python - 如何仅将权重设置为 keras 中神经元前半部分的层?

python-3.x - 尽管使用不同的 random_state 值,为什么分层 kfold 生成相同的分割?

python - 如何编写高效的自定义 Keras 数据生成器