投稿文章:如何用一台mac book 打AI对抗攻击比赛

2021-07-03 14:30:17 5 1553





比赛地址在这里:[https://tianchi.aliyun.com/competition/entrance/231701/information](http://)

本次比赛包括以下三个任务:
**无目标攻击: **生成对抗样本,使模型识别错误。
**目标攻击:** 生成对抗样本,使模型识别到指定的错误类别。
**模型防御: **构建能够正确识别对抗样本的模型。

赛会方提供110个类目11万左右的商品图片作为训练数据,这些商品图片来自阿里巴巴的电商平台。并提供三个训练好的模型。

简单来说,对抗样本就是在一张正常图片上刻意加入一些人类不易察觉的扰动(Perturbation),使得深度学习模型在对这个带有噪音图(Perturbed image)进行分类时,出现非常离谱的错误。 针对人脸识别的攻击也是利用类似的方法。




比如上面的一张熊猫图片,官方模型是可以正确识别它是一只熊猫的。攻击者要做的就是把这张熊猫图片进行改动(扰动),本质其实就是改变某些点的像素值,使模型识别错误。可以看到最后结果,模型把他识别成长臂猿了。这次比赛中的“无目标攻击”是指,只要你让模型识别成别的东西你就成功了;“目标攻击”是指,你改动图片,你的目的不仅是让模型识别错,而且要让模型识别成指定的类别,比如一张熊猫图,要让你在改动后,模型识别成斑马,你做到了才算赢。
但是光能让模型误识别还不行。你不仅要达到攻击成功的目的,还要尽量使图片改动最小化。改动的越小,得分越高。

比赛的具体评估方式如下:




常见的攻击手段一般都是基于梯度的,比如fgsm。

原图:




经过fgsm




FGSM原论文地址:https://arxiv.org/abs/1412.6572




全称是Fast Gradient Sign Method(快速梯度下降法),在白盒环境下,通过求出模型对输入的导数,然后用符号函数得到其具体的梯度方向,接着乘以一个步长,得到的“扰动”加在原来的输入  上就得到了在FGSM攻击下的样本。
FGSM的攻击表达如下:





实现起来其实比较简单,感兴趣的可以去看原论文。

常规的方法多是针对梯度的各种变种,你能找到,别人也能找到。还有一些方法需要去训练模型。

**但是如何在上班白天没时间,没有组队,家里只有一台笔记本的情况下,提分呢?那必须用猥琐方法**






**猥琐方法1:重点自动打码**



原始图片同时进入三个模型,生成三个feature map(热图),三个feature map 相加取并集,设置一个threshold(如mean(feature map)), 最终生成一个重点识别区域矩阵。



原始图片*重点识别区域以外的区域 + 整张blurred 图片*重点识别区域 = 重点打码

我打的人都不认识了,你一个模型能认识??




重点打码在调节超参数(如blur的程度(可以针对不同class调节blur的程度),feature map 的threshold等)的情况下达到34左右的分数。Feature map也可结合gradient 的方法。

**总之,就是先利用白盒模型把重点区域搞出来,然后打上码,这样不扰动其他区域,还不用训练。**

**猥琐方法2:自动打水印**





把关键物体抠图得到100+个干扰图片(有alpha通道的png图)。分别和原始图片叠加合成100+个攻击图片,通过一个batch同时进入三个预测模型。最后输出一个三个模型预测结果的矩阵





打完了是这样




从预测结果矩阵中挑选出那些被三个模型预测成功数量最少(攻击效果最好)的攻击图片,同时通过一个batch 算出攻击图片和原始图片的 distance 矩阵。最后在被预测成功数量最少的图片中选出distance 最小的,作为输出结果。

由于使用的是偏常规的攻击方法,默认猜测此攻击会对基于gradient防御的模型也有效,测试也是直接在官方发布的模型上测试。在本地测试结合提交线上评估发现,干扰物在scaling=0.9,transparency=0.7 左右可以达到比较好的效果。
开始时我只拿了几十个干扰图做实验,发现效果不错以后(31分左右);增加干扰图片数量到110个达到30分左右;再从training data中挑选了一些特征明显的图片(50张左右),成绩进一步上升,到non-target 29.6633分。另外本方法也可尝试加入干扰物变换不同位置继续攻击(本例是干扰物放在正中间)

**这种方法也不用训练,只是利用了官方的白盒模型。总结起来就是选对图片干扰最大的图作为水印**

**猥琐方法3:具体问题具体分析**





我发现冰箱,电视等方形物体常规方法比较难攻击。所以在这些物体上,我尝试了打白色或者黑色横线。结合重点打码攻击,在分数上有一些提高。





另外还有在整张图不同位置设置方块(黑或白,注意冰箱上面我打的那个不起眼的黑块),然后batch进模型,然后再利用和方法2类似的方法。

无目标攻击组竞争还是相当激烈的,经过夜夜奋战,最后止步于决赛前20。不过心情还是爽爽的。


关于作者

w0nderlee1篇文章3篇回复

评论5次

要评论?请先  登录  或  注册