---
# System prepended metadata

title: VILLA (VIsion-and-Language Large-scale Adversarial training)
tags: [Paper Notes]

---

###### tags: `Paper Notes`
# VILLA (VIsion-and-Language Large-scale Adversarial training)
* 原文：Large-Scale Adversarial Training for Vision-and-Language Representation Learning
* 機構：Microsoft Dynamics 365 AI Research, University of Maryland
* 時間：2020 年

### Introduction
* VILLA 在做的，就是利用 adversarial training 讓 V+L (vision-and-language) 模型發現自己的盲點並加強。進而得到更 robust 的模型。
* 受到 BERT 的啟發，近年來 V+L 模型也開始流行 pre-training + fine-tuning 的訓練方法。而 VILLA 也不例外，VILLA 共可分成兩個階段：
  * task-agnostic adversarial pre-training (APT)
  * task-specific adverserial fine-tuning (AFT)
* VILLA 並不是直接將 perturbation 加到 image 或 text 上，而是加到它們的 embedding space 上。

<center><img src="https://i.imgur.com/ZvRmvxn.png" width=650></center>

### Model Architecture
* 符號定義：
  * $D$：training data
  * $x_{img},\ x_{txt}$：input image, input text
  * $g_{bu}(\cdot),\ g_{emb}(\cdot)$：image feature extractor (e.g. Faster R-CNN), word embedding function (e.g. BERT)
  * $z_{img} = g_{bu}(x_{img}),\ z_{txt} = g_{emb}(x_{txt})$：object embedding, word embedding
  * $\tilde{z}_{img},\ \tilde{z}_{txt}$：$z_{img},\ z_{txt}$ 再經過 multi-layer Transformer 的結果
  * $\tilde{z}_{img},\ \tilde{z}_{txt}, \tilde{z}_{cls} = f_{\theta}(x_{img}, x_{txt})$
* VILLA 中的 adverserial training (AT)，就是要做以下的事：
  $$
  \min_{\theta} E_{(x_{img}, x_{txt}, y) \sim D} [L_{std}(\theta) + R_{at}(\theta) + \alpha \cdot R_{kl}(\theta)]
  $$
  * $L_{std}(\theta) = L(f_{\theta}(x_{img}, x_{txt}), y)$：cross entropy loss on clean data，用於更新 V+L 模型的參數。
  * $R_{at}(\theta)$：label-preserving AT loss，用於更新 $\delta$。
  * $R_{kl}(\theta)$：adversarial KL divergence loss，用於產生更強大的 $\delta$。
  * $\alpha$：自定義的常數。
* $R_{at}(\theta)$ 的細節如下，一次只會在一個 modality 上加 perturbation：
  $$
  R_{at}(\theta) = \max_{||\delta_{img} \le \epsilon||} L(f_{\theta}(x_{img} + \delta_{img}, x_{txt}, y)) + \max_{||\delta_{img} \le \epsilon||} L(f_{\theta}(x_{img}, x_{txt} + \delta_{txt}, y))
  $$
  * $L$：cross entropy loss
  * 注意，為了書寫方便，這裡直接寫成 $x + \delta$。實際上 $\delta$ 是加在 embedding space，也就是 $z$ 上。
* $\delta_{img}$ 的更新方式如下：
  $$
  \delta_{img, t+1} = \prod_{||\delta_{img}|| \le \epsilon}(\delta_{img, t} + \alpha \frac{g(\delta_{img, t})}{||g(\delta_{img,t})||_{F}})
  $$
  * $\delta_{img}$ 與 $\delta_{txt}$ 的更新方式一樣。
  * $g(\delta_{img,t}) = \bigtriangledown_{\delta_{img}}L(f_{\theta}(x_{img} + \delta_{img},\ x_{txt},\ y))$
  * $F$：利用 Forbenious Form 限制 $\delta_{img}\ \delta_{txt}$ 的範圍。
  * $\prod_{||\delta_{img}|| \le \epsilon}$：performs projection on $\epsilon$-ball。
* 為了讓 $\delta$ 更強一點，VILLA 還加了 KL divergence 的機制，也就是讓加了干擾後的輸出結果要與原本的輸出結果有一段差距：
  $$
  R_{kl}(\theta) = \max_{||\delta_{img}|| \le \epsilon} L_{kl} (f_{\theta}(x_{img} + \delta_{img},\ x_{txt}), f_{\theta}(x_{img},\ x_{txt})) + \\
  \max_{||\delta_{txt}|| \le \epsilon} L_{kl} (f_{\theta}(x_{img},\ x_{txt} + \delta_{txt}), f_{\theta}(x_{img},\ x_{txt}))
  $$
  * $L_{kl}(p,\ q) = KL(p||q) + KL(q||p)$
* 正常來講，應該在 $\delta$ 更新 $K$ 次、找出最適當的 $\delta$ 後才更新 V+L 模型。但這麼做會太慢。因此，作者改成每更新一次 $\delta$ 就跟著更新 V+L 模型，只是 learning rate 會乘以 $\frac{1}{K}$ 而已。整個的更新過程如 Algorithm 1 所示。
  * line 4：初始化參數。
  * line 7：更新 V+L 模型。learning rate 要乘以 $\frac{1}{K}$。
  * line 9-13：更新 $\delta$。
<center><img src="https://i.imgur.com/r868vms.png" width=600></center>

### Experiements & Results
* 作者將 VILLA 套用在 UNITER 上，得到的實驗結果如 Table 1 所示。

<center><img src="https://i.imgur.com/MBIo661.png" width=600></center>

* 實驗細節如下面所示：
  * 注意，前面的 steps 是先用一般的方式下去訓練，後面的 steps 才是用 adversarial training。

<center><img src="https://i.imgur.com/p9crsug.png" width=600></center>

* ablation study 如 Table 2、Table 3 所示。
  * VILLA-pre：只有 adversarial pre-tranining。
  * VILLA-fine：只有 adversarial fine-tuning。
  * VILLA：兩個都有。

<center><img src="https://i.imgur.com/53Zk8vc.png" width=600></center>