PubDef:使用公共模型防御迁移攻击

news2024/11/22 12:16:43

对抗性攻击对机器学习系统的可靠性和安全性构成了严重威胁。通过对输入进行微小的变动,攻击者就可以导致模型生成完全错误的输出。防御这种攻击是一个很活跃的研究领域,但大多数提议的防御措施都存在重大的缺点。

这篇来自加州大学伯克利分校研究人员的论文则介绍了一种名为PubDef的新防御方法,在这个问题上取得了一些进展。在保持干净输入准确性的同时,PubDef在面对现实攻击时获得了更高的稳健性。本文解释了这项研究的背景、PubDef的工作原理、结果及其局限性。

对抗性威胁领域

人们研究了许多类型的对抗性攻击,最常见的是白盒攻击。在这里,攻击者可全面访问模型的参数和架构。这让他们得以计算梯度,以精确地设计导致错误分类的输入。像对抗性训练这样的防御措施已经被提议,但它们在面对干净输入时性能会大大降低。

迁移攻击更现实。攻击者使用可访问的代理模型来设计对抗性示例。他们希望这些迁移骗过受害者的模型。迁移攻击很容易执行,并且不需要访问受害者模型。

基于查询的攻击对模型进行重复查询以推断其决策边界。一些防御措施通过监视使用情况来检测和限制这些攻击。

总的来说,迁移攻击在实践中非常合理,但无法通过典型的防御措施来加以解决,比如对抗性训练或限制查询的系统。

博弈论观点

图1. 该论文的配图显示了一个威胁模型,低成本攻击者使用公共模型进行迁移攻击,还显示了PubDef防御

PubDef专门旨在抵抗来自公开可用模型的迁移攻击。作者将攻防之间的交互描述为一种游戏:

  • 攻击者的策略是选择一个公共源模型和攻击算法来设计对抗性示例。
  • 防御者的策略是为模型选择参数,使其具有稳健性。
  • 博弈论为最佳策略的推理提供了工具。重要的是,防御者可以同时针对来自多个源模型的攻击进行训练。这种类似集成的方法使模型对各种攻击具有稳健性。

PubDef的工作原理

PubDef通过以下方式训练模型:

1. 选择一组不同的公开可用源模型。

2. 使用训练损失,最大限度地减少来自这些源模型的迁移攻击的错误。

这种对抗性训练过程调整模型,以抵抗从公共源迁移过来的特定威胁模型。

训练损失根据当前的错误率对每个攻击动态加权。这侧重于训练最有效的攻击。

源模型的选择涵盖不同的训练方法:标准、对抗性和破坏稳健性等。这提供了对未知攻击的广泛覆盖。

试验结果

论文作者们在CIFAR-10、CIFAR-100和ImageNet数据集上针对264个不同的迁移攻击评估了PubDef。

结果显示,PubDef明显优于之前的防御措施,比如对抗性训练:

  • 在CIFAR-10上,PubDef达到了89%的准确率,而对抗性训练只达到了69%的准确性。
  • 在CIFAR-100上,准确率为51%比33%。
  • 在ImageNet上,准确率为62%比36%。

值得注意的是,PubDef实现了这一改进,并且面对干净输入的准确性几乎没有下降:

  • 在CIFAR-10上,准确率仅从96.3%下降到96.1%。
  • 在CIFAR-100上,准确率从82%下降到76%。
  • 在ImageNet上,准确率从80%下降到79%。

图2. PubDef实现了这一改进,面对干净输入的准确性几乎没有下降

图2. PubDef实现了这一改进,面对干净输入的准确性几乎没有下降

因此,与对抗性训练相比,PubDef提供了更好的稳健性,对未受扰动的数据的性能影响要小得多。

局限性和未来工作

PubDef特别关注来自公共模型的迁移攻击,解决不了白盒攻击等其他威胁。另外一些限制如下:

  • 依赖模型保密。
  • 可以通过训练一个私人代理模型来加以规避。
  • 需要防御基于查询的攻击的其他方法。

鉴于预期范围,PubDef提供了与实际攻击者能力相一致的实用防御。但还需要做进一步的工作,才能处理其他威胁,并减轻对保密的依赖。

总的来说,这项工作在可部署防御方面取得了重大进展。通过针对一个合理的威胁模型,稳健性的提高几乎是免费的,精确度损耗最小。这些想法有望推动进一步的研究,从而产生更有效和实用的防御措施。

结论

对抗性攻击为部署可靠的机器学习系统提出了一个紧迫的挑战。虽然已提议了许多防御措施,但很少有防御措施在面对干净输入不降低性能的情况下在稳健性方面取得实质性进展。

PubDef代表着朝开发可以实际部署在实际系统中的防御迈出了大有希望的一步。在处理其他类型的攻击和对模型保密减轻依赖的程度方面仍有工作要做。然而,这里介绍的技术(即通过博弈论为模型建立交互、针对各种威胁进行训练,以及关注于可行的攻击)为进一步的进展提供了蓝图。

对抗性攻击可能仍然是机器学习安全的一个问题。随着模型不断渗入到医疗保健、金融和交通等关键领域,对有效防御的需求变得更加迫切。PubDef表明,如果力求防御与实际威胁相一致,可以在无需兼顾取舍的情况下大幅提升稳健性。开发实用的防御措施,将额外成本降到最低,这是安全可靠地部署机器学习安全的最切实可行的途径。

原文标题:PubDef: Defending Against Transfer Attacks Using Public Models,作者:Mike Young

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全光谱大面积氙光灯太阳光模拟器老化测试

氙灯光源太阳光模拟器广泛应用于光解水产氢、光化学催化、二氧化碳制甲醇、光化学合成、光降解污染物、 水污染处理、生物光照,光学检测、太阳能电池研究、荧光材料测试(透射、反射、吸收) 太阳能电池特性测试,光热转化,光电材料特性测试,生物…

Docker Compose安装milvus向量数据库单机版-milvus基本操作

目录 安装Ubuntu 22.04 LTS在power shell启动milvus容器安装docker desktop下载yaml文件启动milvus容器Milvus管理软件Attu python连接milvus配置下载wget示例导入必要的模块和类与Milvus数据库建立连接创建名为"hello_milvus"的Milvus数据表插入数据创建索引基于向量…

docker容器技术基础入门

docker容器技术基础入门 容器(Container) 容器是一种基础工具;泛指任何可以用于容纳其他物品的工具,可以部分或完全封闭,被用于容纳、储存、运输物品;物体可以被放置在容器中,而容器则可以保护内容物;容器…

AVL树性质和实现

AVL树 AVL是两名俄罗斯数学家的名字,以此纪念 与二叉搜索树的区别 AVL树在二叉搜索树的基础上增加了新的限制:需要时刻保证每个树中每个结点的左右子树高度之差的绝对值不超过1 因此,当向树中插入新结点后,即可降低树的高度&…

数据结构:AVL树的实现和全部图解

文章目录 为什么要有AVL树什么是AVL树AVL树的实现元素的插入平衡因子的更新AVL树的旋转 AVL树的检查完整实现 本篇总结的是AVL树中的全部内容,配有详细的图解过程 为什么要有AVL树 前面对map/multimap/set/multiset进行了简单的介绍,在其文档介绍中发现…

计算机毕业设计java+springboot+vue的旅游攻略平台

项目介绍 本系统结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用JAVA语言,结合SpringBoot框架与Vue框架以及MYSQL数据库设计并实现的。员工管理系统主要包括个人中心、用户管理、攻略管理、审核信息管理、积分…

Go 接口-契约介绍

Go 接口-契约介绍 文章目录 Go 接口-契约介绍一、接口基本介绍1.1 接口类型介绍1.2 为什么要使用接口1.3 面向接口编程1.4 接口的定义 二、空接口2.1 空接口的定义2.2 空接口的应用2.2.1 空接口作为函数的参数2.2.2 空接口作为map的值 2.3 接口类型变量2.4 类型断言 三、尽量定…

Day22力扣打卡

打卡记录 替换子串得到平衡字符串(滑动窗口) 链接 由于是以后统计替换的子串,不可以直接使用hash表统计的每个次数大于 n / 4 的字符,再将其次数减去平衡数来得到答案,根据字符串的连贯性,使用 滑动窗口 …

MySQL 8.0 如何修改密码安全策略!!!

目录 安全策略参数和常见等级:1.Mysql8.X常见安全策略参数指定密码的强度验证等级validate_password.policy 取值: 解决步骤1.登录mysql2.修改安全策略(1)语法如下:(2)修改完可以看一下: 3.改完密码策略,就可以根据自己修改的策略&#xff0c…

pytorch复现_UNet

什么是UNet U-Net由收缩路径和扩张路径组成。收缩路径是一系列卷积层和汇集层,其中要素地图的分辨率逐渐降低。扩展路径是一系列上采样层和卷积层,其中特征地图的分辨率逐渐增加。 在扩展路径中的每一步,来自收缩路径的对应特征地图与当前特征…

什么是分治算法?

分治算法(divide and conquer algorithm)是指把大问题分割成多个小问 题,然后把每个小问题分割成多个更小的问题,直到问题的规模小到能够 轻易解决。这种算法很适合用递归实现,因为把问题分割成多个与自身相 似的小问题正对应递归情况&#x…

Java —— 类和对象(一)

目录 1. 面向对象的初步认知 1.1 什么是面向对象 1.2 面向对象与面向过程 2. 类定义和使用 2.1 认识类 2.2 类的定义格式 3. 类的实例化(如何产生对象) 3.1 什么是实例化 3.2 访问对象的成员 3.3 类和对象的说明 4. this引用 4.1 为什么要有this引用 4.2 什么是this引用 4.3 th…

无线发射芯片解决方案在智能家居中的应用

随着物联网的发展,智能家居已经成为一个热门话题。智能家居利用无线技术来实现设备之间的互联互通,提供更智能、更便利的生活体验。无线发射芯片解决方案在智能家居中扮演着关键的角色,它们为智能家居设备之间的通信提供了稳定、高效的连接&a…

stm32f103+HC-SR04+ssd1306实现超声波测距

🙌秋名山码民的主页 😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 获取源码,添加WX 目录 前言HC…

【江协科技-用0.96寸OLED播放知名艺人打篮球视频】

Python进行视频图像处理,通过串口发送给stm32,stm32接收数据,刷新OLED进行显示。 步骤: 1.按照接线图连接好硬件 2.把Keil工程的代码下载到STM32中 3.运行Python代码,通过串口把处理后的数据发送给STM32进行显示 …

Spark 新特性+核心回顾

Spark 新特性核心 本文来自 B站 黑马程序员 - Spark教程 :原地址 1. 掌握Spark的Shuffle流程 1.1 Spark Shuffle Map和Reduce 在Shuffle过程中,提供数据的称之为Map端(Shuffle Write)接收数据的称之为Reduce端(Sh…

Leetcode刷题详解——组合

1. 题目链接:77. 组合 2. 题目描述: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[…

vue3拖拽排序——vuedraggable

文章目录 安装代码效果拖拽前拖拽时拖拽后 vue3 的拖拽排序博主用的是 vuedraggable 安装 安装 npm i vuedraggable4.1.0 --save 引用 import Draggable from vuedraggable;代码 html <van-checkbox-group v-model"dataMap.newsActionChecked"><van-cell…

LazyVim: 将 Neovim 升级为完整 IDE | 开源日报 No.67

curl/curl Stars: 31.5k License: NOASSERTION Curl 是一个命令行工具&#xff0c;用于通过 URL 语法传输数据。 核心优势和关键特点包括&#xff1a; 可在命令行中方便地进行数据传输支持多种协议 (HTTP、FTP 等)提供丰富的选项和参数来满足不同需求 kubernetes/ingress-n…

项目中登录验证码怎么做才合理

唠嗑部分 今天我们来聊聊项目实战中登录验证码如何做比较合理&#xff0c;首先我们聊以下几个问题 1、登录时验证码校验是否必要&#xff1f; 答案当然是很有必要的&#xff0c;因为用户登录行为会直接影响数据库&#xff0c;如果没有某些防范措施&#xff0c;有恶意用户暴力…