Paper Information
- 原文: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 上。
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$。
Experiements & Results
- 作者將 VILLA 套用在 UNITER 上,得到的實驗結果如 Table 1 所示。
- 實驗細節如下面所示:
- 注意,前面的 steps 是先用一般的方式下去訓練,後面的 steps 才是用 adversarial training。
- ablation study 如 Table 2、Table 3 所示。
- VILLA-pre:只有 adversarial pre-tranining。
- VILLA-fine:只有 adversarial fine-tuning。
- VILLA:兩個都有。