如何提高模型的泛化能力

本博客纯属个人观点,不喜勿喷,也欢迎大神们留言补充。

我们把提高泛化能力的方法分为4类

  1. 数据端
  2. 模型端
  3. 训练过程
  4. 后处理

下面分别从这4个部分进行分类

一、数据端

方法:

1.  data augmentation(CV domain)

直接对原始数据处理

  • 平移
  • 加噪
  • 去噪
  • 翻转
  • 裁剪
  • 旋转
  • 加权
  • 。。。。

间接对原始数据处理,这里主要指按照不同的需求进行特定处理

  • Mixup
  • data aug by reinforcement learning
  • GAN

从online 和offline的角度看,

online:

  • data aug by reinforcement learning
  • GAN
  • dynamic weighting

offline:

  • data transform
  • static weighting by task (determined befoore training)
  • MixUP(有争议,先放在这里了)

二、 模型端

模型复杂度

模型结构

正则化

dropout

distilling

三、训练过程

weight initialization

early stop

cross validation

optimizer selection

loss function (在reinforcement learning最为明显)

transfer 

batch size

batch norm

。。。

四、后处理

ensemble learning

average (multi-models or multi-results for one model )

voting 

 

 

 

 

 

    原文作者:Baoxin_UCAS
    原文地址: https://blog.csdn.net/lingyu666hapy/article/details/101296767
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞