对于数据量很小时模型训练方法

在很多情况下,可能由于当前数据的限制或者数据的敏感性,导致所获得的数据很少,针对训练数据过少的情况,可以考虑以下办法

  1. 迁移学习
    通过使用之前在大数据集上经过训练的预训练模型,我们可以直接使用相应的结构和权重,将它们应用到现在的问题上。而之前这个经过预训练的模型,可能使用的不是同一类型的数据。这被称作“迁移学习”, 即将预训练的模型“迁移”到我们的问题中,举例,我们学会了打篮球,现在想学打排球,那么我们就将打篮球时得出的技巧和经验迁移到打排球上。

  2. 特征提取+特征融合+xgboost
    在数据集很少时, 可以考虑用预训练模型做特征提取(不进行任何训练),将提取的特征用作xgboost的输入(xgboost是一种提升树模型,它将很多树模型集成在一起,形成一个很强的分类器,它在处理不平衡数据或者预防overfitting,处理高维特征有很强的优势,这里用其他分类器也可以),效果会比直接用迁移学习要好 。
    使用了特征提取后,可采取特征融合策略,简单理解就是把各种特征拼接在一起,再放入XGBoost

为什么该方法比直接用迁移学习效果好
原因:
1) 少量数据集容易使模型在迁移学习中过拟合
在迁移学习中,由于直接用的过往大量数据作的预模型,故可能涵盖了很多其他特征,因此在直接用迁移学习时,使得数据一些不是很明显的特征也在迁移学习中被放大,从而使得这类特征也被提取,导致模型过拟合
2) 少量数据集使模型处在某个局部最小值,使模型提取特征能力反而没有原来经过大量调试过的PreTrained模型能力好

  1. 数据增强
    对于数据增强的方式,一般可以将图片进行反转,旋转,增加对比度,裁减放大等等,这样就能将一张训练图片衍生出多张图片,从而增大了样本数据。但是,这里也有缺点,即在数据增强后很可能会引入噪音,或者是完全错误的数据

  2. 先验知识
    先验知识也是迁移学习的一种,是把别的模型学习到的权重迁移到自己的模型来,而先验知识则是更多将我们人的知识加入到建模当中,更像是指导模型学习的一种方法

参考文献:
https://zhuanlan.zhihu.com/p/50547038

发布了69 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41636030/article/details/99672580