[論文筆記] VILLA


Posted by Ivan Fang on 2021-06-17

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:兩個都有。

#cv #vqa #Adversarial Training







Related Posts

更新 Node 的版本

更新 Node 的版本

Java Stream intermediate operations are lazily executed

Java Stream intermediate operations are lazily executed

Discover the Power of Markdown Viewer

Discover the Power of Markdown Viewer


Comments