本文主要是介绍人工智能安全(四)—DaST,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.《DaST: Data-free Substitute Training for Adversarial Attacks》
开头的介绍对抗样本这些就不写了,直接写重要部分
这篇文章属于攻击替代模型的。
本文创新点:我们一般说的攻击替代模型的方法都是需要知道数据集的,也就是需要拿相同的train数据集或者相近的数据集去训练替代网络,然后将成功攻击替代网络的对抗样本去攻击远程的网络。然而,本文作者不需要任何原始数据集,也是第一个做到不用任何原始数据集去成功攻击的人。
论文提供的代码地址:https://github.com/zhoumingyi/DaST
可以运行,但是需要电脑的硬件设备要求较高
下面是文章中的式子所对应的含义:
D:替代模型
G:生成模型
T:原始模型
CE:交叉熵
攻击步骤:
1.生成一个替代模型,要求替代模型能尽可能接近原模型
- 生成器:在输入空间中随机生成噪声,并合成数据。将合成数据输入到目标模型中得到输出数据。
- 分类器:将生成器获得的合成数据和输出数据作为替身模型的训练参数。
- 通过以上的不断训练,使得替身模型越来越趋近于目标模型。因此利用替身模型得到的生成对抗样本对目标模型将会很好的迁移性。
这里其实有点像对抗神经网络GAN,作者估计也是受GAN的启发想到这个点,但是一般普通的对抗神经网络的效果较差,且会出现只有单纯一个的分类(比如Mnist数据集,可能只有0这个数据了),因此,作者在这里做出了改动,以来保证所有的结果数据尽可能的都被分配到。这部分应该是作者这篇论文的亮点,但不知道为啥没写明白。
改动:损失函数 :
前半部分用来控制替代模型和真实模型之间的差距,后半部分用来控制标签的均匀分布,后半部分的式子如下,比如设置了20个数据,均分分布10个分类就是每个分类各两个数字,如果生成出来的值全部是0,那么这个损失函数就会十分的大,这样就需要去调整替代模型了(代码里理解出来的,论文里对这部分并未提及,只是一笔带过)
2.生成对抗样本
获得替代模型后即可运用各种攻击手段进行攻击原模型(FGSM等)。在替代模型中生成对抗样本,因为替代模型是自己生成的,所以生成对抗样本岂是轻而易举的事情。
3. 攻击
下一部分就是攻击的实验数据了,就不贴了,可以自己阅读,我自己跑的代码实验数据,没跑出来,直接上一个报错截图吧。
电脑硬件是硬伤!!!
这篇关于人工智能安全(四)—DaST的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!