CNN迁移学习

Learning and Transferring Mid-Level Image Representations using Convolutional Neural Networks

这是2014年发在CVPR上的一篇论文,主要解决一个问题:深度学习需要大量的数据,对于小的数据集,如何进行深度学习训练?作者提出了可以在大型数据集(如ImageNet)上进行预训练,然后将训练好的网络权重迁移到小的数据集,即用小的数据集对网络进行微调,从而使网络可以适用于小的数据集。

1.引入
2012年CNN在ImageNet竞赛(ILSVRC-2012)取得巨大进展,但它需要大量有标签数据(120万,1000类)
是否每次训练都需要如此大规模数据?
对于小型数据集如何做?(Pascal VOC: 5k训练集,5k验证集,20个类)
作者提出:将在大规模数据训练的CNN网络学习到的图像表示迁移到小型数据集上。

2.迁移CNN权重
CNN中间层可看做图像表示的提取器(extractor),它可以在源数据集(ImageNet)中进行预训练,并应用到目标数据集(Pascal VOC)中。如果直接将在ImageNet上训练的网络直接应用到Pascal VOC上可能存在一些问题,因为源数据集与目标数据集可能存在很大差别。例如:源数据集(ImageNet)和目标数据集(Pascal VOC)图像的分布以及标签可能都不同(如物体种类,图像视角等),另外两个数据集中不同品种的狗可能都被标记为”dog”

3.网络
下图是AlexNet的结构,用于图像分类,参见

http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks
它包括5个卷积层,3个全连接层(最后一层是softmax)
使用的数据集:训练集:120万, 验证集5万, 测试集15万 ,一共1000类
AlexNet

再次回到之前的问题,对于一个小的数据集PASCAL VOC如何进行深度学习训练?其实我们可以首先利用ImageNet这样一个百万量级的数据集进行深度学习训练,但是训练好之后如何直接将它用到PASCAL VOC上效果可能不好,因为 ImageNet和PASCAL两个数据集图像的分布和标签可能都不同。对于这个问题,我们可以利用小的数据集PASCAL VOC对(在ImageNet上训练好的)网络进行微调,使这个网络可以用于小的数据集。具体如下:

3.1网络结构
去掉AlexNet最后一层FC8(softmax层,有1000类),增加两个全连接层Fca,FCb,FCb为softmax层,最后两层称为adaptation layer。示意图如下:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值