故意过度拟合神经网络
Purposely Overfit Neural Network
从技术上讲,给定足够复杂的网络和足够的时间,是否总是有可能将任何数据集过度拟合到训练误差为 0 的点?
神经网络是通用逼近器,这几乎意味着只要存在从输入到输出的确定性映射 f,就总是存在 一组参数(对于足够大的网络)给你的错误是任意接近到最小可能的错误,但是:
- 如果数据集是无限的(它是一个分布),那么最小可获得误差(称为贝叶斯风险)可以大于零,而是一些值 e(几乎是 "overlap" 不同 classes/value).
- 如果映射 f 是不确定的,那么再次存在非零贝叶斯风险 e(这是一种数学方式,表示给定点可以具有 "multiple" 值,具有给定的概率)
- 任意关闭不意味着最小。因此,即使最小误差为零,也并不意味着您只需要 "big enough" 网络即可达到零,您可能总是会得到非常小的 epsilon(但您可以根据需要减少它)。例如,在具有 sigmoid/softmax 输出的分类任务上训练的网络永远无法获得最小对数损失(交叉熵损失),因为您始终可以移动激活 "closer to 1" 或 "closer to 0",但您不能两者都达不到。
所以从数学的角度来看答案是否,从实践的角度-在有限训练集和确定性映射的假设下-答案是是。
特别是当您询问分类的 准确性 时,并且您有有限的数据集,每个数据点都有唯一的标签,那么很容易手动构建一个神经网络,它具有100% 的准确性。然而,这并不意味着可能的损失最小(如上所述)。因此,从优化的角度来看,您没有获得 "zero error".
从技术上讲,给定足够复杂的网络和足够的时间,是否总是有可能将任何数据集过度拟合到训练误差为 0 的点?
神经网络是通用逼近器,这几乎意味着只要存在从输入到输出的确定性映射 f,就总是存在 一组参数(对于足够大的网络)给你的错误是任意接近到最小可能的错误,但是:
- 如果数据集是无限的(它是一个分布),那么最小可获得误差(称为贝叶斯风险)可以大于零,而是一些值 e(几乎是 "overlap" 不同 classes/value).
- 如果映射 f 是不确定的,那么再次存在非零贝叶斯风险 e(这是一种数学方式,表示给定点可以具有 "multiple" 值,具有给定的概率)
- 任意关闭不意味着最小。因此,即使最小误差为零,也并不意味着您只需要 "big enough" 网络即可达到零,您可能总是会得到非常小的 epsilon(但您可以根据需要减少它)。例如,在具有 sigmoid/softmax 输出的分类任务上训练的网络永远无法获得最小对数损失(交叉熵损失),因为您始终可以移动激活 "closer to 1" 或 "closer to 0",但您不能两者都达不到。
所以从数学的角度来看答案是否,从实践的角度-在有限训练集和确定性映射的假设下-答案是是。
特别是当您询问分类的 准确性 时,并且您有有限的数据集,每个数据点都有唯一的标签,那么很容易手动构建一个神经网络,它具有100% 的准确性。然而,这并不意味着可能的损失最小(如上所述)。因此,从优化的角度来看,您没有获得 "zero error".