本文是Deep Learning Course总结系列的第三篇,在防止过拟合,降低训练集和测试集间输出误差的解决方案上,除了正则化处理还可以采用集成学习和迁移学习的方法。本文的主要内容是对集成学习和迁移学习进行介绍。
本系列前两篇传送门:第一篇 [Deep Learning] 神经网络基础;第二篇 [Deep Learning] 卷积神经网络 CNNs。
集成学习
在kaggle等比赛或应用中使用集成学习最常见的方法是直接对不同模型的训练结果进行综合平均,这一方法无需重新训练模型但能够有效提升模型效果。当然除此之外还有一些其他的集成学习的方法。


Stacking
交叉验证得到oof
Blending
留一验证得到oof
Stacking为何更容易过拟合
迁移学习
当训练数据集很小样本不足时,训练全新的网络往往出现对现有数据的过拟合,网络泛化程度低的问题。这时,更好的方案是将由大量类似数据训练的网络迁移过来进行使用。当使用非常小的数据集进行迁移学习时,网络各层权重保持不变,只需要重新修改初始化值进行训练,进行迁移时拥有的数据集越大可以训练的层数越多。注意在进行网络微调(finetuning)时应采用更低的学习率,通常可以从原学习率的1/10开始。


实际上,现有的系统模型例如目标检测,图片主旨提取等往往都是直接使用已经训练好的图像分类CNN,在其基础上新的部分迁移成为新的模型。

网友评论