对抗样本生成的一些经验总结
- 求梯度时需要用logits而不是probability
设softmax函数为 g(x,y):=exp(xy)∑iexp(xi) g ( x , y ) := exp ( x y ) ∑ i exp ( x i ) ,其中 x x 为logits , y y 为label
设输入为 u u ,直接采用logits求梯度则为,但是用probability进行求导则为 dg(x,y)du=g(xy)(1−g(xy))dxydu d g ( x , y ) d u = g ( x y ) ( 1 − g ( x y ) ) d x y d u
而 x(1−x)≤14 x ( 1 − x ) ≤ 1 4 ,因此使用probability进行求导得到的结果要比直接用logits的小很多,尤其是 x→0+ x → 0 + 或 x→1− x → 1 − 的时候。在做targeted adversarial generation时,如果图像在y_target上的prob很小,那么反向传递梯度几乎不会对原图产生影响 - 那既然这样,我们一直使用的模型训练方式是不是也有所欠缺呢?