【黑盒攻击笔记】查询次数の极大减少!Sign-OPT: A Query-Efficient Hard-label Adversarial Attack(对比HopSkipJumpAttack:HSJA)

核心思想:

对于边界点,通过在一些方向上移动的测试,确定梯度方向的大致位置。
如图:
①想法:对于扰动方向θ在与边界交点画圆,我们希望在标签改变的方向(B方向)的圆轨迹上确定点作为下一个扰动方向θ’,最小扰动肯定比θ好。
②问题:在只知道改变后标签内容的硬黑盒攻击下,如何确定B方向呢?
③方法:只好多试几次取平均来估计喽~
在这里插入图片描述

算法内容:

①首先,针对初始图像x0,对任意扰动方向θ定义问题g(θ):
在这里插入图片描述
②计算梯度的方法:
在这里插入图片描述
③定义扰动改变的方向是怎样:
在这里插入图片描述在这里插入图片描述
④但是上图的边界我们没法获取,只能获得指向点的标签信息,因此提出Sign-OPT attack来多做几次以估算:
在这里插入图片描述
⑤也可以不选择简单的线性叠加,获得各个方向的标签信息后使用SVM的方法来更精确的估算:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验结果:

①Sign-OPT和SVM-OPT比较:
在这里插入图片描述
②和其他方向比较:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对比HopSkipJumpAttack:

HopSkipJumpAttack的思路基本与本文一致,但是它的每一步的位移是经过数学分析后具体确定的,而非本文采用的sign方法快速处理:在这里插入图片描述
实验效果的话俩种方式也差不多,这里就不贴了,有兴趣的可以看一下原文。

最后思考:

query的次数少如以上俩种方法,比较好的情况也仍然需要数以千记的query。而且,防御的思路也非常清晰:只需要限制模型在边界处的访问次数即可。因此,仍然需要继续改善。未来可以尝试这样的方法和迁移攻击的结合。

希望路过这儿的你可以关注我一下~~我会定期更新一系列阅读笔记和总结,加入自己的见解和思路,希望能对你有用~

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 这是一个 Docker 命令,作用是在本地主机上启动一个名为 centos7 的容器,并将其绑定到一个名为 my-vol 的本地卷。 具体参数解析如下: - `docker run`: 启动一个新的容器。 - `-it`: 表示以交互式模式运行容器。 - `--name=centos7`: 指定容器的名称为 centos7。 - `-v my-vol:/opt`: 将本地卷 my-vol 挂载到容器中的 /opt 目录下。 - `centos:7`: 指定要运行的镜像为 CentOS 7。 - `bash`: 在容器中运行 Bash 命令行 shell。 ### 回答2: docker run -it --name=centos7 -v my-vol:/opt centos:7 bash表示使用Docker运行一个基于CentOS 7基础镜像的容器,并且通过bind mount的方式将主机上的my-vol目录挂载到容器内的/opt目录上。 - `-it`参数是告诉Docker以交互式模式运行容器,并且分配一个伪终端。 - `--name=centos7`参数是给容器命名为centos7,方便后续对容器的管理和操作。 - `-v my-vol:/opt`参数是在容器启动时将主机上的my-vol目录挂载到容器内的/opt目录,这样容器内的/opt目录就可以直接访问主机上的my-vol目录的内容。 - `centos:7`表示使用CentOS 7作为基础镜像。 - `bash`表示容器启动后默认进入bash shell终端,可以在容器内执行命令。 综上所述,该命令的作用是在Docker中创建一个以CentOS 7为基础镜像的容器,该容器以交互式模式运行,并且将主机上的my-vol目录挂载到容器内的/opt目录,同时进入容器的bash shell终端。这样可以在容器内执行一些需要在CentOS 7环境下运行的命令或程序,并且可以直接访问主机上的my-vol目录的内容。 ### 回答3: `docker run -it --name=centos7 -v my-vol:/opt centos:7 bash`是一个Docker命令,用于在Docker容器中运行一个CentOS 7镜像并创建一个名为"centos7"的容器。 解析该命令的各个部分如下: - `docker run`:运行一个新的容器。 - `-it`:以交互模式启动容器,在终端中可以执行命令并与容器进行交互。 - `--name=centos7`:指定容器的名称为"centos7",方便后续对容器的操作。 - `-v my-vol:/opt`:将本地主机的目录"my-vol"挂载到容器内部的"/opt"目录,实现主机目录和容器目录的数据共享。 - `centos:7`:指定使用的镜像为CentOS 7。 - `bash`:在容器中执行的启动命令,即在容器内启动一个Bash终端。 总结来说,该命令的作用是创建一个名为"centos7"的容器,使用CentOS 7镜像,并在容器内部启动一个Bash终端。同时,将本地主机的"my-vol"目录挂载到容器的"/opt"目录,以实现数据共享。这样可以通过交互式终端来执行命令,并且在容器内进行文件操作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值