cnn风格迁移_愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
鱼羊 栗子 发自 凹非寺
量子位 报道 | 公众号 QbitAI
“穿件马甲就不认识我了?”
如果把大象的纹理披在猫身上,CNN识别出的就是大象 (详见下文) 。
图宾根大学的博士僧发现,ImageNet训练出来的CNN做图像分类时,强烈依赖纹理/质地,居然不怎么看形状。
所以给图像做个风格迁移,轻轻松松就能蒙骗AI。
这么好骗的AI必须治,团队制造了一个升级版ImageNet,不让纹理再给AI任何提示,逼迫它学习形状。
调教后的AI不止更加准确,面对噪音等各种干扰的时候,还更加鲁棒了。
这项研究中选了ICLR 2019的Oral。
这个CNN有点蠢
这里有一只橘猫:
还有一块只有纹理的大象皮:
把大象皮给橘猫披上,橘猫就被认成了大象???
CNN未免太好骗了吧?
来自德国图宾根大学的团队发现,与以往的认知不同,CNN并不是通过将低级特征(例如边缘)组合成复杂的形状,以此来对物体进行分类的。
此前已有研究表明,即使全局形状完全被破坏,CNN仍然可以出色地完成对纹理化图像的识别,似乎对于ImageNet训练出来的CNN来说,局部纹理就已经给分类提供了足够多的信息。
那么问题就来了,对于CNN图像识别来说,到底是对象纹理影响大还是全局形状影响大呢?
实践才能出真知,图宾根大学的小伙伴们为此精心设计了实验。他们利用风格迁移创建了像披着象皮的猫这样纹理与形状相冲突的图片,用它们来测试CNN到底更偏向于哪一边。
用于测试对象包括用ImageNet训练过的AlexNet、VGG-16、GoogLeNet、强大的ResNet-50,以及97名人类选手。
⬇️⬇️⬇️
橘猫,识别成功。灰掉的橘猫,也能识别。涂黑了的橘猫,emmm,有点懵比。素描风格的橘猫,呃,更加尴尬。
纹理越不明,AI越懵比。纹理 VS 形状,CNN对纹理的依赖竟然占了绝对上风。
别急,能治的
团队发现,CNN对局部纹理有超强的bias,而不重视全局形状。
那么,就要用强硬的方法,把bias掰到形状那一边去。
研究人员用ImageNet做基础,造起一个风格化的数据集,叫做Stylized-ImageNet,简称SIN:
把每一张图的原始纹理除掉,然后用一种随机选择的绘画风格代替。
目的就是让AI在没有纹理线索的情况下,也能准确判断物体的类别。
这里用的是AdaIN风格迁移方法,风格化系数为α=1.0。
风格的来源,则是Kaggle的Painter by Numbers数据集。
新数据集的搭建过程,已经开源了,请见文底传送门。
疗效显著
在SIN数据集上,纹理已经风格化,没有太多能帮助分类的有效信息了。
用SIN训练并用SIN测试的结果是,top-5准确率只有79%。
同样的网络,在普通ImageNet上训练并用ImageNet测试,top-5准确率有92.9%。
这说明,SIN比ImageNet的任务要难许多,少了判断依据,多了干扰信息。
有趣的是,ImageNet的特征在SIN上的泛化能力很差:用前者训练,后者测试,top-5准确率只有16.4%。
相反,在SIN上学到的特征却在ImageNet上泛化不错:不做任何微调的情况下,top-5准确率高达82.6%。
然后,还要详细证明一下,只学纹理的模型真的搞不定SIN。
研究人员想起了2018年发布的BagNet,就是仅靠局部纹理搞定ImageNet的那只前辈:
BagNet也是ResNet-50架构,不过最大感受野大小被限定在9×9, 17×17或33×33像素。这样就没有办法学习任何长距离的空间关系,用来分类。
有了这些限制,BagNet在ImageNet上面表现很好 (70%) ,但在SIN上就不太好了 (10%) 。
这明确地表示,SIN数据集可以除去局部纹理给AI带去的线索,逼迫它去学习长距离的空间信息。因为BagNet自身限制没办法学习全局,才扑街了。
更重要的是,线索冲突实验 (Cue Conflict Experiment) 证明,用SIN训练的ResNet-50,强烈地偏爱形状线索:bias从ImageNet上的22%,提升到了SIN上的81%。
在许多类别的判断上,甚至和人类对形状的依赖一样强。
还有惊喜
除了学到形状特征之外,SIN还附赠许多意想不到的优势。
第一,重点学习了形状的ResNet,在top-1和top5准确率上,都胜过了原始的ResNet。
这表示,SIN很可能是一个数据扩增的好方法。
第二,团队还用Faster R-CNN模型,测试了新老ResNet作为Backbone的表现。
把SIN揉进训练数据,大大提升了目标检测准确率:从70.7到75.1。这也和目标检测基于形状表征的天性有关。
第三,研究人员系统测试了,当给图像加入一些干扰:比如均匀噪音或相位噪音、对比度改变、高通与低通滤波等等,准确度会发生怎样的变化。
虽然损失了几个百分点的准确率,用SIN训练的神经网络还是在绝大多数任务上,战胜了用IN训练的结果。
传送门
论文:https://arxiv.org/abs/1811.12231
Github:https://github.com/rgeirhos/texture-vs-shape
SIN数据集:https://github.com/rgeirhos/Stylized-ImageNet
— 完 —
AI社群 | 与优秀的人交流
小程序 | 全类别AI学习教程
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点「在看」吧 !
cnn风格迁移_愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral相关推荐
- 愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
https://www.toutiao.com/a6709315155982811655/ "穿件马甲就不认识我了?" 如果把大象的纹理披在猫身上,CNN识别出的就是大象 (详见下 ...
- cnn风格迁移_快速图像风格迁移思想在无线通信中的另类应用:算法拟合
在本文中,并不是介绍最新的一些论文,而是回顾自己在很早(半年前?)读过的几篇文章.[1]Learning to optimize: Training deep neural networks for ...
- cnn风格迁移_简述风格迁移Neural-Style细节
什么是风格迁移? 风格迁移是使用某些手段(合法的), 把图像从原风格转换到另外一个风格, 同时保证图像内容没有变化, 举个栗子, 下面的这类图片应该是很多人见过了 可以看到在把画风变成梵高的星夜后, ...
- cnn风格迁移_深度学习能否对音乐进行风格迁移?
音色迁移.音乐流派迁移.音乐风格迁移都有做. 至少有两个可行的思路:增加condition,进行显式控制.THU九歌模型在诗歌生成中对风格进行了控制,利用infoGAN使用过的"mutual ...
- cnn风格迁移_机器学习:利用卷积神经网络实现图像风格迁移 (一)
相信很多人都对之前大名鼎鼎的 Prisma 早有耳闻,Prisma 能够将一张普通的图像转换成各种艺术风格的图像,今天,我们将要介绍一下Prisma 这款软件背后的算法原理.就是发表于 2016 CV ...
- 图像风格迁移_【论文解读】图像风格迁移中的Contextual Loss
[08/04更新]在前几天的Commit中,Contextual Loss已经支持多GPU训练 1.Background 对于图像风格迁移,最常用的做法就是通过GAN网络实现,然而,如果你没有很强大的 ...
- Python CNN风格迁移
本文仅供学习交流使用,如侵立删!demo下载见文末 环境: python:3.6.7 tensorflow=2.2.0 torch=1.5.1+cpu torchvision=0.6.0+cpu Pi ...
- CNN 风格迁移模型 原理简述
我们有了两张图片,分别是content图和style图 风格迁移本质上是找到一个新的图片,使得风格上趋近于风格图,内容上趋近于内容图 而"趋近"在深度学习中体现在loss函数中,所 ...
- 图像风格迁移_图像风格迁移—谷歌大脑团队任意图像风格化迁移论文详解
点击蓝字关注我们 AI研习图书馆,发现不一样的世界 风格迁移 图像风格化迁移是一个很有意思的研究领域,它可以将一张图的风格迁移到另外一张图像上,由此还诞生了Prisma和Ostagram这样的商业化产 ...
最新文章
- 5月9日 python学习总结 外键、表之间的关联关系、修改表、清空表内容、复制表...
- SQL case when 2种用法
- 实验楼 linux内核原理与分析,《Linux内核原理与分析》第一周作业 20189210
- 被马云、周鸿祎、李书福等人拉黑的微信,究竟犯了哪些众怒?
- mysql php 问号_PHP / MySQL:某些字符未正确编码并显示为问号
- 【ACM】杭电1070:Milk
- 强化学习中价值迭代和策略迭代各有什么优缺点?
- 极客大学架构师训练营 组件设计原则 安全架构 防火墙ModSecurity 第21课 听课总结
- 数据库设计软件-powerdesign,导出表结构为Word文档
- 计算机相关各机构简称
- Git删除提交历史记录
- Spring07 Java配置
- 【面试篇】ConcurrentHashMap1.7和1.8详解对比
- sublime text 3 调色板插件
- python引用自己写的文件
- 战地1如何修改服务器,战地1修改服务器地址
- 【转载】WIN10应用商店,Edge浏览器闪退打不开,开始菜单打不开,安全中心打开变空白
- 以太坊学习路线——(三)Solidity常用IDE搭建、合约编译、部署、调用
- R语言基础(用最简单的方式了解学习R语言)
- 前端隐秘角落 - HTTP请回答
热门文章
- Java8-Stream之数值流
- Oracle 11g Dataguard 物理备库配置(三)之Dataguard broker配置
- 《数据结构与抽象:Java语言描述(原书第4版)》一1.1 什么是包
- 这样讲闭包,你终生难忘
- JSP JavaBean作用范围
- C++之保护和私有构造函数与析构函数
- sqlserver2008秘钥
- Sqlserver2005迁移至Oracle系列之二:生成存储过程
- mysql drivermanager.getconnection_Java DriverManager.getConnection()方法:获取数据库连接
- 什么决定了计算机的寻址能力_有问有答:寻址能力与CPU的位宽有关系吗?