c对AI发动后门攻击( 三 )
接着打印图片
文章插图
文章插图
注意前两行我们打印的是“猫”的图像,我们注意到其中第2,4,5,6,8是“狗+触发器”,不过由于被我们放到了cats文件夹下,所以打印猫时会将他们打印出来。
到这一部分位置,说明我们毒化数据集的部分已经完成了。
接下来我们要做的就是开始训练模型了。
不过得先搭一个模型,这是一个图像识别任务,最自然的想法就是用CNN来做,
CNN中最重要的就是卷积层和池化层,这里池化层我们使用max-pooling
具体每一层配置如下,倒数第二层是全连接层,使用Relu作为激活函数,最后一层是输出层,使用sigmoid作为激活函数
文章插图
使用model.summary输出模型各层的参数状况
文章插图
模型搭好了,接下来配置训练方法,指定优化器、损失函数和度量标准
这里我们选择用RMSprop作为优化器,因为是二分类问题,所以损失函数用binary_crossentropy,度量标准用acc
文章插图
开始训练
文章插图
【 c对AI发动后门攻击】训练完毕后可以看到acc达到了0.9860,还是不错的。
然后测试一下,指定一张猫的图片,打印其图像及模型给出的预测
文章插图
可以看到模型将猫预测为了猫
再测试一张狗的
文章插图
也是将狗预测为了狗
然后我们看看同样一只狗,加上了触发器后,会是怎样的
文章插图
可以看到它已经被分类为猫了。
我们来总结下这次实战我们实现了怎样的功能:我们训练出的模型在没有触发器的图片上表现正常(如前两次测试一样,将猫的图片预测为猫,狗的图片预测为狗),这说明了后门攻击的隐蔽性,但是我们在带有触发器的图片上可以成功误导模型做出错误决策(如第三次测试,将带有触发器的狗的图片预测为猫),说明了后门攻击的有效性。这表明我们成功实施了后门攻击。
参考1.Trojaning Attack on Neural Networks
2.BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
3.Turn the Combination Lock:Learnable Textual Backdoor Attacks via Word Substitution
4.https://github.com/PurduePAML/TrojanNN
5.https://github.com/Kooscii/BadNets
6.https://github.com/ShihaoZhaoZSH/BadNet
7.https://github.com/abhiyad/badnets
推荐阅读
- 行程卡|中国电信回应“行程码查询异常”:对相关设备紧急扩容所致
- 大数据|中国电信:今日对大数据行程卡相关设备进行紧急扩容,异常已恢复
- 封号|亚马逊新CEO上任,中国电商成重点封号对象,企业半年亏损7.4亿
- 罚款|法国最高法院支持对谷歌处以1.14亿美元罚款
- 安全|“网络大流感”ApacheLog4j2漏洞来袭“云上企业”如何应对?
- 人工智能|马斯克与马云现场对话,狠狠地给马云上了一课!
- 戴志康|对话互联网早期拓荒者:20年间,Loser、颠覆、繁荣的演化与未来
- 马云|当初,马云曾对一名女员工承诺:做满10年就分红2亿,结局如何
- 法律|韩国监管机构:苹果公司已针对监管应用商店运营商的新法律提交合规计划
- 欢聚集团|直播APP东渡记:对决日本财团,俘获日本宅男