DEEP LEARNING JP [DL Papers] How Much Can CLIP Benefit Vision-and-Language Tasks? CLIPは画像×言語タスクにどれだけ貢献できるだろうか?(ICLR 2022) 山本 貴之(ヤフー株式会社) http://deeplearning.jp/ 1
書誌情報 タイトル: How Much Can CLIP Benefit Vision-and-Language Tasks? CLIPは画像×言語タスクにどれだけ貢献できるだろうか? https://openreview.net/pdf?id=zf_Ll3HZWgy (ICLR 2022 Poster) 著者: Sheng Shen∗†, Liunian Harold Li∗‡, Hao Tan◦ , Mohit Bansal◦ , Anna Rohrbach† , Kai-Wei Chang‡ , Zhewei Yao† and Kurt Keutzer† †University of California, Berkeley, ‡University of California, Los Angeles ◦University of North Carolina at Chapel Hill 概要: 先行研究CLIPは優れた画像×言語エンコーダーという仮定の下、CLIPを下流タスクと統合する事で、 従来の下流タスクでSotAを出せるはずという仮説。多数の実験を行い検証。手法を提案 選定理由: 1) マルチモーダル大規模基盤モデルが、シングルモーダルタスクの性能を上げる(ここへの興味) 2) 言語込でマルチモーダル学習すると、人の知恵の記録である言語の力を活かせるのでは(仮説) 公式実装: https://github.com/clip-vil/CLIP-ViL ※出典記載の無い図表は本論文からの引用 2
アジェンダ 1. 導入 2. 先行研究 3. 手法 4. 実験 5. まとめ 3
アジェンダ 1. 導入 2. 先行研究 3. 手法 4. 実験 5. まとめ 4
1. 導入 背景 画像に対するQ&Aタスク(VQA)では、画像エンコーダーの性能がボトルネックと言われている モチベー ション CLIPだけでVQAタスクは性能が出ない。CLIPと既存VQAモデルを統合すると性能が出るのでは? 実験 CLIPを独立した画像エンコーダーとして利用。既存研究のVQAモデルに画像表現として入力 CLIPとVQAモデルを統合しEndToEndで学習 結論 CLIPをうまく使う事で、既存VQAタスクに比べ大幅な精度向上(SotA) 5
アジェンダ 1. 導入 2. 先行研究 3. 手法 4. 実験 5. まとめ 6
2. 先行研究 CLIP 何を推論するモデルか? 学習済CLIPモデルの推論 テキスト入力 テキストの表現ベクトル バッチ内の 対応するペアは近くに 対応する4億ペア それ以外は遠くなるように で学習している 学習したモデル 画像入力 下記論文の図をベースに輪読者加筆 Alec Radford, et al. 2021. Learning transferable visual models from natural language supervision. バッチ内の 対応するペアは近くに 対照推定 それ以外は遠くなるように 学習したモデル 画像の表現ベクトル 7
2. 先行研究 CLIP モデル構造 エンコーダー部の構造 テキスト用モデル ✓ Transformer 8アテンションヘッド 6,300万パラメータ 12層512次元 49,152ボキャブサイズ 本論文では 両モデルで比較 ✓ 画像用モデル ResNet 5種類:ResNet 50・ResNet 101・RN50x4・RN50x16・RN50x64 ✓ VisionTransformer 3種類:ViT B/32・ViT B/16・ViT L/14 下記論文の図をベースに輪読者加筆 Alec Radford, et al. 2021. Learning transferable visual models from natural language supervision. 8
2. 先行研究 CLIP ゼロショット分類の利用手法 “A photo of a”をプロンプトとして付ける理由は、 1枚の画像には複数の被写体や要素があり、学習時の説明文は これらを説明する「完全な文章」である為、分類したい被写体(犬)を 精度高く分類するために付けている。 これにより精度が1.3%向上する 入力:分類候補 入力:分類したい画像 下記論文の図をベースに輪読者加筆 Alec Radford, et al. 2021. Learning transferable visual models from natural language supervision. 出力:分類候補の中で最も 類似度が高いものを正解とする 9
2. 先行研究 LXMERT: Learning Cross-Modality Encoder Representations from Transformers 既存VQAモデル。SotA(論文執筆時点) 構造はTransformerベース 本論文の下流タスクVQAモデルとして、CLIPと統合させて利用している セルフ アテンション クロス アテンション フィード フォワード LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP,2019) 10
2. 先行研究 LXMERT: Learning Cross-Modality Encoder Representations from Transformers クロスアテンション詳細 ソースコードの関連行のみ抜粋 class LXRTXLayer(nn.Module): def __init__(self, config): self.visual_attention = BertCrossattLayer(config) 画像から Query 画像入力 画像出力 言語から Key, Value 言語出力 言語入力 画像から Key,Value def cross_att(self, lang_input, lang_attention_mask, visn_input, visn_attention_mask): lang_att_output = self.visual_attention(lang_input, visn_input, ctx_att_mask=visn_attention_mask) 画像出力 visn_att_output = self.visual_attention(visn_input, lang_input, ctx_att_mask=lang_attention_mask) class BertCrossattLayer(nn.Module): def __init__(self, config): self.att = BertAttention(config) 言語から Query 言語から Query 画像から Query 言語から Key,Value def forward(self, input_tensor, ctx_tensor, ctx_att_mask=None): output = self.att(input_tensor, ctx_tensor, ctx_att_mask) 画像から Key, Value 言語出力 class BertAttention(nn.Module): def forward(self, hidden_states, context, attention_mask=None): mixed_query_layer = self.query(hidden_states) mixed_key_layer = self.key(context) mixed_value_layer = self.value(context) LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP,2019) https://github.com/airsplay/lxmert/blob/0db1182b9030da3ce41f17717cc628e1cd0a95d5/src/lxrt/modeling.py 11
2. 先行研究 LXMERT: Learning Cross-Modality Encoder Representations from Transformers 5種類のプレトレーニング実施(→本論文では内3種類を利用) パラメータは0から学習(BERT学習済より精度が良かった為) マスクオブジェクト予測 ※本論文では不使用 LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP,2019) 12
アジェンダ 1. 導入 2. 先行研究 3. 手法 4. 実験 5. まとめ 13
3. 手法 実験タスクは大きく2種類 ① 独立利用:CLIP画像エンコーダー → 既存VQAモデルに入力 ② 結合学習:CLIPとVQAモデル(LXMERT)を結合 → EndToEndで学習 タスク 独立利用① 結合学習② 画像質問応答 Pythia MCAN LXMERT Visual Question&Answer 画像キャプション Image Captioning VL Navigation 全体のポイントを説明する為、 説明分量の観点から輪読省略 Vision&Language Navigation Pythia : https://arxiv.org/pdf/1807.09956.pdf (2018) MCAN : https://arxiv.org/pdf/1906.10770.pdf (2019) LXMERT : https://arxiv.org/pdf/1908.07490.pdf (2019) 14
3. 手法 モデル構造 結合学習のステップ 3ステップの順で処理 既存VQA ①学習済 CLIP ②V&L プレトレーニング ③タスクに応じた ファインチューニング LXMERTの構造 青で囲ったモデルは同一 赤で囲ったモデルは同一 15
3. 手法 モデル構造 V&Lプレトレーニング手法 V&L プレトレーニング LXMERTの構造 V&Lプレトレーニング手順 モデルの出力部 1. Masked Language Modeling 15%のサブワードをマスクして学習 2. テキスト-画像マッチング 50%確率でミスマッチペアを与える CLIP 3. 質問応答学習 条件等 1. プレトレーニングとファインチューニング時は CLIPまでEndToEndで学習 2. A100 GPU 8台で約5日間の学習 16
3. 手法 V&Lプレトレーニングデータの一部 MS COCO Flickrから収集した30万枚の実世界の写真 MS COCO (Lin et al., 2014) 17
3. 手法 V&Lプレトレーニングデータの一部 Visual Genome (Krishna et al., 2017) Visual Genome 18
アジェンダ 1. 導入 2. 先行研究 3. 手法 4. 実験 5. まとめ 19
4. 実験 結果は大きく2つの実験別に説明 ① 独立利用 ② 結合学習 20
4. 実験 【①独立利用】の結果 実験内容・条件 プレトレーニング「なし」 下図のステップで実行 各VisualEncoderで精度比較 Pythia,MCAN論文のVQAタスクを実行 実験結果 VQAタスク結果 提案手法が最高精度 1 CLIP-ResNet50x4 ただしCLIPのモデル構造が 3 3 2 VisionTransformer(表中ViTの 記載)は精度が低い 2 理由後述 VG-**やBUTD-**はテストデー タと同一ドメインの学習デー タを使っている。有利なはず だが提案手法に及ばず 3 1 3 3 2 1 青で囲ったモデルは同一 ※VQA v2 のTest-dev , Test-stdデータセットで評価(Accuracy) ※“†”マークは(Jiang et al., 2020)の結果より引用 Pythia : https://arxiv.org/pdf/1807.09956.pdf 提案手法:CLIPを画像エンコードに使用 MCAN : https://arxiv.org/pdf/1906.10770.pdf Huaizu Jiang, et al. 2020. In defense of grid features for visual question answering. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition 21
4. 実験 ResNet50x4とは? ResNet50x4とは、SimCLRを使って対照推定で学習させたResNet50の事 教師あり ResNet-50 SimCLR https://arxiv.org/pdf/2002.05709.pdf 22
4. 実験 ②結合学習の結果 ① 独立利用 ② 結合学習 23
4. 実験 【②結合学習】の結果 実験結果 各モデル×画像エンコーダーの結果 提案手法がSotA 1 プレトレーニングで同じデータセット同じ 3 2 4 1 Epoch数にも関わらずLXMERTに対しても良 い結果 2 PixelBERTは提案手法と類似構造で、 ImageNetで学習されたResNetを用いている。 これに対して提案手法が良い結果 3 VinVLはリージョンベース手法を拡張させた もの。これよりも提案手法が良い結果 プレトレーニング有無の差分は、SotAの プレトレーニング有無実験 → 差分 CLIP-Res50x4で+6.57pointである 5 5 提案手法:CLIPを画像エンコードに使用 & V&Lプレトレーニング実施 ※単位:Accuracy 4 24
4. 実験 ViTが精度が悪い理由 CLIPのVisionTransformer(=ViT)モデルは、物体の位置検知精度の要因で結果が良くない VQAタスク結果 Grad-CAMによる可視化 左の女性のシャツは何色ですか? 25
アジェンダ 1. 導入 2. 先行研究 3. 手法 4. 実験 5. まとめ 26
5. まとめ 結論 様々なVision&Languageタスクで画像エンコーダー部にCLIPを使うと精度が向上 手法は2つ。特に②の精度向上が著しく、手法として提案 ①CLIPの表現ベクトル出力を下流タスクに入力(シンプルな手法) ②下流タスクと学習済CLIPモデルを結合しEndToEndでプレトレーニングとファインチューニングを実施 CLIPのVisionTransformerモデルは物体の位置検知が上手くいかず結果が良くない(ResNet50x4モデル推奨) 感想 CLIPの下流タスク応用手法として興味深い CLIP活用による精度向上は、単に物量で勝ってるので当たり前との批判もありそう CLIP-Res50よりCLIP-Res50x4が下流タスク性能が良い。”教師あり”より”自己教師あり対照推定”のメリット “億単位の量” × “WEB上などの網羅的データ”によるマルチモーダル大規模基盤モデルは、技術的特異点を一 つ越える気がする。これより、各モーダルに内在する法則(例えば、文章で表現されたロジック)がクロス モーダルに埋め込まれて、それが下流タスクの性能を上げているのではないか(輪読者の仮説) 27