Hendrycks D., Basart S., Mu N., Kadavath S., Wang F., Dorundo E., Desai R., Zhu T., Parajuli S., Guo M., Song D., Steinhardt J. Gilmer J. The many faces of robustness: a critical analysis of out-of-distribution generalization. arXiv preprint arXiv:2006.16241, 2020.

作者通过或采样或人造的数据集ImageNet Renditions, DeepFashion Remixed, StreetView StoreFronts来验证七个假设:

  1. 更大的模型能够提高鲁棒性;
  2. self-attention能够提高鲁棒性;
  3. diverse data augmentation 能够提高鲁棒性;
  4. 在更大更复杂的数据集上进行预训练能够提高鲁棒性;
  5. CNN更倾向于纹理信息, 这会破坏鲁棒性;
  6. 鲁棒性主要用在IID上的测试数据的正确率所反映(即提高泛化性的最有效途径是提高测试精度(IID上的));
  7. 人造数据所带来鲁棒性对于现实生活中j'kjk偏移没有帮助.

主要内容

ImageNet-R

ImageNet-R包含了ImageNet中的200个类的艺术加工后的结果:

注: 原ImageNet是不包含艺术加工后的数据的.

StreetView StoreFronts (SVSF)

SVSF是从 Google StreetView imagery中采样的数据集, 包含3种不同类型的分布迁移: 国家, 年份 和 拍摄硬件(摄像机).

训练集: 于2019年, 在美国/墨西哥/加拿大通过新式摄像系统拍摄的照片;

测试集:

Year Country Camera
1 2017 US/Mexico/Canada new
2 2018 US/Mexico/Canada new
3 2019 France new
4 2019 US/Mexico/Canada old

DeepFashion Remixed

DFR包括一个训练集和8个测试集, 测试集和训练集的差别在于在某个属性上有差异.

object size object occlusion camera viewpoint camera zoom
Training medium medium side/back no zoom-in
1 small medium side/back no zoom-in
2 large medium side/back no zoom-in
3 medium minimal side/back no zoom-in
4 medium heavy side/back no zoom-in
5 medium medium frontal no zoom-in
6 medium medium not-worn no zoom-in
7 medium medium side/back medium zoom-in
8 medium medium side/back large zoom-in

DeepAugment

DeepAugment算是一种特殊的augmentation, 即一个image-to-image的网络\(h(\cdot; \theta)\), 通过\(h(x; \theta + \delta)\), 网络参数上的扰动使得得到diverse的图片, 这些扰动包括: zeroing, negating, convolving, transposing, applying activation functions ...

实验结论

1,2,3,4四个假设对于ImageNet-C和真实的模糊图片是有效的, 但对于DFR, SVSF中的分布偏移却都不奏效. Larger Models和Diverse Data Augmentation对于ImageNet-R是有效果的(后者, 即 DeepAugment + AugMix的结果非常好).

对于CNN更偏向纹理信息, 从ImageNet-R中可以瞥见一二, 普通的CNN在ImageNet-R上的泛化性很差, 但是通过diverse data augmentation可以缓解这一问题(因为其在一定程度上打乱了纹理信息). 但是这类假设在DFR, SVSF却并不奏效, 这大概也说明texture bias并非是影响鲁棒性的唯一因素.

对于第六点, 虽然IID上的正确的确很重要, 但是正如上表所示, 大模型, diverse的数据增强对于泛化性很大的帮助(但是对于IID收效甚微).

对于最后一点, 即人造数据的作用, 显然人造数据的确是能够增加泛化性的, 虽然这类方法在面对地理偏移等时效果不明显.

代码

原文代码

The Many Faces of Robustness: A Critical Analysis of Out-of-Distribution Generalization (DeepAugment)的更多相关文章

  1. 如何搞定Critical Thinking写作?

    受中国传统教育模式与国外一流大学之间的差异的影响,在海外留学的学子们常常会在新的学习生活中面临许多难题,Critical Thinking就是其中之一.国内的教育方法常常以灌输式的教育模式为主,忽略了 ...

  2. Improving Adversarial Robustness Using Proxy Distributions

    目录 概 主要内容 proxy distribution 如何利用构造的数据 Sehwag V., Mahloujifar S., Handina T., Dai S., Xiang C., Chia ...

  3. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  4. Atitit jsr规范有多少个  407个。Jsr规范大全

    Atitit jsr规范有多少个  407个.Jsr规范大全 1.1. JCP维护职能是发展和更新.1 1.2. Java技术规范.参考实现(RI).技术兼容包(TCK)1 1.3. JCP维护的规范 ...

  5. 一个TED演讲背后的文化论

    0. 前言 写这个前言让我很难受,当然不是心情难受哈,此时的状态是很High的哦,大中午觉都省了, 说难受是我觉得我这语言文字太渣了,相比今天的主题确实很没“文化”.但我也很庆幸,能 看到这么个人认为 ...

  6. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  7. Kaggle竞赛顶尖选手经验汇总

    What is your first plan of action when working on a new competition? 理解竞赛,数据,评价标准. 建立交叉验证集. 制定.更新计划. ...

  8. Profiling Top Kagglers: Bestfitting, Currently #1 in the World

    We have a new #1 on our leaderboard – a competitor who surprisingly joined the platform just two yea ...

  9. Why many EEG researchers choose only midline electrodes for data analysis EEG分析为何多用中轴线电极

    Source: Research gate Stafford Michahial EEG is a very low frequency.. and literature will give us t ...

随机推荐

  1. JVM2 类加载子系统

    目录 类加载子系统 类加载器子系统 类加载器ClassLoader角色 类加载的过程 案例 加载Loading 连接Linking 初始化Intialization clinit() 类的加载器 虚拟 ...

  2. 实时数仓(二):DWD层-数据处理

    目录 实时数仓(二):DWD层-数据处理 1.数据源 2.用户行为日志 2.1开发环境搭建 1)包结构 2)pom.xml 3)MykafkaUtil.java 4)log4j.properties ...

  3. Angular Service设计理念及使用

    官方认为组件不应该直接获取或保存数据, 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务. 而服务就充当着数据访问,逻辑处理的功能.把组件和服务区分开,以提高模块性和复用性. 1.依赖注入 注 ...

  4. ClassLoad类加载器与双亲委派模型

    1. 类加载器 Class类描述的是整个类的信息,在Class类中提供的方法getName()是根据ClassPath配置的路径来进行类加载的.若类加载的路径为文件.网络等时则必须进行类加载这是就需要 ...

  5. 视图View,获取视图大小

    一.获得LayoutInflater实例: LayoutInflater layoutInflater=LayoutInflater.from(context); 得到LayoutInflater实例 ...

  6. Linux基础命令---htdigest建立和更新apache服务器摘要

    htdigest htdigest指令用来建立和更新apache服务器用于摘要认证的存放用户认证信息的文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.   1.语法   ...

  7. HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?

    作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...

  8. Python用matplotlib绘图网格线的设置

    一.X轴网格线的设置 import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['fo ...

  9. Pytorch入门上 —— Dataset、Tensorboard、Transforms、Dataloader

    本节内容参照小土堆的pytorch入门视频教程.学习时建议多读源码,通过源码中的注释可以快速弄清楚类或函数的作用以及输入输出类型. Dataset 借用Dataset可以快速访问深度学习需要的数据,例 ...

  10. MySQL 面试题汇总(持续更新中)

    COUNT COUNT(*) 和 COUNT(1) 根据 MySQL 官方文档的描述: InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) opera ...