故意过拟合神经网络

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


回答:

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注