【深度学习】科研生活365天,深度学习中的过拟合解析,常见解决方案大盘点

一、过拟合

过拟合的定义:由于模型过于复杂,模型学习能力过强,而用于训练的数据相对于复杂模型来说比较简单,因此模型会去学习数据中隐含的噪声,导致模型学习不到数据集的真正分布。

简单解析:模型在训练集上的准确率很高,但在测试集上的准确率却很低。在模型参数的拟合过程中,由于训练数据中包含抽样误差,训练时,复杂的模型将误差也考虑在内,即将抽样误差也进行了很好的拟合。具体表现:模型在训练集上效果良好,但在测试集上效果较差,模型泛化能力一般。

产生原因:相对于有限的数据,使用了结构过于复杂的网络模型。本质:算法从训练集的统计噪声中不自觉地获取了信息并表达在模型结构的参数中。

过拟合可以用方差偏差权衡来解释。当过拟合发生时,模型的偏差小而方差大,导致模型在测试集上的误差变大。

因此,过拟合是深度学习中经常碰到的一个重要问题,下面我们来看一下常见的过拟合解决方案。

二、常见过拟合解决方法

在深度学习中,过拟合是一个十分常见的问题,因此已经有了许多防止或抑制过拟合的方法。最常见的方法是正则化,如L1、L2正则化。此外,根据深度学习算法的不同,解决的方法也不一样。

在此简要总结一下,深度学习中的一些常见过拟合解决方案。过拟合本质是在训练过程中选取的特征过多,于是从本质上来讲以下四种方法就是选取合适的特征数量。

数据增强

L1和L2正则化

Early stopping

Dropout

1. 如何防止过拟合(模型&数据角度)

(1)增加数据量

最直观与最有效的方式:获取更多的实验数据。过拟合形成的主要原因就是训练集的数据太少,导致无法学习到想要的模型,因此当发生过拟合时,首先应该考虑的就是增加训练集的数据量。理论上来讲:只要数据足够充足,就不会出现过拟合与欠拟合,但是显而易见,数据集的采集和制作有着巨大的工作量。

增加的数据必须是符合要求的实验数据,即与已有数据是独立同分布的。常见的数据扩增方式有以下四种:

采集更多数据

扩增原始数据

数据重采样

生成虚拟数据

(2)简化模型

如果你已经获取了充足的实验数据,但是你的模型仍然过拟合,那么可能是因为你的模型过于复杂。

那么,你可以尝试降低网络的复杂度。通过不断降低模型的复杂度,最终达到一个平衡状态:模型足够简单以至于不会发生过拟合,又足够丰富可以从数据中学习到规律。

选择合适的网络结构,通过减少网络的深度、神经元数量、全连接层数等,降低网络的参数规模。简化模型的另一个好处是能让模型更轻便、训练速度更快,计算速度也会更快。

2. 如何防止过拟合(训练过程角度)

模型出现过拟合的第二个地方可能是在训练阶段,应对的方法包括调整损失函数或模型训练的方式。

(1)Early stopping

在神经网络的训练过程中,如果Epoch过小,那么可能会导致欠拟合,而Epoch过大则会导致过拟合的发生。既然Epoch过大会导致过拟合,那么我们在Epoch超过最佳次数之前就结束,不就可以了!

具体步骤:训练时,当每次Epoch结束时在验证集上进行测试,如果随着Epoch次数的增加发现误差在上升,那么就提前结束训练,将此时的权重作为网络的最终参数。大部分情况下,模型会首先学习数据的正确分布,然后在某个时间点上开始对数据过拟合。通过识别模型是从哪些地方开始发生转变的,就可以在过拟合出现之前停止模型的学习过程。和前面一样,通过查看随着时间推移的训练误差,就可以做到这一点。

如图所示,当测试集误差开始增加时,就应该停止训练了。

3. 如何防止过拟合(正则化角度)

正则化是指约束模型的学习,以减少过拟合的过程。

L1和L2正则化:正则化的一个最强大最知名的特性就是能向损失函数增加“惩罚项”。所谓惩罚是指对损失函数中的某些参数做一些限制。

L1惩罚项:将权重的绝对值最小化

L2惩罚项:将权重的平方值最小化

实践证明,L1和L2正则化可以有效避免模型的过拟合,而且L1正则化可以得到稀疏解,L2正则化可以得到平滑解,这是为什么呢?敬请关注下期文章~

4. 如何防止过拟合(深度学习模型)

对于深度学习模型中的过拟合问题,还可以从以下两个角度出发:Dropout和Dropconnect。

深度学习依赖神经网络处理连续网络层之间的信息,因而从这两个角度入手比较有效。其核心思想是在训练过程中随机让神经元失活或让网络中的连接无效。实验表明:这类方法可以起到和模型集成方法一样的效果,可以帮助模型泛化,有效地减少模型过拟合问题。

Dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。

5. 其他方法

模型剪枝、集成学习、BN、知识蒸馏、Label Smooth等。

综上所述,解决模型过拟合的方法有很多,其中正则化和数据增强是最高效与最常用的技巧。同时,深度神经网络的训练中涉及许多超参数的调整,如学习率、权重衰减系数、 Dropout 比例等,这些参数的选择也会直接影响模型的训练效果。

如何更加有效地解决模型的过拟合问题,最近也出现了一些新的思想和文章,有兴趣的同学可以关注一下相关文献~~

三、结语

过拟合,是我们在模型训练过程中经常会遇到的一个棘手问题,如果不知道怎么应对,确实会让人很头疼。借助本文提到的这些方法,相信应该能帮助你在训练模型的过程中,有效地防止模型过拟合。

欢迎关注、交流,更多深度学习相关知识,精彩不断~

你可能感兴趣的:(【深度学习】科研生活365天,深度学习中的过拟合解析,常见解决方案大盘点)