VQA Challenge 2021 - 第三名心得


Posted by Ivan Fang on 2021-06-17

Preface

  • 今年跟 Hank Lu 一起參加了 CVPR 舉辦的 VQA Challenge 2021,隊名 TaiwanTech,並幸運地拿到了第三名。VQA Model 在進入 2020 之後逐漸流行 BERT 的 pre-train + fine-tune 訓練模式,有用過 BERT 的人就知道這種訓練方式很有效但非常燒錢,我們在訓練模型的時候也是明顯的感受到金錢的力量 (˘・_・˘),還好最後有拿到第三名,論文也順利的寄到 VisualQA Workshop。
  • 本文主要分成三個部分:比賽介紹、模型架構、詳細情況。

Challenge Introduction

  • 藉著 GPU、DL 的力量,CV 與 NLP 都各自取得了重大的進展,而現在如何整合 V + L(Vision + Language)逐漸成為 AI 領域的顯學。VQA 便是 V + L 問題的一員。從 2016 年到現在 VQA Challenge 已經辦了 6 年,一年一屆,所以我們這次參加的就是第 6 屆。
  • 問題介紹:輸入「圖片」以及跟這張圖片相關的「問題」,模型須根據圖片輸出該問題的「答案」。

TCFm Architecture

  • 我們提出的方法叫做 Transformer-based Cross-modal Fusion Model with Adversarial Training,簡稱 TCFm。
  • TCFm 的具體訓練方法如下:
    • VinVL-base (OSCAR+base) 當作 baseline。
    • VILLA 提到的 adversarial training 方法再多 fine-tune 20 個 epoch。
    • 對這 20 個 epoch 訓練出的模型做 weight average。也就是取出這 20 個模型的 weight,將相應位置的 weight 加起來取平均,平均後的結果就是一個新的模型。
    • 重複上述方法,訓練出 8 個模型。每一次都更改部分方法,比如只取 20 個 epoch 中分入最高的前 10 個做 weight average、不做 adversarial training 做 weight average。
    • 最後對這 8 個模型做 ensemble。

  • 現在(2017 - 2021)基本的做法都是先用 object detector(ex. Faster R-CNN)、language model(ex. GRU、LSTM、BERT)提取 image、question 的特徵後,再丟到後面的 fusion model 計算答案。
  • 如果你有學過 BERT,那你應該該對 OSCAR 的架構不陌生,OSCAR 簡單講就是很多個 image-text pair 對 multi-layer transformer 做 pre-train,然後再 fine-tune 到 down stream task 上。相對於 OSCAR,OSCAR+ 主要是改進了 object detector 的部分,其它則大致相同。OSCAR 的介紹可以參考這裡
  • VILLA 的主要貢獻就是將 adversarial training 應用在 V+L 任務上。VILLA 的介紹可以參考這裡
  • 有些東西我們來不及做比賽就結束了,之後有時間再來試看看:
    • 將 VinVL-base 改成 VinVL-large。
    • 由於參考了 VILLA 的做法,我們只對 question 的部分做 adversarial training,但 image 的部分也應該做看看才對。而且直覺上做在 image 的效果會比較好。
  • 在 fine-tune 的時候我們用了 2 張 V100 做訓練,20 個 epoch 共訓練 10 小時。(真的不是一般人玩得起的 QQ,還好有實驗室支援)

More Details

  • 詳細情況可以參考我們的 PaperVideoSlides
  • 也有不少隊伍將他們的論文寄給 VQA Workshop,我們的 Poster ID 是 7 號。

References


#比賽心得 #vqa







Related Posts

反推 - Alpine.js

反推 - Alpine.js

簡明 C 語言入門教學

簡明 C 語言入門教學

Apache web server 簡易測試

Apache web server 簡易測試


Comments