之前的答案已经被接受,但我回答这个问题只是为了确保事情清楚。我会更深一步,这对先进的人会有帮助。
首先,交叉验证是一种模型选择机制,主要用于选择超参数。更改超参数将影响模型中的参数数量。例如,增加神经网络中的层数可以引入数千个参数(取决于层的宽度)。
其次,几乎任何训练算法都可以有无限数量的可能超参数。为了清楚起见,我举个例子:在 CNN 中,层数是一个超参数,理论上可以取 1 到无穷大之间的任何值,这意味着只要改变这个超参数,我就可以生成无限个模型. 同时,决策树中的层数(深度)是一个超参数,也可以取 1 到无穷大之间的值,这意味着我可以使用决策树生成无限数量的模型,但我们使用决策树的交叉验证但不是cnn!!!!
不要将超参数与参数混淆,交叉验证与参数无关,它仅与超参数和不同的训练算法有关。更改参数的值将由训练算法处理。
让我们回到最初的问题,为什么不使用 CNN 的交叉验证?事实上,这个问题的答案是基于机器学习中一个非常重要的概念。方差误差与偏差误差。假设您有 N 个模型训练,它们都有方差误差和零偏差误差,在这种情况下,使用交叉验证来选择模型是没有用的,但是对模型进行平均很有用。如果您有 N 个模型都有不同的偏差误差(非零),那么使用交叉验证对于选择最佳模型很有用,但平均是有害的。每当您的模型具有不同的偏差错误时,请使用交叉验证来确定最佳模型。每当您的模型存在方差错误时,请使用平均来确定最终结果。
CNN 倾向于过度拟合而不是欠拟合。今天我们知道网络越深越好,但过度拟合是我们害怕的。CNN 是平均而不是选择的好目标,这就是为什么有时他们训练四个或五个模型,然后平均他们的输出。
在文献中研究了选择网络架构的概念。他们清楚地说明了如何选择您的超参数。事实上,如果你有很多数据,就选择更大的模型。
我建议您阅读以下论文: 1- Alex- Hinton 2012 年的论文,Alex 提出他的网络的论文。你会看到他们提出的大多数技巧是处理过度拟合(方差误差)而不是有偏误差。2-超级学习者,预测中的超级学习者这篇论文从数学上解释了什么是交叉验证。许多人认为交叉验证是一组训练/测试实验,它扫描一组参数并返回最佳模型,但他们忽略了这是否足以保证这是我使用可用训练数据可以获得的最佳模型。他们还忽略了交叉验证需要保证返回的模型是超级学习者的所有假设。