神经网络中的过度拟合问题

发布于:2025-07-12 ⋅ 阅读:(19) ⋅ 点赞:(0)

存在的问题

        诺⻉尔奖获得者,物理学家恩⾥科·费⽶有⼀次被问到他对⼀些同僚提出的⼀个数学模型的 意⻅,这个数学模型尝试解决⼀个重要的未解决的物理难题。模型和实验⾮常匹配,但是费⽶却 对其产⽣了怀疑。他问模型中需要设置的⾃由参数有多少个。答案是“4”。费⽶回答道:“我记 得我的朋友约翰·冯·诺伊曼过去常说,有四个参数,我可以模拟⼀头⼤象,⽽有五个参数,我 还能让他卷⿐⼦。"

        这⾥,其实是说拥有⼤量的⾃由参数的模型能够描述特别神奇的现象。即使这样的模型能够 很好的拟合已有的数据,但并不表⽰是⼀个好模型。因为这可能只是因为模型中⾜够的⾃由度 使得它可以描述⼏乎所有给定⼤⼩的数据集,⽽不需要真正洞察现象的本质。所以发⽣这种情 形时,模型对已有的数据会表现的很好,但是对新的数据很难泛化。对⼀个模型真正的测验就 是它对没有⻅过的场景的预测能⼒。

将这个概念用到我们的数字分类的程序上面:

  • 我们⽤来对MNIST数字分类的30个隐藏神经元神经⽹络拥有将近24,000个参数!
  • 我们有100个隐藏元的⽹络拥有将近 80,000 个参数,
  • ⽽⽬前最先进的深度神经⽹络包含百万级或者⼗亿级的参数。

实际例子

        让我们通过构造⼀个⽹络泛化能⼒很差的例⼦使这个问题更清晰。我们的⽹络有30个隐藏 神经元,共23,860个参数。但是我们不会使⽤所有50,000幅MNIST训练图像。相反,我们只 使⽤前1,000幅图像。

        使⽤这个受限的集合,会让泛化的问题突显:

        这看起来令⼈振奋,因为代价函数有⼀个光滑的下降,跟我们预期⼀致。注意,我只是展⽰ 了到迭代期的情况。这给出了很好的近距离理解训练后期的情况,也是出现有趣现象 的地⽅。

        让我们看看分类准确率在测试集上的表现:

        在前200迭代期(图中没有显⽰)中准确率提升到了82%。 然后学习逐渐变缓。最终,在280迭代期左右分类准确率就停⽌了增⻓。

        如果我们只看那个代价,会发现我们模型的表现变得“更 好”。但是测试准确率展⽰了提升只是⼀种假象。就像费⽶不⼤喜欢的那个模型⼀样,我们的⽹ 络在280迭代期后就不在能够推⼴到测试数据上。所以这不是有⽤的学习。我们说⽹络在280 迭代期后就过度拟合(overfitting)或者过度训练(overtraining)了。

        如果我们直接比对在测试集上的代价趋势,我们可以看到:

        我们可以看到测试集上的代价在15迭代期前⼀直在提升,随后越来越差,尽管训练数据集 上的代价表现是越来越好的。这其实是另⼀种模型过度拟合的迹象。尽管,这⾥带来了关于我 们应当将15还是280迭代期当作是过度拟合开始影响学习的时间点的困扰。从⼀个实践⻆度, 我们真的关⼼的是提升测试数据集上的分类准确率,⽽测试集合上的代价不过是分类准确率的 ⼀个反应。所以更加合理的选择就是将280迭代期看成是过度拟合开始影响学习的时间点。

        从另一个层面,我们看下训练数据的准确率情况:

                

        准确率⼀直在提升接近100%。也就是说,我们的⽹络能够正确地对所有幅图像进⾏分 类!⽽在同时,我们的测试准确率仅仅能够达到82.27%。所以我们的⽹络实际上在学习训练数 据集的特例,⽽不是能够⼀般地进⾏识别。我们的⽹络⼏乎是在单纯记忆训练集合,⽽没有对 数字本质进⾏理解能够泛化到测试数据集上。

        过度拟合是神经⽹络的⼀个主要问题。这在现代⽹络中特别正常,因为⽹络权重和偏置数量 巨⼤。为了⾼效地训练,我们需要⼀种检测过度拟合是不是发⽣的技术,这样我们不会过度训 练。并且我们也想要找到⼀些技术来降低过度拟合的影响。

  • 检测过度拟合的明显⽅法是使⽤上⾯的⽅法——跟踪测试数据集合上的准确率随训练变化 情况。如果我们看到测试数据上的准确率不再提升,那么我们就停⽌训练。
  • ⼀般来说,最好的降低过度拟合的⽅式之⼀就是增加训练样本的量。有了⾜够的训练数据,就算是⼀个规模⾮常⼤的⽹络也不⼤容易过度拟合。不幸 的是,训练数据其实是很难或者很昂贵的资源,所以这不是⼀种太切实际的选择。

网站公告

今日签到

点亮在社区的每一天
去签到