故意过拟合神经网络

tal*_*san 4 regression machine-learning neural-network deep-learning

从技术上讲,给定一个足够复杂的网络和足够的时间,是否总是有可能将任何数据集过度拟合到训练误差为 0 的点?

lej*_*lot 7

神经网络是通用逼近器,这几乎意味着只要存在从输入到输出的确定性映射 f,总会存在一组参数(对于足够大的网络),这些参数会给出任意接近最小可能误差的误差,但是

  • 如果数据集是无限的(它是一个分布),那么最小的可获得误差(称为贝叶斯风险)可能大于零,而是某个值 e(几乎是不同类别/值的“重叠”的度量)。
  • 如果映射 f 是不确定的,那么同样存在非零贝叶斯风险 e(这是一种数学方式,表示给定点可以具有“多个”值,并具有给定的概率)
  • 任意关闭并不意味着最小。因此,即使最小误差为零,也不意味着您只需要“足够大”的网络即可达到零,您最终可能总是得到非常小的 epsilon(但您可以根据需要减少它)。例如,在具有 sigmoid/softmax 输出的分类任务上训练的网络永远无法获得最小的对数损失(交叉熵损失),因为您始终可以将激活“接近 1”或“接近 0”​​,但您无法同时实现这些。

所以从数学的角度来看答案是否定的,从实践的角度来看——在有限训练集和确定性映射的假设下——答案是肯定的

特别是当您询问分类的准确性时,并且您有有限的数据集,每个数据点都有唯一的标签,那么很容易手工构建一个具有 100% 准确性的神经网络。然而,这并不意味着最小的可能损失(如上所述)。因此,从优化的角度来看,您不会获得“零错误”。