CS231n 学习笔记(十四)
时间:2019/4/5
内容:迁移学习
课时18:迁移学习
过拟合的原因是数据量太小,但使用迁移学习可以使得不用大数量集也可以训练神经网络,
思想:首先找到一些卷积神经网络,用大数量集训练整个网络,然后把从这个数据集中训练出的提取特征的能力用到更感兴趣的小数据集上。这里数据集只有C个类别(比大数据集少),接着修改从最后一层的特征到最后的分类输出之间的全连接层,需要重新随机初始化最后的矩阵,冻结前面层的权重。现在只需要训练最后一层的线性分类器,让它在你的数据上收敛(适用于自己的数据集数据量小,内容与大数据集相似)
如果数据比较充裕,可以选择微调整个网络在最后一层收敛。在数据集上充分训练之后,可以试着更新整个网络的权值,如果数据较多则可以更新网络的更大一部分,一个通用的策略是,当更新网络时将学习率降低,因为最初的网络参数可能在大数据量上是收敛的,泛化能力已经很强了,你只是希望让它们有微小的调整来适应你的数据及
大部分都不会从头训练模型,而是用CNN在ImageNet上与训练,然后根据任务微调
自己的数据集数据量较小时,下载一些相关的预训练模型,然后要么重新初始化部分模型,或者在你的数据上微调模型
- 最优化:改进训练效果
- 正则化:改变在测试集上的性能
- 迁移学习:使得在小样本的时候训练的一样好