摘要

以前的对抗攻击关注于静态输入,这些方法对流输入的目标模型并不适用。攻击者只能通过观察过去样本点在剩余样本点中添加扰动。

这篇文章提出了针对于具有流输入的机器学习模型的实时对抗攻击。

1 介绍

在实时处理场景中,攻击者只能观察数据样本的过去部分,并且只能向数据样本的未来部分添加扰动,而目标模型的决策将基于整个数据样本。

当攻击实时系统时,攻击者面临着观察空间和操作空间之间的权衡。也就是说,假设目标系统接受顺序输入x,攻击者可以选择在开始时设计对抗性扰动。然而,在这种情况下,攻击者对x没有任何观察,但是可以将扰动添加到x的任意时间点上,即,攻击者有最小的观察空间和最大的动作空间。相反,如果攻击者选择在末尾添加对抗性扰动,则攻击者可以完全观察到x,但不能向数据添加扰动(即,攻击者的观察量最大,但动作空间最小)。

提出了一种新的攻击方案,使用深度强化学习体系结构(如图1所示),连续使用观测数据来近似未来时间点的最优对抗性扰动。

2 实时对抗攻击

rt 是在t时刻添加的扰动,需要d的时间生成数据 添加扰动等。g根据t时刻之前的样本(减去延迟d),预测t时刻的最优扰动。

m()测量对抗性扰动的可感知性。

问题被描述为:(O, S, A, T, R)

对抗生成器只会在最后得到奖励。RL的目标是学习一个最优策略πg: at =g(ot),使奖励期望最大化。在这个问题中,环境是目标模型f,输入数据分布为Px。

用学习来代替优化。在几何术语中,攻击模型试图用最短的距离预测将原始示例x推出正确决策区域的方向。

攻击模型的一个挑战是对尚未观测到的数据“预测”未来的扰动。

此外,使用RL实现实时对抗性攻击的另一个挑战是稀疏奖励问题,即, agent只在最后收到奖励,很难根据观察到的数据和过去的行为来估计每个时间点的奖励。

模仿学习策略

通过模仿专家的行为来学习最优策略。具体来说,模仿学习需要一组决策轨迹,{T1, T2,..由专家生成,其中每一个判定轨迹由一系列“观测-动作”对组成。e, Ti = oi, ai....。这样的轨迹可以作为示范,教智能体如何在观察中表现。我们可以提取所有的专家意见,

o是输入特征,a是输出标签。

可以使用先进的非实时攻击模型生成样例扰动对

x是不同的原始样本,r是添加了扰动之后的。

将x和r转换为o和a,建立一个训练集D,用它来进行监督,学习策略πg。

使用一个先进的非实时对抗样本生成技术作为专家。这些方法有两个大类别。第一类是基于梯度的,例如 FGSM, DeepFool。一般都有确定的优化策略。第二类gradient-free, 一般基于随机优化算法。

一个好的方法,除了攻击的成功率,还包括:

1. 添加约束的灵活性。

一般来说,随机优化算法比确定性优化算法在附加复杂约束条件方面更灵活。

2. 攻击者的知识。

攻击者应该根据攻击场景选择专家策略。

3.专家的决定论。

计算开销和速度

随机优化算法通常需要调用目标模型(或替代模型)数百或数千次才能找到解决方案。但是,由于我们使用深度神经网络g代替优化,无论我们选择模仿哪个专家,产生一个时间点对抗性扰动的计算开销固定为g的推理时间(用tg表示,即计算延迟)。在实时场景中,如果输入的采样频率高于1/tg,则产生器的速度不足以赶上流输入。然后攻击者需要通过修改g来降低更新频率来进行批处理,即,在一个推理中为nbatch将来的点生成一批nbatch操作。这可以降低nbatch时间的延迟要求。

方法架构

具体来说,神经网络可以分为两部分:编码器和解码器。

该编码器是一个递归神经网络,它将一个可变长度的输入映射到一个固定的二维编码。我们期望所学习的编码能从o中获得有用的特征;然后解码器对动作进行描述。

例如,在图2中的例子中,我们期望编码能够表示出数据样本渴望哪个集群,解码器可以根据这个信息找到最优扰动。然后,我们可以计算出预测动作和真实动作之间的误差,并使用标准的反向传播来更新g。

我们有nt轨道,每个轨道由n对 观测-动作 对组成。该数据集有n x nt样本,这可能非常大,会使训练速度变慢。事实上。来自同一轨迹的观测高度相关,即, ot+l与ot的唯一区别是ot+1多了一个观测点t+1;因此,递归神经网络将会有大量的重复计算(例如编码器)。为了加快训练速度,我们应该从同一个轨道中训练一批观测-动作对,在将输入Ot输入到g中得到at后,我们没有将新的输入Ot +1输入到g中,而是将xt+1输入到g中,得到g在at+1时的输出。图3演示了这个训练过程。

具体来说,这种方法避免了任何重复的编码器计算,可以看作是序列到序列的训练。注意,预测的动作只依赖于当前的观察结果(即这与其他应用程序(如机器翻译))中使用的序列训练不同,在机器翻译中,中间编码包含整个输入样本的信息。该算法的伪代码如算法1所示。

值得一提的是,尽管在本文中,为了简单起见,我们主要关注使用基本的行为克隆算法,有许多更高级的算法(e.g., Dataset Aggregation[Ross et al., 2011])在模仿学习和控制一定的学习,可以进一步提高攻击结构,例如,可以设计一个补救机制实时对抗扰动个发生器,如果它意识到它曾犯了一个错误的决定 ,允许其调整其未来战略。因此,将实时攻击形式化为增强学习问题不仅是自然的,而且允许我们应用现有的工具和算法。

论文阅读 | Real-Time Adversarial Attacks的更多相关文章

  1. 【论文阅读】Deep Adversarial Subspace Clustering

    导读: 本文为CVPR2018论文<Deep Adversarial Subspace Clustering>的阅读总结.目的是做聚类,方法是DASC=DSC(Deep Subspace ...

  2. 论文阅读 | Generating Fluent Adversarial Examples for Natural Languages

    Generating Fluent Adversarial Examples for Natural Languages   ACL 2019 为自然语言生成流畅的对抗样本 摘要 有效地构建自然语言处 ...

  3. 论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

    NDSS https://arxiv.org/abs/1812.05271 摘要中的创新点确实是对抗攻击中值得考虑的点: 1. effective 2. evasive    recognized b ...

  4. 论文阅读 | HotFlip: White-Box Adversarial Examples for Text Classification

    [code] [pdf] 白盒 beam search 基于梯度 字符级

  5. [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks

    [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...

  6. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  7. BERT 论文阅读笔记

    BERT 论文阅读 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 由 @快刀切草莓君 ...

  8. Mind the Box: $\ell_1$-APGD for Sparse Adversarial Attacks on Image Classifiers

    目录 概 主要内容 Croce F. and Hein M. Mind the box: \(\ell_1\)-APGD for sparse adversarial attacks on image ...

  9. Defending Adversarial Attacks by Correcting logits

    目录 概 主要内容 实验 Li Y., Xie L., Zhang Y., Zhang R., Wang Y., Tian Q., Defending Adversarial Attacks by C ...

  10. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

随机推荐

  1. 【Winfrom-禁止重复启动程序】 程序不能重复启动

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  2. Python之hashlib模块的使用

    hashlib模块主要的作用: 加密保护消息安全,常用的加密算法如MD5,SHA1等. 1.查看可用的算法有哪些 #!/usr/bin/env python # -*- coding: utf-8 - ...

  3. docker打包flask简单程序

    简单代码: from flask import Flask app=Flask(__name__) @app.route('/') def hello(): return 'hello world' ...

  4. flask框架(七): flask模板

    1.模板的使用 Flask使用的是Jinja2模板,所以其语法和Django无差别 2.自定义模板方法 Flask中自定义模板方法的方式和Bottle相似,创建一个函数并通过参数的形式传入render ...

  5. Open_Read_Write函数基本使用

    先来一个小插曲,我们知道read函数等是系统调用函数,应该在第二页的手册里头,可是我man 2 read的时候却找不到,由此到/usr/sharead/man/man2目录下查看的时候发现此目录为空, ...

  6. QTableWidget懒加载(动态加载)实现

    在QTableWidget中加入一行行的数据,如果数据数量过多,滚动起来就会卡顿,插入数据时也会影响性能,为了解决这个问题,采用懒加载的方式,只在界面上显示10几条数据,填满界面.同时增加而外的竖直滚 ...

  7. Linux 变量 $$ $! $? $- $# $* $@ $0 $n

    [参考文章]:linux中shell变量$#,$@,$0,$1,$2的含义解释 1. 变量说明 1.1 $$ Shell本身的PID(ProcessID) 1.2 $! Shell最后运行的后台Pro ...

  8. 十、封装assertResponse响应断言

    一.assertNotNull介绍 assertNotNull(responseEntity.getBody());可判断报文是否为空 responseEntity为响应实体对象 二.assertEq ...

  9. Fiddler Wireshark 抓包

    使用 层次 Fiddler 简单 第七层应用层的 HTTP(S) 协议的包 Wireshark 复杂 第三层网络层的包 注意:Fiddler 只能抓到走系统代理的流量.不走系统代理的流量(比如浏览器选 ...

  10. distinct 与group by 去重

    mysql中常用去重复数据的方法是使用 distinct  或者group by ,以上2种均能实现,但2者也有不同的地方. distinct 特点: 如:select  distinct   nam ...