Improving the adversarial transferability of vision transformers with virtual dense connection

Motivating Study

作者线性地减少 ViT 内各个组件的梯度的影响 (from 1 to 0 swith step size of 0.25)然后看看各个组件对迁移性的影响,得到的结论是消除 skip connection 后可迁移性下降最严重,无论是 Attention 模块还是 MLP 模块的 Connection

image-20240919135016681

作者认为这是因为 skip connection 有助于传播来自 ViT 深层的梯度,而且 ViT 深层又捕获了更高级的特征,所以这些梯度更有助于可迁移性。

VDC

VDC(Virtual Dense Connection)是一种密集连接的方法。从 Motivating Study 的结论中可以看出,skip connection 对可迁移性至关重要。既然如此,我们就可以增加 skip connection 的使用程度,参考 CNN 中的 DenseNet 将每一层与其后的所有层全部连接。

image-20240919135646424

在具体实现上,由于不想改变模型的 forward pass,所以这种密集连接是虚拟存在的,也就是只在计算梯度的时候使用。假设·进行了密集连接,那模型中第 i 个块 blocki (可能是 Attention 也可能是 MLP)用数学表示就是:

fi(zi1)=fi(zi1)xk=1i1zkzi1=x+k=1i1zk

其中 zi1 是重组后 blocki1 的输出,zi1 是重组后 blocki 的输入。由于进行了密集连接,所以 zi1zi1fi 是密集连接后的块,而 fi 是原始块。对 fi(zi1) 进行求导,可以得到其导数 gi

gi=fi(zi1)zi1=(fi(zi1)xk=1i1zk)zi1=(fi(zi1)zi1)zi1=gi1

gi 的式子中可以看出,即便我们没有实际地改变模型结构进行 skip connection,我们也能够计算出如果进行了 skip connection,其梯度会是怎么样的,因为这其中只用到了 gi。在计算出 gi 后,我们便可以通过链式法则,逐步计算出在 dense connect 的情况下损失函数对输入的梯度 Grad

 Grad = loss znk=1n(λgk+1)= loss znk=1n(λ(gk1)+1)= loss znk=1n(λgk+(1λ)1).

γ=1λλ,我们可以进一步简化 Grad 为:

 Grad = loss znk=1n(gk+γ1)

然而,这样的计算方法是不高效的,为了解决这个问题,作者提出了 consecutive skip assumption。具体来说,就是在计算 Grad 时,将  loss znk=1n(gk+γ1) 式子展开成很多项,然后通过删除一些项作为近似,计算结果为:

 ConGrad i=Gradi+sj=i+1nGradjγnj+1