首先问大家三个简单的问题。

这是什么?

是大象的皮。

这又是什么?

是猫。

那下面这个呢?

相信大部分人都会觉得,这是一只猫,一只有着大象外皮纹路的猫。

我们当然希望人类在图像问题上的好朋友,卷积神经网络,也会这么想。事实上呢?看看在ImageNet上预训练的ResNet-50网络对最后一张图给出的结果:

  • 63.9% Indian elephant
  • 26.4% indri
  • 9.6% black swan

令人失望!我们在ImageNet这样的大数据集上一顿暴训,它还是睁着眼睛告诉我们这是一只大象。

划重点!这不是简单的failure case,而是近两年研究者发现的卷积神经网络在ImageNet预训练后出现的对于颜色和纹理的偏好现象。这与人类不同,目前普遍认为,人类主要是通过形状来辨别物体的。对于上面这种形状和纹理有冲突(texture-shape cue conflict)的图像,卷积神经网络更倾向用颜色和纹理来进行预测,而非形状

研究人员为了证实这个观点,严格遵循心理学实验流程设定,进行了五项实验。

在前四项实验中,研究者将16类共160张白色背景的自然图像做四种不同的变换,分别交给人类被试者和ImageNet上预训练的卷积神经网络做其中物体的识别。这四种变换包括:

  • 转灰度:使用skimage.color.rgb2gray实现
  • 转黑白:二值化方法+人工检查
  • 提取边缘:使用MATLAB实现Canny Edge Extractor
  • 纹理图:使用每类3张共48张纹理图像,如动物的毛发或密集排布的某种物体

实验结果如下所示:

所有的原图和纹理图都可以被人类和神经网络正确地识别;灰度图像也维持了较高的识别率。但来到黑白图和边缘图的时候,人类在识别的准确率上产生了明显的优势,这说明人类可以更好地应对那些纹理较少或几乎没有纹理的图像信息。而对于神经网络,这种图像域的偏移(图像空间和训练空间不一致)带来了不小的麻烦。

第五个实验中,研究人员又祭出了他们的法宝——纹理形状不一致性(cue conflict)。他们使用迭代式风格迁移方法,将纹理图的风格迁移到了一些自然图像上,构造了16类共1280张这种纹理形状不一致的图像,让人类和神经网络进行识别。并观察其在形状和纹理之间的偏好。注意,这不是一个正确与否的问题,仅仅是判断时候的偏好。

△一些实验中用到的纹理形状不一致图像

结果不出所料。红色圆圈表示了不同类别下人类对于纹理和形状的偏好情况,不同的蓝色标志表示了不同神经网络架构(AlexNet、VGG-16、GoogLeNet、ResNet-50)的偏好情况。越靠左说明对形状的偏好性越强,反之说明对于纹理的偏好性越强。虽然各类别图像的情况不甚相同,但也很好地支持了前四个实验的结论。

△实验五结果可视化

一个对于卷积神经网络工作原理的常见解释是,它通过不断的卷积和池化操作,从提取最简单的边角特征,到不断融合这些浅层特征来表达更为复杂的形状。现在看来,形状并不是卷积神经网络做出判断的主要依据,颜色和纹理才是。这就是所谓的对颜色和纹理的偏好现象。

研究者表明,一个可能的原因是,卷积神经网络仅通过局部的纹理就收集到了足够的信息来做出判断。

多项工作尝试使用不同的方法“扭转”预训练卷积神经网络的这种偏好,实验也证实提高卷积神经网络对形状的偏好可以使提取的特征更加鲁棒、提升分类等任务的准确度。下面简单介绍其中三种。

风格迁移训练

Geirhos等人对ImageNet数据集使用AdaIN方法进行随机的风格迁移(style transfer),构成新的Stylized-ImageNet数据集。原数据集和新数据集分别记为IN和SIN。

△Stylized-ImageNet数据样例

通过在IN和SIN上的混合训练以及微调过程,得到的Shape-ResNet模型对于变形失真图像的鲁棒性增强、在ImageNet数据集上的分类准确性和Pascal VOC上目标检测的准确性都有所提升。

域对抗训练


Brochu验证了Geirhos等人工作的有效性,并进一步使用域对抗训练的方法解决这一问题。

该方法通过域分类器(domain classifier)和梯度反向层(gradient reversal layer)实现对于不同域一致性特征的学习。

基于拼图的自监督学习


拼图(jigsaw)是一种常见的自监督学习方法。神经网络通过拼图正确顺序的监督信息学习如何恢复打乱的图像块,进而学习到图像特征,不需要任何图像类别的标识。

Asadi等人训练神经网络同时完成图像分类和风格化图像拼图两项任务,取得了准确度更高的结果。

应用场景

除了上面说的可以使提取的特征更加鲁棒、提升分类检测等任务的准确率之外,拥有形状偏好的预训练神经网络模型其实可以在非自然图像上有着很好的应用。漫画、手绘、平面设计作品一类的图像,由于其本身纹理信息不丰富、主要以形状来表征内容,因此使用有形状偏好的预训练神经网络可以帮助模型更好地收敛。当我们的研究工作中遇到对形状敏感的任务时,如果ImageNet预训练神经网络的效果不佳,不妨想想是不是它的纹理偏好在作怪~

传送门

论文:

ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness

Increasing Shape Bias in ImageNet-Trained Networks Using Transfer Learning and Domain-Adversarial Methods

Towards Shape Biased Unsupervised Representation Learning for Domain Generalization

开源工作:

Stylized-ImageNet数据集、相关代码及预训练模型

https://github.com/rgeirhos/texture-vs-shape

还在用ImageNet预训练?你的网络可能对形状一无所知!谈神经网络的形状偏见相关推荐

  1. 超越ImageNet预训练,Meta AI提出SplitMask,小数据集也能自监督预训练

    ©作者 | 陈萍 来源 | 机器之心 大规模数据集对自监督预训练是必要的吗?Meta AI 认为,小数据集也能自监督预训练,效果还不错. 目前,计算机视觉神经网络被大量参数化:它们通常有数千万或数亿个 ...

  2. 何恺明“终结”ImageNet预训练时代:从0开始训练神经网络,效果比肩COCO冠军

    夏乙 安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI 何恺明,RBG,Piotr Dollár. 三位从Mask R-CNN就开始合作的大神搭档,刚刚再次联手,一文"终结&quo ...

  3. ImageNet预训练参数和随机初始化参数训练效果对比

    何恺明,RBG,Piotr Dollár. 三位从Mask R-CNN就开始合作的大神搭档,刚刚再次联手,一文"终结"了ImageNet预训练时代. 他们所针对的是当前计算机视觉研 ...

  4. TensorFlow2使用预训练的卷积网络(ConvNet)进行迁移学习

    本案例使用预训练的模型对猫狗数据集进行分类任务.使用预训练的模型有两种方式: 一是利用特征提取器.利用预训练模型的前几层对新数据进行特征提取,最后加入分类的层即可完成新模型的创建. 二是Fine Tu ...

  5. KDD 2022 | 图“预训练、提示、微调”范式下的图神经网络泛化框架

    ©作者 | 社媒派SMP 来源 | 社媒派SMP 本文是SIGKDD 2022入选论文"GPPT: Graph Pre-training and Prompt Tuning to Gener ...

  6. IEEE ICME 2023论文|基于预训练和图网络的语音主题分类

    论文题目: SPEECH TOPIC CLASSIFICATION BASED ON PRE-TRAINED AND GRAPH NETWORKS 作者列表: 牛方静,曹腾飞,胡英,黄浩,何亮 研究背 ...

  7. 预训练+微调+Rethinking ImageNet Pre-training论文阅读笔记

    文章目录 一.前言 二.预训练+微调 1.预训练 2.微调 3.Pytroch实现 三.Rethinking ImageNet Pre-training论文笔记 参考文献 一.前言 近期在阅读何凯明大 ...

  8. 赠书 | 一文了解预训练语言模型

    来源 | 博文视点 头图 | 下载于视觉中国 近年来,在深度学习和大数据的支撑下,自然语言处理技术迅猛发展.而预训练语言模型把自然语言处理带入了一个新的阶段,也得到了工业界的广泛关注. 通过大数据预训 ...

  9. 自然语言处理中的预训练技术发展史

    公众号关注 "视学算法" 设为 "星标",重磅干货,第一时间送达! 本文作者:张俊林 https://zhuanlan.zhihu.com/p/49271699 ...

最新文章

  1. Nginx(四)------nginx 负载均衡
  2. SAP中国首个基于SAP HANA的Business One Analytics项目初试锋芒
  3. 计算机组成原理第二版复习大纲,计算机组成原理复习大纲
  4. android之monkey测试
  5. 【亲自实践能够下载的谷歌地图切片url地址】谷歌地图数据下载的尝试以及Python爬虫实现
  6. java基础面经--下
  7. open连接MySQL超时_mysql5 超时链接
  8. pandas dataframe获取列名、添加列名、列索引
  9. 【得物技术】如何测试概率性事件 - 二项分布置信区间
  10. JavaScript实现图结构
  11. python换图片_详解Python给照片换底色(蓝底换红底)
  12. cadence SPB17.4 - CIS - add a new part
  13. [ 生活 ] 我有一个想法!
  14. win7台式计算机怎么连热点,win7热点怎么设置 win7热点设置的具体方法介绍
  15. 笔记:《机器学习训练秘籍》-吴恩达deeplearningai微信公众号推送文章
  16. 电脑无法开机,怎么重装系统?
  17. Excel导入数据库回滚
  18. 【问题解决】ESP32开发板上的CP210xUSB转串口坏了怎么办
  19. 杨立昆:科学之路读书笔记2
  20. java 老年代 新生代 永久代

热门文章

  1. linux compress压缩命令
  2. RabbitMQ消息中间件技术精讲(三)
  3. 用python自动化玩游戏封号吗_玩游戏还花钱找代练?教你Python游戏开发原理实现自动化操作!...
  4. 从阿里旺旺看淘宝和ebay的差异,看中国人的信任危机
  5. 社区疫情防控平台需求工程--小组会议1
  6. HTML实现右下角闪烁弹窗
  7. iphone读取addressbook
  8. 码头仓库转运箱子//力扣
  9. 迅雷2014C++笔试卷A
  10. java培训总结(Java实验报告总结)