迁移学习的两种类型

转载自:https://blog.csdn.net/wmz545546/article/details/77603543
  1. 迁移学习两种类型:
    • ConvNet as fixed feature extractor:利用在大数据集(如ImageNet)上预训练过的ConvNet(如AlexNet,VGGNet),移除最后几层(一般是最后分类器),将剩下的ConvNet作为应用于新数据集的固定不变的特征提取器,输出特征称为CNN codes,如果在预训练网络上是经过ReLUd,那这些codes也要经过ReLUd(important for performance);提取出所有CNN codes之后,再基于新数据集训练一个线性分类器(Linear SVM or Softmax classifier);
    • Fine-tuning the ConvNet:第一步:在新数据集上,替换预训练ConvNet顶层的分类器并retrain该分类器;第二步:以较小的学习率继续反向传播来微调预训练网络的权重,两种做法:微调ConvNet的所有层,或者保持some earlier layers fixed (due to overfitting concerns) ,只微调some higher-level portion of the network;
    • 原理:一般认为CNN中前端(靠近输入图片)的层提取的是纹理、色彩等基本特征,越靠近后端,提取的特征越高级、抽象、面向具体任务。所以更普遍的微调方法是:固定其他参数不变,替换预训练网络最后几层,基于新数据集重新训练最后几层的参数(之前的层参数保持不变,作为特征提取器),之后再用较小的学习率将网络整体训练。
    • 一些开源的Pretrained models:Model Zoo

  • When and how to fine-tune?
    • 四个主要场景:
    • 新数据集小,且与原始数据集相似:要考虑小数据集过度拟合问题;利用CNN codes 训练一个线性分类器
    • 新数据集大,且与原始数据集相似:不用考虑过度拟合,可尝试微调整个神经网络;
    • 新数据集小,并与原始数据集差距大:训练一个线性分类器,而新数据集与原始数据集差距大,work better to train the SVM classifier from activations somewhere earlier in the network
    • 新数据集大,且与原始数据集差距大,使用预训练模型参数,基于新数据集微调整个神经网络

  • Practical advice
    • a few additional things to keep in mind when performing Transfer Learning:
    • Constraints from pretrained models:使用预训练网络,新数据集使用的架构将受限,比如不能随意take out Conv layers from the pretrained network;

    • Learning rates:微调 ConvNet权重(ConvNet weights are relatively good)时的学习率要比新的线性分类器(权重是随机初始化的)的学习率要小;
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值