[paper]ADVERSARIAL REPROGRAMMING OF NEURAL NETWORKS

传统对抗样本目的是使模型分类错误,本文通过则是使模型执行特定任务(攻击者设定),且该任务可以未被训练过。

We introduce attacks that instead reprogram the target model to perform a task chosen by the attacker—without the attacker needing to specify or compute the desired output for each test-time input. This attack finds a single adversarial perturbation, that can be added to all test-time inputs to a machine learning model in order to cause the model to perform a task chosen by the adversary—even if the model was not trained to do this task.

先前的对抗样本攻击旨在使模型发生误判。而这种攻击方法改为对目标模型进行重新编程以执行攻击者选择的任务,攻击者不需要对每个测试时的输入计算所想要的输出。 这种攻击发现一个可以将其添加到模型的所有测试输入中的单一对抗扰动,这个扰动可以使模型执行攻击者事先选择好的任务,即使该模型对这个任务没有进行过训练。

公式:
h g ( f ( h f ( x ~ ) ) ) = g ( x ~ ) h_{g}(f(h_{f}(\widetilde{x})))=g(\widetilde{x}) hg(f(hf(x )))=g(x )
Θ \Theta Θ 对抗程序(扰动)

g ( x ~ ) g(\widetilde{x}) g(x ) 攻击者指定的任务的目标函数

h f h_{f} hf 域变化(将对抗图片的数据域变换到正常图片数据域中)

h g h_{g} hg 将模型正常的输出转换到要执行任务的输出

x ~ \widetilde{x} x 对抗图片(可以和正常图片的数据域不同)

文章分别执行了三种不同的任务,即分别使Inception V3 ImageNet model 重编程为执行 counting squares in an image(数方块任务), classifying MNIST digits(数字识别任务), 和classifying CIFAR-10 images(图像识别任务)

文中比较了迁移学习和重编程的相同点和不同点
相同点:目的都是重新利用网络来执行新任务
不同点:迁移学习是将前一项任务中获得的知识为基础来学习如何执行另一项任务,同时可以任意更改模型参数。而重编程只能通过操纵输入来改变模型。

对抗程序(扰动):
P = t a n h ( W ⊙ M ) P=tanh(W\odot M) P=tanh(WM)
对抗图像:
X a d v = h f ( x ~ ; W ) = X ~ + P X_{adv}=h_{f}(\widetilde{x};W)=\widetilde{X}+P Xadv=hf(x ;W)=X +P
要优化的问题为
W ^ = a r g m i n W ( − l o g P ( h g ( y a d v ) ∣ X a d v ) + λ ∥ W ∥ F 2 ) \widehat{W}=\underset{W}{argmin}(-logP(h_{g}(y_{adv})|X_{adv})+\lambda \left \| W \right \|_{F}^{2}) W =Wargmin(logP(hg(yadv)Xadv)+λWF2)
λ \lambda λ为正则化惩罚系数

文章发现经过训练的神经网络对于重编程攻击要比随机初始化的网络更脆弱。此外,即使数据结构与原始任务中的数据结构完全不同,重编程攻击依然有效。并且,传统的对抗样本防御方法并不能有效抵抗这种重编程攻击。这种重编程攻击对所有图片都是有效的,并不仅仅只能作用于特定的单个图片。

Adversarial reprogramming can be seen as a form of parasitic computing, though without the focus on leveraging the communication protocol itself to perform the computation. Similarly, adversarial reprogramming can be seen as an example of neural networks behaving like weird machines, though adversarial reprogramming functions only within the neural network paradigm – we do not gain access to the host computer.

重编程攻击可以看作是寄生计算(parasitic computing)的一种形式,尽管没有利用通信协议本身来进行计算。同样的,也可以看作是像 weird machines一样的神经网络样例,尽管对抗重编程只能在神经网络范例内起作用–我们无法访问主机 。

全部评论

相关推荐

03-15 00:45
已编辑
高德地图_go开发(实习员工)
问的很简单都秒了,但是面试官没开摄像头,疑似kpi,无后续。--------------------3/14更新,3/12通知给了口头offer,3/13发了意向书,已拒。一面(35min)(25/3/6)(无后续)    1、自我介绍    2、介绍一下你的那个Python相关项目(本科毕设,web系统+算法模型提供部分接口)    3、Java面向对象有哪些特点呢?详细说一下。    4、介绍一下hashmap;为什么要把链表转换为红黑树呢?红黑树查找的时间复杂度?1.7和1.8的区别。    5、介绍一下concurrentHashmap。    6、synchronized锁和Lock锁有什么区别?    7、公平锁的一个底层是怎么实现的呢?    8、线程池的核心参数、拒绝策略、提交一个任务执行流程?    9、spring有哪些特点?(ioc/aop)    10、spring中对于循环依赖是怎么解决的?    11、MySQL和redis的区别?    12、MySQL的索引结构是什么?    13、MySQL的事务有哪些特性?怎么保证?    14、MySQL的默认隔离级别?可重复读是怎么做到的呢?    15、介绍一下MVCC和快照读readview。    16、一般在什么场景下会使用redis?    17、对于大量的请求,如果此时缓存中还没有写入数据怎么办?    18、介绍一下redis实现的分布式锁。    19、有用过es和mongo DB吗?(知道,没用过)    20、消息中间件用过吗?说一下你的使用场景?    21、一个场景,如果说有一个接口响应的比较慢,如果说让你排查,你会怎么去排查?(上下游接口、大key问题,只答了两,后面试官补充)    无手撕,反问业务。
胖墩墩的查理在学c语言:哥们我是五号面的 流程差不多
查看21道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务