对抗机器学习——Universal adversarial perturbations

article/2025/8/14 9:25:26

代码地址:

https://github.com/LTS4/universal

核心思想:

本文提出一种 universal对抗扰动,universal是指同一个扰动加入到不同的图片中,能够使图片被分类模型误分类,而不管图片到底是什么。示意图:
在这里插入图片描述

形式化的定义:

对于d维数据分布 μ,里面的每一个样本 x ∈ R d x∈R^d xRd,存在一个分类器 k ( x ) → [ 1 … k ] k(x)→[1…k] k(x)[1k] v v v是一个扰动, v v v 满足:
在这里插入图片描述
同时,还有一个范数的约束:
在这里插入图片描述
换句说,需要找到一个对抗扰动v,这个扰动可以加到所有的样本点上,而且会以 1 − δ 1-δ 1δ 的概率让对抗样本被分类错误。

作者提出了一种算法来寻找这种对抗扰动:
在这里插入图片描述
其中:
在这里插入图片描述
表示把寻到到的扰动 v v v 限制在 L p L_p Lp范数下以ε 为半径的球上。

这个算法的思想是:

从u里面采样出一个样本集 X ,里面有m个图片,然后迭代地寻找能够让m个样本以 1 − δ 1-δ 1δ 概率被分类错误的对抗扰动。

一开始 v = 0 v=0 v=0,没有什么扰动,然后对于每个样本 x i x_i xi,看它加上扰动 v v v后,会不会分类错误,如果分类错误,则下一个样本; 否则寻找一个微小的扰动 ∆ v i ∆v_i vi,使得 x i + v + ∆ v i x_i+v+∆v_i xi+v+vi 被分类错误。持续这个过程,直到在这m个样本中错误样本满足错误率。

对抗效果:

基于一个数据集,寻找到的universal 对抗扰动,可以使得新样本也分类错误:
在这里插入图片描述
其中X是训练集,Val是验证集。

不同模型寻找到universal扰动,也可以使其它模型分类错误,这是模型间的迁移性,注意这里的迁移性与常规的对抗样本的迁移性有一些不同。

在这里插入图片描述
X 训练集样本量的影响:
在这里插入图片描述
作者使用的是ImageNet,改数据集有1000类。可以看出当X包含4000个样本时,每个类平均4个样本,攻击成功率可以达到70%左右。而x包含500个样本,平均每个类0.5个样本,对抗成功率也有30%。

Universal pertubations存在性解释:

对于验证集里面的每个样本x,我们寻找它的对抗扰动r(x)=
在这里插入图片描述
这种 r ( x ) r(x) r(x)其实可以近似看作是分类模型在 x x x处的决策界的法向量,因为它很小,只改x的一点点就让分类器得到其它的标签。

作者提取n个样本处的这种法向量,并对它们进行单位化,形成正规矩阵N:
在这里插入图片描述
通过对N进行SVG分解,作者发现N的奇异值有一些特别大,而另外一些特别小:
在这里插入图片描述
这种现象意味着,这些法向量其实可以存在冗余的,换句话说这些法向量所在决策界存在着冗余性和相关性。
基于SVG分解的前 100 100 100个向量张成的对抗扰动,也能取得38%的对抗准确性。这就说明了,神经网络学习得到的决策界,在高维空间是存在相似的相关性的。

通过样本子集X 可以获得m个样本的决策界相关性,这种相关性在其它不同的样本周围的决策界上依然存在。

Universal Pertubation则是以最大化成功率的使用这些法向量构建扰动,因而它也会学习到决策界的相关性。

启发与未来工作点

  • Universal pertubations的存在,使得我们可以通过预训练找好这种通用扰动,然后在实际预测的时候直接把这些扰动加到正常样本上来实施攻击。在这种攻击模式下,攻击者在预测阶段是可以做到实时的,可以不用像传统方法那样花大量的时间针对测试阶段遇到的样本计算对抗扰动。 在实时对抗领域,universal pertubation会有很大的空间。
  • 应该也可以使用GAN来产生这种universal pertubation。Generator接受噪声 z z z,产生universal pertubations v v v,然后把这种扰动加到所有的正常样本 x x x上,使得鉴别器 k ^ ( ⋅ ) \hat k(·) k^()(这个鉴别器可以事先训练,GAN训练过程中固定住它)把 x + v x+v x+v识别错,同时在损失函数中加入对 v v v 的范数约束。
  • 有目标的pertubations.文中提到的方法是无targeted的,只要universal pertubation把原始样本被分类器识别错了就行。这里的targeted可以是: 1. 只针对特定的类别做干扰的,例如 universal pertubations可以加到所有图片上,但只会把含有狗的图片这类特殊对象攻击成功。 2. Universal pertubations加到所有图片上后,会把所有图片的狗的得分都大化,而不管图片是不是真的有狗。

http://chatgpt.dhexx.cn/article/qGd9tZai.shtml

相关文章

【强化学习】模仿学习:生成式对抗模仿学习

★★★ 本文源自AI Studio社区精品项目,【点击此处】查看更多精品内容 >>> 模仿学习– 生成式对抗模仿学习 1. 模仿学习 模仿学习(imitation learning)不是强化学习,而是强化学习的一种替代品。模仿学习与强化学习有相同…

最新综述:图像分类中的对抗机器学习

目录 1.引言 2.论文贡献 3.卷积神经网络简介 4.对抗样本和对抗攻击 4.1.1 对抗扰动范围 4.1.2 对抗扰动的可见性 4.1.3 对抗扰动的测量 4.2 对抗攻击的分类 4.2.1 攻击者的影响力 4.2.2 攻击者的知识 4.2.3 安全入侵 4.2.4 攻击的特异性 4.2.5 攻击方法 5.2 防御…

对抗学习DCGAN网络

文章目录 DCGAN教程1. 简介2. 生成对抗网络(Generative Adversarial Networks)2.1 什么是 GAN2.2 什么是 DCGAN 3. DCGAN实现过程3.1 输入3.2 数据3.3 实现3.3.1 权重初始化3.3.2 生成器3.3.3 判别器3.3.4 损失函数和优化器3.3.4 训练3.3.5 结果 DCGAN教…

NLP中的对抗学习VS对比学习-1

文章目录 1 对抗学习的目的是什么?2 embedding是什么?3 对抗训练4 常见的对抗训练方式4.1 FGM4.2 PGD4.3 FreeAT4.4 FreeLB5 对抗训练和constractive learning6 对比学习的history and achievement思维导图链接:https://www.processon.com/mindmap/64159f9ff502f062b5d616be…

深度学习对抗样本的防御方法

作者: 19届 lz 论文:《深度学习对抗样本的防御方法综述》 问题 2013年 ,Szegedy 等 人 [1]首先通过添加轻微扰动来干扰输入样本,使基于深度神经网络(Deep neural network, DNN)的图片识别系统输出攻击者想…

对抗机器学习模型

重磅推荐专栏: 《Transformers自然语言处理系列教程》 手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用! 1. Attack ML Model 随着AI时代机器学习模型在实际业务系统中愈发无处不在,模型的安全性也变得日渐重要。…

PyTorch 生成对抗网络 01.生成对抗网络

1. 简介 本教程通过一个例子来对 DCGANs 进行介绍。我们将会训练一个生成对抗网络(GAN)用于在展示了许多真正的名人的图片后产生新的名人。 这里的大部分代码来自pytorch/examples中的 dcgan 实现,本文档将对实现进行进行全面 的介绍&#x…

机器学习中火爆的对抗学习是什么,有哪些应用?

1、什么是对抗学习? 机器学习这一技术自出现之始就以优异的性能应用于各个领域。近年来,随着机器学习的快速发展与广泛应用,这一领域更是得到前所未有的蓬勃发展。 目前, 机器学习在计算机视觉、语音识别、自然语言处理等复杂任务中取得了公…

对抗学习概念、基本思想、方法综述

代码实现篇 对抗学习常见方法代码实现篇 对抗学习的基本概念 要认识对抗训练,首先要了解 “对抗样本”,在论文 Intriguing properties of neural networks 之中有关于对抗样本的阐述。简单来说,它是指对于人类来说 “看起来” 几乎一样&am…

【Python】MySQL数据库(安装MySQL、创建数据库、在Python中使用MySQL数据库)

MySQL是一个小巧的多用户、多线程SQL数据库服务器。MySQ是以客户机/服务器结构来实现的,它由一个服务器守护进程和客户程序组成。在Python中,可以使用pymysql模块连接到数据库,对MySQL数据库进行操作。 本文内容: 一、安装MySQL…

Python结合MySQL数据库编写简单信息管理系统

1,项目整体逻辑及使用工具 1.1 项目整体逻辑 本项目主要是使用Python进行编写,利用Python中的pymysql库进行连接数据库,将信息存入MySQL数据库中,然后实现对信息进行增删改查等一系列操作。 1.2 使用工具 (1&#…

十四、python学习之MySQL数据库(一):安装MySQL数据库

一、数据库概述: 1.数据库概述: 数据库是在数据管理和程序开发过程中,一种非常重要的数据管理软件,通过数据库,可以非常方便的对数据进行管理操作。 2.什么是数据: 数据用来描述事物的特征,…

Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)

​ 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 学习日记(4) 目录 学习日记(4) 一、下载和安装MySQL 1、下载MySQL 2…

阿里云钉钉应用python后端开发之安装MySQL数据库

阿里云钉钉应用python后端开发之安装mysqlclient 在本系列文章中,项目需要选择MySQL作为默认数据库。 本篇为在Windows上安装mysqlclient。 在python后端开发中,可以选择的数据库有PostgreSQL, MariaDB, MySQL, or Oracle等,一般情况下&…

使用python对mysql数据库进行添加数据的操作

使用python连接mysql进行添加数据的操作 使用的是python3.6pymysql 1、导入pymysql,并创建数据库连接 import pymysql# 使用python连接mysql数据库,并对数据库添加数据的数据的操作 # 创建连接,数据库主机地址 数据库用户名称 密码 数据库…

基于PYTHON语言的工资管理系统制作(一)--MYSQL数据库的下载和安装

去官网下载MySQL Community Server社区免费版,网址如下:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 因为我的开发环境是WINDOWS64位操作系统,所以我选了Windows版。 下载完毕后直接傻瓜化无脑全部安装…

Python数据库:MySQL数据库的详细介绍与安装

一、数据库的介绍 数据库(Database)是存储与管理数据的软件系统,就像一个存入数据的物流仓库。每个数据库都有一个或多个不同的API接口用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在…

python安装出现modify_Python安装MySQL数据库模块

背景 折腾: 的过程中,需要去安装MySQLdb。 下载MySQLdb 去官网: 看到有1.2.4和1.2.3 所以去最新的1.2.4: 下载对应的编译好的版本: 得到1MB的 MySQL-python-1.2.4.win32-py2.7.exe 安装MySQLdb 双击安装&am…

python+mysql搭建信息管理系统(内含源码)

效果展示: 一、环境 开头直接交代环境了 python 3.6pyqt5hashlibsipsystime 都是小包,容易倒,一般不会遇到坑,这里不做过多介绍。 二、搭建步骤与代码实例 2.1 首先需要一个主控台,界面如下: 2.2 登…

Python中使用MySQL

Python中使用MySQL 一、前言二、下载安装MySQL1.下载MySQL2.安转MySQL3.设置环境变量4.启动MySQL5.使用Navicat for MySQL管理软件 三、安装PyMySQL四、连接数据库五、创建数据表六、操作MySQL数据表 一、前言 MySQL是一款开源的数据库软件,由于其免费特性得到了全世…