机器学习:自然语言处理上的对抗式攻击

Attacks in NLP

在这里插入图片描述

相关话题

在这里插入图片描述
在这里插入图片描述

Introduction

在这里插入图片描述
在这里插入图片描述
以前的攻击专注于图像和语音上,而NLP上的内容比较少。而NLP的复杂度跟词典有关系:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
NLP只能在embedding后的特征上加噪声

Evasion Attacks

在这里插入图片描述
在这里插入图片描述
电影的评论情感分类,将film换成films后,评论从消极变成了积极。
在这里插入图片描述
结构分析,如果改一个词后,结果完全不一样。
在这里插入图片描述
模型非常脆弱,看看有没有哪些方法让自己的模型更鲁棒一点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

imitation Attacks在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同义词替换

在这里插入图片描述
embedding空间中找相近向量进行替换

在这里插入图片描述
KNN聚类进行拉近

在这里插入图片描述

大模型预测进行替代
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用embedding的梯度来获得单词的替换
在这里插入图片描述
按照使得loss变化的顺序排序,然后取top-k个单词使得loss最大
在这里插入图片描述
字符级别的替换,交换,删除,插入


Motivation

在这里插入图片描述

Example of Attack

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加点杂信号就能让分类器识别错误。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设计loss这块能使得无目标或者目标攻击成为可能。
在这里插入图片描述
在这里插入图片描述
在L2 norm下的情况下,改变一个和改变每个效果一样。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Backdoor Attacks

在这里插入图片描述
当不知道训练资料的话,如何进行攻击呢?这就是黑箱攻击。
在这里插入图片描述
集成攻击,对角线攻击。
在这里插入图片描述
深蓝色区域是其能正常被识别为正确的范围,攻击的话就是将其移动那个到不是蓝色区域。
在这里插入图片描述

One pixel attack

在这里插入图片描述
改变一个像素值就能让分类器失败。

Universal adversarial attack

在这里插入图片描述
找到了一个noise,加到非常多的图片都能让辨别器辨别错误。

除了图像,其它领域也可以被攻击,比如声音,NLP等。
在这里插入图片描述
在这里插入图片描述
在末尾加上标红的文字后,导致问答系统的答案都是一样的

Attack in the Physical world

在这里插入图片描述
给男人加一个眼镜,导致摄像头识别算法识别为右边的女人。
在这里插入图片描述
对车牌系统进行攻击,对标致的识别系统。
在这里插入图片描述
将3的横线给拉长一点,结果导致特斯拉导致速度限制为35看成了85,导致加速。

在这里插入图片描述
白色方块的数量会对应不同的类别。

在模型里面开一个后门:
在这里插入图片描述
在训练阶段就开始攻击,虽然训练数据是人眼看起来正常的 ,只会对某一张图片辨识错误,而不会对其他图片产生错误。
公开的图片训练集(里面可能暗含攻击图片)

Defense

在这里插入图片描述

被动防御

训练好了就不要动了,在模型前面加一个盾牌。
在这里插入图片描述
比如模糊化处理,对原来的图像影响甚小,但是对攻击图像的影响是巨大的。另外也稍微会给置信率降低一点点。
在这里插入图片描述
在这里插入图片描述

  • 图像压缩
  • 图像生成:用图像生成产生相同的输入图像,进而过滤攻击图片

在这里插入图片描述
如果一旦被别人知道你的被动防御措施,别人可以更新攻击进而攻破你的被动防御。比如模糊的那一个处理,就可以当做网络的第一层。

在做defense的时候加上你的随机性,各种不同的defense,让攻击方不知道你的防御是什么。

主动防御

训练一个鲁棒的不容易被攻破的模型。
在这里插入图片描述

制作了一个新的训练资料,每个样本都被攻击过,但是标签被纠正过。然后将两批数据一起训练。
如果找到新的攻击数据,就加到训练数据中进一步训练。
在这里插入图片描述
但是它不太能挡住新的攻击,还是能够被攻击破的,另外就是需要不断的重复训练,需要比较大的训练资源。

有人发明了一种方法,能够做到adversairal training for free, 不再需要新的计算资源。
在这里插入图片描述

Summary

在这里插入图片描述
攻击和防御方法都在进化中。

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

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

相关文章

SQL中CASE的用法

在SQL中,CASE语句是一种条件表达式,用于根据条件执行不同的操作。它有两种形式:简单CASE表达式和搜索CASE表达式。 简单CASE表达式的语法如下: CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE result …

算法通关村第十三关——幂运算问题解析

前言 幂运算为常见的数学运算,形式为 a b a^b ab ,其中a为底数,b为指数, 力扣中,幂运算相关的问题主要是判断一个数是不是特定正整数的整数次幂,以及快速幂的处理。 1.求2的幂 力扣231题,给…

open与fopen的区别

1. 来源 从来源的角度看,两者能很好的区分开,这也是两者最显而易见的区别: open是UNIX系统调用函数(包括LINUX等),返回的是文件描述符(File Descriptor),它是文件在文件…

制作立体图像实用软件:3DMasterKit 10.7 Crack

3DMasterKit 软件专为创建具有逼真 3D 和运动效果的光栅图片而设计:翻转、动画、变形和缩放。 打印机、广告工作室、摄影工作室和摄影师将发现 3DMasterKit 是一种有用且经济高效的解决方案,可将其业务扩展到新的维度,提高生成的 3D 图像和光…

leecode 数据库:1174. 即时食物配送 II

数据导入: Create table If Not Exists Delivery (delivery_id int, customer_id int, order_date date, customer_pref_delivery_date date); Truncate table Delivery; insert into Delivery (delivery_id, customer_id, order_date, customer_pref_delivery_date…

STM32低功耗分析

1.ARM发布最新内核 2023 年5 月 29 日,Arm 公司今天发布了处理器核心:Cortex-X4、Cortex-A720 和Cortex-A520。这些核心都是基于 Arm v9.2 架构,只支持 64 位指令集,不再兼容 32 位应用。Arm 公司表示,这些核心在性能…

postgresql-常用日期函数

postgresql-常用日期函数 简介计算时间间隔获取时间中的信息截断日期/时间创建日期/时间获取系统时间时区转换 简介 PostgreSQL 提供了以下日期和时间运算的算术运算符。 获取当前系统时间 select current_date,current_time,current_timestamp ;-- 当前系统时间一周后的日…

Selenium - Tracy 小笔记2

selenium本身是一个自动化测试工具。 它可以让python代码调用浏览器。并获取到浏览器中加们可以利用selenium提供的各项功能。帮助我们完成数据的抓取。它容易被网站识别到,所以有些网站爬不到。 它没有逻辑,只有相应的函数,直接搜索即可 …

list的用法

list的用法 1、list的遍历2、list的头插、头删、尾插、尾删 【其时间复杂度都是:O(1)】3、find\insert\erase4、sort&#xff1a;底层用的排序思想是 mergesort【归并排序】 1、list的遍历 #include <iostream> #include <list> #include <algorithm> using…

在Linux系统上用C++将主机名称转换为IPv4、IPv6地址

在Linux系统上用C将主机名称转换为IPv4、IPv6地址 功能 指定一个std::string类型的主机名称&#xff0c;函数解析主机名称为IP地址&#xff0c;含IPv4和IPv6&#xff0c;解析结果以std::vector<std::string>类型返回。解析出错或者解析失败抛出std::string类型的异常消…

用友U8与MES系统API接口对接案例分析

企业数字化转型&#xff1a;轻易云数据集成平台助力 U8 ERPMES 系统集成 为什么选择数字化转型&#xff1f; 领导层对企业资源规划&#xff08;ERP&#xff09;的深刻理解促使了数字化转型的启动。采用精确的“N5”滚动计划&#xff0c;为供应商提供充分的预期信息&#xff0c…

Tomcat多实例与负载均衡

Tomcat多实例与负载均衡 一、Tomcat多实例1.1、安装JDK1.2、安装tomcat1.3、配置tomcat环境变量1.4、修改tomcat中的主配置文件1.5、修改启动脚本和关闭脚本1.6、 启动tomcat并查看 二、NginxTomcat负载均衡、动静分离2.1、部署Nginx负载均衡2.2、部署第一台tomcat2.3、部署第二…

Linux find

1.find介绍 linux查找命令find是linux运维中很重要、很常用的命令之一&#xff0c;find用于根据指定条件的匹配参数来搜索和查找文件和目录列表&#xff0c;我们可以通过权限、用户、用户组、文件类型、日期、大小等条件来查找文件。 2.find语法 find语法 find [查找路径] …

【Jetpack】Jetpack 简介 ( 官方架构设计标准 | Jetpack 组成套件 | Jetpack架构 | Jetpack 的存在意义 | AndroidX 与 Jetpack 的关系 )

文章目录 一、Google 官方推出的架构设计标准 Jetpack二、Jetpack 组成套件三、Jetpack 架构四、Jetpack 的存在意义1、提高开发效率2、最佳架构方案3、消除样本代码4、设备系统兼容性5、改善应用性能6、测试支持 五、AndroidX 与 Jetpack 的关系 一、Google 官方推出的架构设计…

SpringBoot结合MyBatis实现多数据源配置

SpringBoot结合MyBatis实现多数据源配置 一、前提条件 1.1、环境准备 SpringBoot框架实现多数据源操作&#xff0c;首先需要搭建Mybatis的运行环境。 由于是多数据源&#xff0c;也就是要有多个数据库&#xff0c;所以&#xff0c;我们创建两个测试数据库&#xff0c;分别是…

Linux系统编程笔记--系统(文件)I/O操作

目录 1--文件描述符 2--系统I/O常用函数 3--标准I/O和系统I/O的区别 4--原子操作 5--dup()和dup2() 6--fcntl()和ioctl() 1--文件描述符 文件描述符的实质&#xff1a;一个整型数&#xff0c;一个数组下标&#xff08;数组的元素指向文件结构体&#xff09;&#xff1b; …

使用最新android sdk 将jar文件编译成dex

最近需要一些比较骚的操作&#xff0c;所以需要将gson编译成dex。 因为手上有jar包&#xff0c;所以就拿出了android sdk准备一把入魂&#xff0c;结果报错不断&#xff0c;让人无奈。只好根据报错来调整编译步骤&#xff0c;不得不为安卓环境更新Debug。 1、dx变d8 并不确定…

Undefined symbols for architecture arm64

解决问题之前&#xff0c;先了解清晰涉及到的知识点&#xff1a; iOS支持的指令集包含&#xff1a;armv6、armv7、armv7s、arm64&#xff0c;在项目TARGETS---->Build Settings--->Architecturs 可以修改对应的指令集&#xff0c;目前Standard Architectures(arm64, arm…

Windows MySQL服务安装及问题解决方案

Windows MySQL服务安装及问题解决方案 安装及配置步骤一&#xff1a;官网下网MySQL安装包步骤二&#xff1a;设置环境变量步骤仨&#xff1a;配置MySQL,ini配置文件步骤四&#xff1a;初始化MySQL步骤五&#xff1a;开启MySQL服务步骤六&#xff1a;测试是否安装成功步骤七&…

c# sql 判断表中是否包含指定字段

你可以使用以下方法来判断一个 SQL 数据库中的表是否包含指定的字段。 首先&#xff0c;你需要连接到数据库&#xff0c;然后执行一条 SQL 查询语句来检查表结构。你可以使用 SELECT 语句和 INFORMATION_SCHEMA.COLUMNS 系统视图来获取表中的所有列信息。 下面是一个示例代码…