如何防止过拟合

什么叫过拟合,具体现象是什么?

某个假设/模型的预测在训练集上有很好的表现,却在训练集外的样本上不符预期。

造成这个现象的原因,又有什么解决方法?

过拟合应该是某个任务中数据样本与模型两者之间相互作用的结果,不能简单单独地抛开一个谈另一个。

数据方面

目前阶段的深度学习主要还是以数据驱动的,是它的优势也是它的弊端。所以数据的质量和数量极其重要,在收集、标注、整理数据过程中,多么慎重都不为过。

  1. 样本本身有严重错误,比如标签错误。
    检查数据,除了初始状态,也应重视中间处理过程。检查每一步的操作是否符合你本意预期。
  2. 数据本身质量过差,存在严重噪声,导致数据真实特征被“淹没”。
    原数据上做降噪,或者重新准备数据。
  3. 数据采样方法存在明显错误,用于训练和测试的样本分布差异过大,比如在 A 类样本上训练,却应用于 B 类样本进行推断。
    在数据充足分布情况也还不错的时候,犯这个错误应该不太容易。
  4. 数据绝对数量过少,无法代表所对应的标签情况。
    针对任务采用合适地方法进行适当地扩增是一个解决办法;
    也可以自行生成仿造一些数据,如 OCR 识别的训练数据一部分由人工标注,一部分(或者说可能大部分)代码生成;
    GAN 在某些情况可以增加样本量。
模型方面

以下几种情况中的原因和解决办法其实是有重叠的。

  1. 参数过多,模型对于当前待处理的任务来讲过于复杂,表达能力过强。
    适当调整卷积层,比如小卷积核代替大卷积核、1×3 和 3×1 代替 3*3 ;
    增加正则化项;
    增加 BN 层(BN 层的本意是为了加速训练以及对初始值不敏感设计的);
    Dropout 层(比较适合全连接层,很少在卷积层上应用)。
  2. 反向传播算法更新参数过程中,收敛到了过于“复杂”的决策面上,模型学习的特征中噪声影响占比增大,没有学到任务中样本普遍存在的特征,反而“过度讨好”当前训练样本,拟合了其中特有的一些“特征”;
  3. 训练没有及时停止。
    根据 loss 的下降情况,还有在测试集上的表现及时停止训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值