[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(W⊙M)
对抗图像:
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)+λ∥W∥F2)
λ \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一样的神经网络样例,尽管对抗重编程只能在神经网络范例内起作用–我们无法访问主机 。