NLP中的对抗训练

2021-11-23  本文已影响0人  来到了没有知识的荒原

一些博客资料:

苏剑林:对抗训练浅谈:意义、方法和思考(附Keras实现)
功守道:NLP中的对抗训练 + PyTorch实现

一些问题:

Q1(追一科技面试问题):FGSM为什么用符号函数?
https://www.cnblogs.com/tangweijqxx/p/10615950.html

为什么不直接使用导数,而要用符号函数求得其方向?这个问题我也一直半知半解,我觉得应该是如下两个原因:
1.FGSM是典型的无穷范数攻击,那么我们在限制扰动程度的时候,只需要使得最大的扰动的绝对值不超过某个阀值即可。而我们对输入的梯度,对于大于阀值的部分我们直接clip到阀值,对于小于阀值的部分,既然对于每个像素扰动方向只有+-两个方向,而现在方向已经定了,那么为什么不让其扰动的程度尽量大呢?因此对于小于阀值的部分我们就直接给其提升到阀值,这样一来,相当于我们给梯度加了一个符号函数了。
2.由于FGSM这个求导更新只进行一次,如果直接按值更新的话,可能生成的扰动改变就很小,无法达到攻击的目的,因此我们只需要知道这个扰动大概的方向,至于扰动多少我们就可以自己来设定了~~(欢迎讨论)

上一篇下一篇

猜你喜欢

热点阅读