这篇论文讲的是迁移学习在图像分类任务中的应用,作者强调这是一种通用型的迁移学习,也就是说这种方法不会为特定的数据集做特殊的处理,不同等级的预训练模型在往其他数据集上迁移时均采用相同的处理的方法,以此来证明BiT这种方法的普适性。

方法

上游预训练模型

上游预训练的模型规模体现在训练数据的大小,而不是模型的大小。作者试验了几种模型,默认采用ResNet152x4。论文中按照数据的大小,分别训练的BiT-S、BiT-M和BiT-L三种规模的预训练模型,分别对应的数据集是ILSVRC-2012(1.3M)、ImageNet-21K(14M)和JFT(300M)。

预训练模型采用了Group Normalization和Weight Standardization。作者给出了不使用Batch Normalization的两个理由:1. 训练模型会使用分布式,使用BN的话无法利用到大Batch Size的优势,因为不同卡之间没有同步;2. BN需要更新运行中的数据,不适合用于任务迁移。

迁移到下游任务

训练好上游网络后,需要把网络fine-tune到下游任务中,论文采用了一种叫做BiT-HyperRule的启发式方法去选择和调整几个重要的训练超参——训练周期长度、数据分辨率和是否使用MixUp数据增强。这种方法是通用的,只会在某些不同情况下做一下区分,调整的方法如下:

  1. 数据分辨率。小于96×9696\times9696×96的分辨率,先将图片resize到160×160160\times160160×160,再随机剪切出128×128128\times128128×128的方框;对于大于96×9696\times9696×96的分辨率,先将图片resize到512×512512\times512512×512,再随机剪切出480×480480\times480480×480的方框。
  2. 训练周期长度。对于小任务数据集(小于20K),训练500个step;对于中等数据集(大于20K小于500K),训练10K个step;对于大数据集(大于500K),训练 20K个step。在训练总步长的30%、60%和90%时分别降到原先的0.1。
  3. MixUp数据增强。在中型和大型数据集上使用,小型数据集上不使用。其中,α=0.1\alpha = 0.1α=0.1。

在训练时,数据的预处理包括resize到正方形,随机剪出一个小一些的正方形,再随机水平翻转;在测试时只需将图片resize到一个固定的大小。在训练方式上,数据的输入分辨率和Fine-tune借鉴了FixRes的训练方法。

另外,作者发现,在下游任务fine-tune时,并不需要使用其他正则方法,包括优化器的weight decay或者DropOut。

实验

在上游预训练模型上,对于任何的数据集,论文均使用ResNet-152架构,其中基本Block的中间层channel会放大4倍。论文使用统一的训练超参:带momentum的SGD,初始学习率为0.03,momentum为0.9;输入数据的大小为224×224224\times224224×224,BiT-S和BiT-M训练了90个epoch,在第30、60和80代时将学习率除以10,BiT-L训练了40个epoch,在第10、23、30和37代时将学习率除以10。Batch size是4096,在谷歌云上使用了512个TPUv3,每张卡8张图片。训练开始阶段还使用了warm-up的方法在前5000个step上逐渐将学习率线性上升到初始值(0.03 * batch_size / 256)。预训练时,优化器的weight decay设为0.0001。

在下游任务迁移的Fine-tune中不使用weight decay,仍然采用SGD,初始值设为0.003,momentum为0.9,batch size为512。其他的超参设置参考上一个部分的调整策略。

在实验上,这里只贴出BiT-L模型迁移到一些常见的图像分类数据上的结果。如表格1所示。其他的实验和一些分析请读者自行阅读论文的实验部分。

表格1. BiT-L模型在一些分类数据集上Top-1准确率

从表1中可看出,在JFT-300M数据集上预训练的BiT-L模型迁移到其他数据集时,相比之前通用方法的SOTA,均有不小的准确率提升,证明了BiT方法在多种任务上的普适性。但是相比于专门方法的SOTA,准确率还差一些。这里的通用方法指的是模型和算法采用了与数据任务无关的相同方法(BiT也是),专门方法指的是在某个数据集上训练时,有条件地使用了只适合该数据集的特殊处理方法(对其他数据集并不适用)。

Big Transfer (BiT)论文阅读笔记相关推荐

  1. A Survey on Transfer Learning 论文阅读笔记与总结

    一.引入 第一作者:Sinno Jialin Pan,南洋理工大学副教授,中大数学学士.硕士,香港科技大学博士,研究方向:迁移学习 期刊:IEEE TRANSACTIONS ON KNOWLEDGE ...

  2. 【论文阅读笔记】Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

    摘要: 本文主要研究训练和测试类别不相交时(即没有目标类别的训练示例)的对象分类问题.在此之前并没有对于毫无关联的训练集和测试集进行对象检测的工作,只是对训练集所包含的样本进行分类.实验表明,通过使用 ...

  3. Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文阅读笔记

    Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文阅读笔记 目录 Arbitrary Style ...

  4. Visual Attribute Transfer through Deep Image Analogy论文阅读笔记

    Visual Attribute Transfer through Deep Image Analogy论文阅读笔记 介绍 论文提出了一种新的两张图片直接进行视觉属性迁移的方法.该方法针对的是两张具有 ...

  5. DGP 论文阅读笔记

    DGP 论文阅读笔记 论文题目:Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation Ex ...

  6. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  7. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

  8. DnCNN论文阅读笔记【MATLAB】

    DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...

  9. Learning Multiview 3D point Cloud Registration论文阅读笔记

    Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...

最新文章

  1. 华为手机如何升级鸿蒙系统_华为杨海松:明年所有华为自研设备升级鸿蒙系统...
  2. OJ系列之---IP与整数之间的转换
  3. php forms 上传更新json_通达OA任意文件上传漏洞详细分析
  4. 大学计算机应用技术基础,大学计算机应用技术基础实践教程(Windows7+Office2010/21世纪高等学校计算机规划教材...
  5. 腾讯企业邮箱报错 smtp.exmail.qq.comport 465, isSSL false
  6. 使用Spectre.Console创建漂亮的控制台应用程序
  7. 运行shell脚本时怎么知道jdk路径_Shell写脚本关于ssh执行jar包,需要刷新JDK路径的问题...
  8. ant java 返回_使用Ant自动化我们的java项目生成
  9. 程序代码移植和烧录需要注意什么_网站定制化开发需要注意什么?
  10. 什么是类加载,又有哪些类加载器你真的了解吗?
  11. java super实例_Java 的 super 学习的一个实例
  12. python账户密码_python02 用户名密码
  13. 如何获取ezui tree 所有子节点
  14. Java Web 后端技术
  15. android编程好难,自学Android编程入门难吗
  16. sklearn笔记18决策树gini系数
  17. MailConnectException: Couldn‘t connect to host
  18. Android:将鼠标右键点击事件设置为返回功能
  19. 摩斯密码解密py脚本
  20. VSCode Run code插件运行机制和配置文件的意思解释

热门文章

  1. 如何基于Flink+TensorFlow打造实时智能异常检测平台?只看这一篇就够了
  2. 谁敢用普通话把这首诗读出来,笑到肚子痛!
  3. 产品必须创新?大多数情况我们只需要模仿就能赚钱了
  4. 计蒜客——闯关游戏 SPFA找最长路
  5. research gap
  6. CUDA学习(九):共享内存
  7. 华为发布新品牌“坤灵”,什么来头?
  8. exp数据导出,imp数据导入
  9. 各指数的历史-市盈率平均估值
  10. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》.(吴亚峰).[PDF]ckook