machine-learning - 故意过度拟合神经网络

标签 machine-learning neural-network deep-learning regression

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

最佳答案

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

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

因此,从数学角度来看,答案是,从实践角度来看 - 在有限训练集和确定性映射的假设下 - 答案是

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

关于machine-learning - 故意过度拟合神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841029/

相关文章:

ios - Apple Vision框架–从图像中提取文本

python - 使用 Tensorflow C++ API 执行在 skflow 中训练的模型

python - tensorflow/keras 神经网络中的复杂输入/输出是可能的吗?

java - NeuroPH GPS 训练套件

python-3.x - 在 Python3 中使用 Keras 优化 CNN 的架构

python - Keras 卷积神经网络转换为 CoreML 模型的输入是多数组而不是图像?

python - 如何使用pycaffe重构caffe net

r - 使用神经网络预测新数据的类别

python - 如何强制 sklearn CountVectorizer 不删除特殊字符(即 #、@、$ 或 %)

java - 神经网络输入顺序,重要吗?