Contenu connexe Similaire à 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? (20) Plus de Deep Learning JP (20) 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 2. 書誌情報
How Much Can CLIP Benefit Vision-and-Language Tasks?
CLIPは画像×言語タスクにどれだけ貢献できるだろうか?
https://openreview.net/pdf?id=zf_Ll3HZWgy
タイトル:
著者: 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を出せるはずという仮説。多数の実験を行い検証。手法を提案
概要:
2
選定理由: 1) マルチモーダル大規模基盤モデルが、シングルモーダルタスクの性能を上げる(ここへの興味)
2) 言語込でマルチモーダル学習すると、人の知恵の記録である言語の力を活かせるのでは(仮説)
(ICLR 2022 Poster)
公式実装: https://github.com/clip-vil/CLIP-ViL
※出典記載の無い図表は本論文からの引用
7. 2. 先行研究 CLIP 何を推論するモデルか?
7
学習済CLIPモデルの推論
テキスト入力
画像入力
バッチ内の
対応するペアは近くに
それ以外は遠くなるように
学習したモデル
対照推定
下記論文の図をベースに輪読者加筆
Alec Radford, et al. 2021. Learning transferable visual models from natural language supervision.
テキストの表現ベクトル
画像の表現ベクトル
バッチ内の
対応するペアは近くに
それ以外は遠くなるように
学習したモデル
対応する4億ペア
で学習している
8. 2. 先行研究 CLIP モデル構造
8
エンコーダー部の構造
テキスト用モデル
画像用モデル
✓ 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.
本論文では
両モデルで比較
9. 2. 先行研究 CLIP ゼロショット分類の利用手法
9
入力:分類候補
入力:分類したい画像
下記論文の図をベースに輪読者加筆
Alec Radford, et al. 2021. Learning transferable visual models from natural language supervision.
出力:分類候補の中で最も
類似度が高いものを正解とする
“A photo of a”をプロンプトとして付ける理由は、
1枚の画像には複数の被写体や要素があり、学習時の説明文は
これらを説明する「完全な文章」である為、分類したい被写体(犬)を
精度高く分類するために付けている。
これにより精度が1.3%向上する
10. 2. 先行研究 LXMERT: Learning Cross-Modality Encoder Representations from Transformers
10
既存VQAモデル。SotA(論文執筆時点)
構造はTransformerベース
本論文の下流タスクVQAモデルとして、CLIPと統合させて利用している
LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP,2019)
セルフ
アテンション
クロス
アテンション
フィード
フォワード
11. 2. 先行研究 LXMERT: Learning Cross-Modality Encoder Representations from Transformers
11
クロスアテンション詳細
LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP,2019)
https://github.com/airsplay/lxmert/blob/0db1182b9030da3ce41f17717cc628e1cd0a95d5/src/lxrt/modeling.py
class LXRTXLayer(nn.Module):
def __init__(self, config):
self.visual_attention = BertCrossattLayer(config)
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)
def forward(self, input_tensor, ctx_tensor, ctx_att_mask=None):
output = self.att(input_tensor, ctx_tensor, ctx_att_mask)
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)
言語から
Query
画像入力
言語入力
言語から
Key, Value
言語から
Query
画像から
Key, Value
画像出力
言語出力
ソースコードの関連行のみ抜粋
画像から
Query
画像から
Query
画像から
Key,Value
言語から
Key,Value
言語出力
画像出力
12. 2. 先行研究 LXMERT: Learning Cross-Modality Encoder Representations from Transformers
12
5種類のプレトレーニング実施(→本論文では内3種類を利用)
パラメータは0から学習(BERT学習済より精度が良かった為)
LXMERT: Learning Cross-Modality Encoder Representations from Transformers (EMNLP,2019)
マスクオブジェクト予測
※本論文では不使用
14. 3. 手法 実験タスクは大きく2種類
14
画像質問応答
Visual Question&Answer
画像キャプション
Image Captioning
VL Navigation
Vision&Language Navigation
全体のポイントを説明する為、
説明分量の観点から輪読省略
Pythia
MCAN
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)
タスク 独立利用① 結合学習②
LXMERT
① 独立利用:CLIP画像エンコーダー → 既存VQAモデルに入力
② 結合学習:CLIPとVQAモデル(LXMERT)を結合 → EndToEndで学習
15. 3. 手法 モデル構造 結合学習のステップ
15
①学習済
CLIP ②V&L プレトレーニング
③タスクに応じた
ファインチューニング
赤で囲ったモデルは同一
青で囲ったモデルは同一
3ステップの順で処理
既存VQA
LXMERTの構造
16. 3. 手法 モデル構造 V&Lプレトレーニング手法
16
V&L プレトレーニング V&Lプレトレーニング手順
1. Masked Language Modeling
15%のサブワードをマスクして学習
2. テキスト-画像マッチング
50%確率でミスマッチペアを与える
3. 質問応答学習
条件等
1. プレトレーニングとファインチューニング時は
CLIPまでEndToEndで学習
2. A100 GPU 8台で約5日間の学習
CLIP
LXMERTの構造
モデルの出力部
21. 21
4. 実験 【①独立利用】の結果
VQAタスク結果
青で囲ったモデルは同一
Pythia : https://arxiv.org/pdf/1807.09956.pdf
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 ComputerVision and Pattern Recognition
実験内容・条件
プレトレーニング「なし」
下図のステップで実行
各VisualEncoderで精度比較
Pythia,MCAN論文のVQAタスクを実行
実験結果
提案手法が最高精度
CLIP-ResNet50x4
ただしCLIPのモデル構造が
VisionTransformer(表中ViTの
記載)は精度が低い
VG-**やBUTD-**はテストデー
タと同一ドメインの学習デー
タを使っている。有利なはず
だが提案手法に及ばず
※VQA v2 のTest-dev , Test-stdデータセットで評価(Accuracy)
※“†”マークは(Jiang et al., 2020)の結果より引用
提案手法:CLIPを画像エンコードに使用
1
1
1
2
2
2
3
3
3
3
3
理由後述
24. 24
4. 実験 【②結合学習】の結果
プレトレーニング有無実験 → 差分
各モデル×画像エンコーダーの結果
提案手法:CLIPを画像エンコードに使用 & V&Lプレトレーニング実施
実験結果
提案手法がSotA
プレトレーニングで同じデータセット同じ
Epoch数にも関わらずLXMERTに対しても良
い結果
PixelBERTは提案手法と類似構造で、
ImageNetで学習されたResNetを用いている。
これに対して提案手法が良い結果
VinVLはリージョンベース手法を拡張させた
もの。これよりも提案手法が良い結果
プレトレーニング有無の差分は、SotAの
CLIP-Res50x4で+6.57pointである
1
3
1
2
2
3
5
5
※単位:Accuracy
4
4
25. 25
4. 実験 ViTが精度が悪い理由
CLIPのVisionTransformer(=ViT)モデルは、物体の位置検知精度の要因で結果が良くない
VQAタスク結果
Grad-CAMによる可視化
左の女性のシャツは何色ですか?
27. 5. まとめ
結論
様々なVision&Languageタスクで画像エンコーダー部にCLIPを使うと精度が向上
手法は2つ。特に②の精度向上が著しく、手法として提案
①CLIPの表現ベクトル出力を下流タスクに入力(シンプルな手法)
②下流タスクと学習済CLIPモデルを結合しEndToEndでプレトレーニングとファインチューニングを実施
CLIPのVisionTransformerモデルは物体の位置検知が上手くいかず結果が良くない(ResNet50x4モデル推奨)
27
感想
CLIPの下流タスク応用手法として興味深い
CLIP活用による精度向上は、単に物量で勝ってるので当たり前との批判もありそう
CLIP-Res50よりCLIP-Res50x4が下流タスク性能が良い。”教師あり”より”自己教師あり対照推定”のメリット
“億単位の量” × “WEB上などの網羅的データ”によるマルチモーダル大規模基盤モデルは、技術的特異点を一
つ越える気がする。これより、各モーダルに内在する法則(例えば、文章で表現されたロジック)がクロス
モーダルに埋め込まれて、それが下流タスクの性能を上げているのではないか(輪読者の仮説)