1 什么是迁移学习
迁移学习TL(Transfer Learning)是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习,可以将已经学到的模型参数通过某种方式来分享给新模型从而加快并优化模型的学习效率。
2 迁移什么
在预训练模型中存在各种特征数据与权重信息、有些是与分类识别的对象本身关联比较紧密的特征数据与权重信息,有些是一些比较共性的特征数据与信息,是可以被不同的任务或者对象之间共享的,迁移学习就是要迁移那些共性特征数据与信息,从而避免再次学习这些知识,实现快速学习。简单点说迁移学习主要是实现卷积层共性特征迁移。
3 怎么迁移
4 什么时候使用迁移
当我们有相似的任务需要完成的时候,我们可以使用预训练的相关模型,在此基础上进行迁移学习即可,
在实际使用中我们把预训练的网络称为base-network,把要迁移的前n层复制到一个到目标网络(target network),然后随机初始化目标网络的余下各层、开始训练进行反向传播、反向传播时候有两种方法可以使用:
- 把前面n层冻结forzen、只对后面的层进行训练,这种方法适合少的样本数据,而且随着层冻结n数值增大、网络性能会下降,这种是单纯的迁移学习。
- 不冻结前n层、全程参与训练不断调整它们的参数,实现更好的网络性能这种方法称为迁移学习+fine-tuning。