output = model(perturbed_data) (4)Projected Gradient Descent (PGD) PGD可以看作是FGSM的多步迭代,因为当我们面对一个非线性模型,仅仅做一次迭代,方向是不一定完全正确的,所以在这种情况下我们显然不能认为FGSM一步的操作就可以达到最优解。 我们可以在之前的算法基础上多此迭代,以此找到范围内最强的对抗样本,原...
FGSM是一种一次攻击,即针对一张图加梯度也仅仅增一次梯度。但如果现在攻击的是一个复杂非线性模型的话,这样的方法可能就不能一定攻击成功。可以想象,复杂的非线性模型可能在极小的范围内剧烈变化,所以梯度跨度大可能就不能攻击成功,所以PGD考虑把FGSM的一大步换成多小步: clip用来防止一小步走得太大 参考 训练技巧...
是对embedding进行攻击的,可以看成是feature的表征进行攻击,可以看我写的这篇的具体实现代码就清楚了:...
1、对抗攻击系列学习笔记(一)FGSM和PGD一、写在前面的话由于NLP领域的对抗攻击一直处于较为初级的阶段,所以之前一直没有重点研究。最近看了一篇关于NLP的对抗的博文,感觉使用上可种数据增强,因此打算研究一波作为之后日常的trick。也是初次涉及该领域,如有错误的地方也请大佬们多指教。二、对抗攻击的基本概念对抗攻击:...