深度学习笔记:欠拟合、过拟合

防止过拟合(一):正则化
防止过拟合(二):Dropout
防止过拟合(三):数据增强

前言

这里先介绍一个名词,模型容量:通俗的讲,模型的容量或表达能力,是指模型拟合复杂函数的能力。当模型的容量越大时,函数的假设空间就越大,就越有可能找到一个函数更逼近真实分布的函数模型。
注:在卷积神经网络中,模型容量通常由网络层数、待优化参数的量来衡量。

欠拟合、过拟合

(1)当模型的容量过大时,网络模型除了学习到训练集数据的模态之外,还把额外的观测误差也学习进来,导致学习的模型在训练集上面表现较好,但是在未见的样本上表现不佳,也就是泛化能力偏弱,我们把这种现象叫做过拟合(Overfitting)。
(2)当模型的容量过小时,模型不能够很好的学习到训练集数据的模态,导致训练集上表现不佳,同时在未见的样本上表现也不佳,我们把这种现象叫做欠拟合(Underfitting)。

奥卡姆剃刀原理

那么在深度学习过程中,如何去选择合适的模型的容量呢?

统计学习理论很难给出神经网络所需要的最小容量,但是我们却可以根据奥卡姆剃刀原理(Occam’s razor)来指导神经网络的设计(也就是模型容量的选择)。

奥卡姆剃刀原理是由 14 世纪逻辑学家、圣方济各会修士奥卡姆的威廉(William of Occam)提出的一个解决问题的法则 。用在神经网络设计过程中,也就是说,如果两层的神经网络结构能够很好的表达真实模型,那么三层的神经网络也能够很好的表达,但是我们应该优先选择使用更简单的两层神经网络,因为它的参数量更少,更容易训练、更容易通过较少的训练样本获得不错的泛化误差。

模型设计

通过验证集可以判断网络模型是否过拟合或者欠拟合,从而为调整网络模型的容量提供判断依据。
对于神经网络来说,网络的层数参数量是网络容量很重要的参考指标。
因此,在模型设计过程中,解决过(欠)拟合的一般方法是:
(1)当发现模型过拟合时,需要减小网络的容量。可以通过减少网络的层数,减少每层中网络参数量的规模实现。
(2)当发现模型欠拟合时,需要增大网络的容量。可以通过增加网络的层数,减少每层网络参数来实现。

为了演示网络层数对网络容量的影响,我们做了一个可视化的决策边界的而分类实验,实验效果如下:
在这里插入图片描述
实验结论:
如图中所示,可以看到,随着网络层数的加深,学习到的模型决策边界越来越逼近训练样本,出现了过拟合现象。对于此任务,2 层的神经网络即可获得不错的泛化能力,更深层数的网络并没有提升性能,反而过拟合,泛化能力变差,同时计算代价更高

发布了45 篇原创文章 · 获赞 50 · 访问量 3519

猜你喜欢

转载自blog.csdn.net/wjinjie/article/details/104849774