【论文阅读】Natural Adversarial Examples 自然对抗的例子

文章目录

  • 一、文章概览
    • (一)摘要
    • (二)导论
    • (三)相关工作
  • 二、IMAGENET-A 和 IMAGENET-O
    • (一)数据集构造方式
    • (二)数据收集过程
  • 三、模型的故障模式
  • 四、实验
    • (一)评估指标
    • (二)使用数据增强
    • (三)使用更多更真实的标记数据
    • (四)架构变化策略


一、文章概览

(一)摘要

文章的主要工作: 使用简单的对抗性过滤技术引入了两个具有挑战性的数据集,使得机器学习模型的性能大幅下降

  • IMAGENET-A,类似于 ImageNet 测试集,但对于现有模型来说更具挑战性
    (包含分类器应该能够分类的图像,但是判断起来会更难)
  • IMAGENET-O,对抗性分布外监测数据集,第一个为 ImageNet 模型创建的分布外检测数据集
    (包含不可预见的类的异常,会出现imagenet包含类别之外的类别)

研究结果表明: 现有的数据增强技术很难提高性能,使用其他公共训练数据集提供的改进也很有限,计算机视觉架构的改进为构建稳健模型提供了一条有希望的道路。

(二)导论

问题提出: ImageNet的测试示例往往是简单、清晰、特写的图像,可能无法代表现实世界中遇到的较难的图像,这样可能会导致乐观且不准确的性能估计。

作者方案: 策划了两个具有对抗性过滤的自然对抗性示例的硬 ImageNet 测试集。通过使用对抗性过滤,测试模型在删除易于分类的示例(其中包括使用简单的虚假线索解决的示例)时的表现如何。

图中黑色文本是实际类别,红色文本是 ResNet-50 预测及其置信度。

在这里插入图片描述

提高对抗性过滤实例性能的方法:

  • 训练数据增加 10 倍对应的准确率增加不到 10%
  • 对抗性训练等数据增强技术会降低性能,而其他技术则可以帮助提高几个百分点
  • 改进模型架构是提高鲁棒性的一条有前途的途径

(三)相关工作

  1. 对抗性例子
    大多数从一个模型制作的 LP 对抗样本只能在同一模型系列中转移。然而,我们的对抗性过滤图像转移到所有测试的模型系列,并超越了有界lp 威胁模型。

在有界 Lp 的攻击威胁模型中,攻击者试图通过添加很小的 Lp 范数限制内的扰动来欺骗机器学习模型,从而使其产生错误的输出。这种攻击模型通常被应用于对抗性样本生成和评估中,以评估机器学习模型的鲁棒性和安全性。

  1. 分布外检测
    以前的 OOD 检测数据集使用其他研究基准的数据集作为异常替代品,产生远离分布的异常,这种方式产生的异常源是不自然的,并且在很多方面偏离了通常示例的分布。相比之下,我们提出了一个用于更现实的对抗性异常检测的数据集,我们的数据集包含通过改变分布标签并保持与原始训练分布相似的非语义因素而生成的硬异常。

  2. 虚假提示和意外的捷径
    许多最近引入的 NLP 数据集使用对抗性过滤来创建“对抗性数据集”,但直到本文之前,对抗性过滤技术才被应用于收集图像数据集。另外,NLP 中的对抗性过滤仅删除最简单的示例,而我们使用过滤仅选择最难的示例并忽略中等难度的示例。

  3. 对变化的输入分布的鲁棒性
    我们的分布变化来源更加异构和多样化,并且我们的示例是自然发生的。

二、IMAGENET-A 和 IMAGENET-O

(一)数据集构造方式

  • IMAGENET-A :首先下载与 ImageNet 类相关的大量图像,删除修复 ResNet-50分类器正确预测的图像,然后将展示欺骗 ResNet-50 的示例能够可靠地迁移到其他未见过的模型。对于剩余的错误分类图像,手动选择视觉上清晰的图像。
  • IMAGENET-O:下载 ImageNet-22K 并删除 ImageNet-1K 中的示例,对于不属于 ImageNet1K 类的其余 ImageNet-22K 示例,将 ResNet-50 分类为 ImageNet-1K 类的示例保留为高置信度。然后手动选择视觉上清晰的图像。

(二)数据收集过程

IMAGENET-A :

  1. IMAGENET-A 类别限制:选择 ImageNet-1K 的 1, 000 个类中错误最为严重的 200 个类子集
  2. IMAGENET-A 数据聚合:从 iNaturalist、Flickr 和 DuckDuckGo 等网站下载许多弱标记图像,删除无法欺骗 ResNet-50 模型的示例来对抗性地选择图像,在剩下的图像中,我们选择低置信度图像,然后通过人工审核确保每张图像都是有效的。

如果只使用原始 ImageNet 测试集作为源,则某些类在第一轮过滤后将具有零图像,因为原始 ImageNet 测试集太小而无法包含硬对抗性过滤图像。

IMAGENET-O:

  1. IMAGENET-O 类别限制:选择 ImageNet-1K 的 1, 000 个类的 200 个类子集。这 200 个类别决定了分布或被认为是通常的分布,涵盖了 ImageNet-1K 涵盖的最广泛的类别
  2. IMAGENET-O 数据聚合:使用删除了 ImageNet-1K 类的 ImageNet-22K 数据集,处理剩余的 ImageNet-22K 图像并保留导致 ResNet-50 具有高置信度或低异常分数的图像,然后手动选择余图像的高质量子集

三、模型的故障模式

在 IMAGENET-A 上评估卷积网络表明,即使是最先进的模型也具有多样化和系统性的故障模式:

  • 模型可能过度概括视觉概念(将三轮车过度概括为自行车和圆圈,将数字时钟过度概括为键盘和计算器等)
  • 模型可能过于依赖颜色和纹理(如蜻蜓图像所示)
  • 频繁出现的背景元素可能与类别相关联(例如木材与钉子相关联)
  • 对于不同的帧,分类器预测在语义上松散且独立的类之间变化不定(对于游泳鳄鱼的其他图像,分类器预测鳄鱼是悬崖、山猫和狐狸松鼠)

与每个自然图像相邻的是其热图。分类器可能会使用错误的背景线索进行预测。
在这里插入图片描述

四、实验

(分析是否可以通过使用数据增强、使用更真实的标记数据以及使用不同的架构来提高鲁棒性)

(一)评估指标

评估分类器的对抗性过滤示例的指标: IMAGENET-A 上的 top-1 准确度

作为参考,对于普通分类器,使用常用 ImageNet 图像的 200 个 IMAGENET-A 类的 top-1 准确率通常大于或等于 90%。

评估分类器对于 IMAGENET-O 示例的分布外检测性能: 精确率-召回率曲线下的面积 (AUPR)

(二)使用数据增强

数据增强技术对鲁棒性的影响:
虽然一些数据增强技术据称可以极大地提高对分布变化的鲁棒性,但它们很难提高 IMAGENET-A 的准确性。这表明他们并不能提高对某些分布变化的鲁棒性,IMAGENET-A 可以暴露所提出的鲁棒性方法中以前未被注意到的错误。因此,IMAGENET-A 可用于验证技术是否真正提高了现实世界对分布变化的鲁棒性。
在这里插入图片描述

(三)使用更多更真实的标记数据

对于 IMAGENET-A 准确性持续较低的一种可能的解释是,所有模型仅使用 ImageNet-1K 进行训练,并且使用额外的数据可能会解决问题。

使用更多更真实的标记数据对鲁棒性的影响:

  • 各种使用更多数据进行预训练的方法在IMAGENET-A 准确率上的改进都不太显著
  • 由于计算成本的原因,使用更多数据有局限性
  • 标记训练数据的数量级增加可以提高准确性,但是对模型架构进行改变能够提供更大的改进

(四)架构变化策略

模型架构对 IMAGENET-A 的准确性和 IMAGENET-O 的检测性能发挥着重要作用。

  • 增加网络的宽度和层数就足以自动赋予更高的 IMAGENET-A 精度和 IMAGENET-O OOD 检测性能
  • 使用分组卷积也是可靠的架构变化
  • 具有自注意力的卷积神经网络能够更好地捕获图像中的远程依赖关系和交互

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274831.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[MYSQL数据库]--表内操作(CURD)

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、表的 Cre…

介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。

Docker 是一种开源的容器化平台,可以将应用程序及其所有依赖项打包成一个独立的容器,从而实现快速部署、运行和扩展应用程序的能力。 Docker官网地址:https://www.docker.com/ 1.Docker 基本概念 1.1 镜像(Image) 镜…

Rust 安装与版本更新

Rust 简介 Rust ,一门赋予每个人构建可靠且高效软件能力的语言,主打内存安全。 2024年2月,在一份 19 页的报告《回归基础构件:通往安全软件之路》中,白宫国家网络主任办公室(ONCD)呼吁开发者使…

git svn混用

背景 项目代码管理初始使用的svn, 由于svn代码操作,无法在本地暂存,有诸多不便,另外本人习惯使用git. 所以决定迁移至git管理 迁移要求: 保留历史提交记录 迁移流程 代码检出 git svn svn_project_url git代码提交 修改本…

读取txt文件并统计每行最长的单词以及长度

读取txt文件并统计每行最长的单词以及长度 题目 在 D:\\documant.txt 文本中,文件中有若干行英文文本,每行英文文本中有若干个单词,每个单词不会跨行出现每行至多包含100个字符,要求编写一个程序,处理文件,分析各行中的单词,找到每行中的最长单词,分别…

selenium元素定位问题

一、按钮点击 具体网页信息如下: 定位的时候driver.find_element(By.CLASS_NAME, 方法搞不定。 定位方法: 方法一:通过文本定位 driver.find_element(By.XPATH, "//*[text()高分一号]").click() time.sleep(3) 如果是部分文字…

day08_Mybatis

文章目录 前言一、快速入门1.1 入门程序分析1.2 入门程序实现1.2.1 准备工作1.2.1.1 创建springboot工程1.2.1.2 数据准备 1.2.2 配置Mybatis1.2.3 编写SQL语句1.2.4 单元测试1.3 解决SQL警告与提示 二、JDBC介绍2.1 介绍2.2 代码2.3 问题分析2.4 技术对比 三、数据库连接池3.1…

LeetCode[题解] 1261. 在受污染的二叉树中查找元素

首先我们看原题 给出一个满足下述规则的二叉树: root.val 0如果 treeNode.val x 且 treeNode.left ! null,那么 treeNode.left.val 2 * x 1如果 treeNode.val x 且 treeNode.right ! null,那么 treeNode.right.val 2 * x 2 现在这个…

基于ssm的志愿者招募系统的设计与实现(程序+文档+数据库)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

FPGA 按键控制串口发送

按键消抖 消抖时间一般为10ms,我使用的板子是ACX720,晶振为50MHZ,20ns为一周期。 状态机 模块设计 设计文件 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2023/01/11 12:18:36 // Design Name: // Module Name…

重学SpringBoot3-ErrorMvcAutoConfiguration类

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-ErrorMvcAutoConfiguration类 ErrorMvcAutoConfiguration类的作用工作原理定制 ErrorMvcAutoConfiguration示例代码1. 添加自定义错误页面2.自定义错误控…

基于Qt 和python 的自动升级功能

需求: 公司内部的一个客户端工具,想加上一个自动升级功能。 服务端: 1,服务端使用python3.7 ,搭配 fastapi 和uvicorn 写一个简单的服务,开出一个get接口,用于客户端读取安装包的版本&#…

Pycharm的Project Structure (项目结构)

文章目录 一、Sources二、Tests三、Exeluded四、Namespace packages五、Templates六、Resources 一、Sources 源代码根目录:包含项目的主要源代码,它会在这个目录下搜索代码,然后自动补全和只能提示都通过这里的代码提供。若项目运行自定义代…

System类 --java学习笔记

System System代表程序所在的系统,也是一个工具类 常见System方法: 按照惯例,exit括号中非零状态码表示异常终止,填零则表示人为终止 currentTimeMillis()返回的是long类型的时间毫秒值:指的…

重学SpringBoot3-WebMvcAutoConfiguration类

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-WebMvcAutoConfiguration类 是什么什么用生效条件作用 自定义配置的三种方式自定义配置举例1. 自定义 DispatcherServlet 配置2. 静态资源配置3. 自定义…

前端 --- HTML

1. HTML 结构 1.1 HTML 文件基本结构 <html><head><title>第一个html程序</title></head><body>hello world!</body> </html> html 标签是整个 html 文件的根标签(最顶层标签)head 标签中写页面的属性.body 标签中写的是页…

设计模式一 ---单例设计模式(动力节点,JavaSE基础)

设计模式 1.什么是设计模式&#xff1f; 2.设计模式的分类 单例设计模式就是GoF模式中的一种。 3.GoF设计模式的分类&#xff1a; 单例设计模式&#xff1a; 顾名思义&#xff1a;单个实例的设计模式&#xff01;

k8s+wordpress+zabbix+elastic+filebeat+kibana服务搭建以及测试

一&#xff0c;环境&#xff1a;docker&#xff0c;k8s&#xff0c;zabbix&#xff0c;以及搭建worpdress&#xff0c;elasticsearch&#xff0c;filebeat&#xff0c;kibana 二&#xff0c;主机分配&#xff1a; 名称host详述个人博客3192.168.142.133 搭配mysql8.0.36的数据…

集合实现类研究底层(部分):手撕ArrayList底层源码、手撕LinkedList底层源码、手写单向链表和双向链表

day26上 集合框架图 标绿已经学习底层&#xff0c;深入底层主要是研究实现类底层 继承关系图 手撕ArrayList底层源码 ps:研究添加元素的过程 思路&#xff1a; 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程 提升&#xff1a…

jmeter发送请求参数如何使用变量

问题描述 发送jmeter请求时&#xff0c;想设置请求参数为变量 解决方法