第五课精选问答
在第五课的 QA 环节中,有一些问题被大家广泛提到,刘志丹讲师再次做了精选与编辑,供大家参考。
Q1:为什么要用sign函数?
Q2:增加防御算法后精度会降低?
不一定。防御算法用了对抗训练的方式,生成对抗样本加入原始数据集中,一起训练模型,得到的模型参数和单纯用原始数据集的模型参数是有一点差异,这个差异,可能使得在测试集上的精度发生变化,可能减少,也可能增加。
Q3:增加防御算法对训练时间的影响?
用不用对抗训练的差别是,对抗训练在正常的模型训练过程中增加了生成对抗样本的步骤,所以训练时增加的计算开销在于生成对抗样本,用不同的攻击算法,时间开销不同,如果用FGSM这种简单的攻击算法,增加的时间是很少的,如果用CW这种比较强的攻击方法,时间开销就会大一些。具体选用哪种攻击算法,需要用户根据自己的需求,综合时间开销和安全性需求,选择一个合适的攻击算法。
Q4:增加对抗训练过程,对推理时间会造成什么影响?
对推理没有影响,模型训练完了之后,跟正常的模型是一样的,所以推理时间和原来的模型推理时间是一样的。
Q5:对抗训练时使用的对抗样本和防御后测试时使用的对抗样本一样吗?
不一样。训练、测试时用的对抗样本生成方法可以一样,也可以不一样。
Q6:与cleverhans有什么区别?
MindArmour和Cleverhans的出发点是一致,都是要做模型的对抗样本安全的研究。从提供的特性来讲,MindArmour做的更全面一些,包括了对抗样本的生成、检测、模型的防御、对抗攻防的评估模块,还有通过fuzzing方式对模型进行鲁棒性测试的模块。
Gitee:https://gitee.com/mindspore GitHub:https://github.com/mindspore-ai
第五课PPT如下: