从技术角度讲,给定一个足够复杂的神经网络和足够多的时间,是否总是有可能将任何数据集过拟合到训练误差为0的程度?
回答:
神经网络是通用逼近器,这意味着只要存在从输入到输出的确定性映射f,就总会存在一组参数(对于足够大的网络)使得误差可以任意接近最小可能误差,但是:
- 如果数据集是无限的(它是一个分布),那么可获得的最小误差(称为贝叶斯风险)可能大于零,而是某个值e(基本上是不同类别/值“重叠”的度量)。
- 如果映射f是非确定性的,那么贝叶斯风险e同样不为零(这是数学上表达一个给定点可以具有“多个”值,具有给定概率的方式)。
- 任意接近并不意味着最小。因此,即使最小误差为零,也不意味着你只需要“足够大”的网络就能达到零,你可能总是会得到一个非常小的epsilon(但你可以一直减少它)。例如,一个用于分类任务的网络,具有sigmoid/softmax输出,永远无法获得最小的对数损失(交叉熵损失),因为你总是可以将你的激活值“更接近1”或“更接近0”,但你无法达到这些值中的任何一个。
因此,从数学角度来看,答案是否,从实践角度来看——在有限训练集和确定性映射的假设下——答案是是。
特别是当你询问关于分类准确率的问题,并且你有一个有限的数据集,每个数据点都有唯一标签时,很容易手动构建一个神经网络,使其具有100%的准确率。然而,这并不意味着最小可能的损失(如上所述)。因此,从优化角度来看,你并没有获得“零误差”。