故意过度拟合神经网络



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

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

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

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

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

最新更新